
#
#	MAKEFILE for the fixes to the stdio library
#	Only makes the updates to the distribution.
#
#	The "update" entry allows the /lib/libc.a library to be modified
#	without building everything
#

CFLAGS=	-O
OBJS=	printf.o scanf.o fprintf.o sprintf.o snprintf.o sxprintf.o doprnt.o

.c.o:
	${CC} -p ${CFLAGS} -c $*.c
	-ld -X -r $*.o
	mv a.out profiled/$*.o
	${CC} ${CFLAGS} -c $*.c
	-ld -x -r $*.o
	mv a.out $*.o

stdiolib stdiolib_p: ${OBJS}
	@echo "building profiled stdiolib"
	@cd profiled; ar cru ../stdiolib_p ${OBJS}
	@echo "building normal stdiolib"
	@ar cru stdiolib ${OBJS}

clean:
	-rm -f stdiolib stdiolib_p ${OBJS} profiled/*.o libc.a libc_p.a

doprnt.o: doprnt.s
	cp doprnt.s doprnt.c
	cc -E doprnt.c | sed -f mcount.sed | as -o doprnt.o
	-ld -x -r doprnt.o
	mv a.out profiled/doprnt.o
	cc -E doprnt.c | as -o doprnt.o
	-ld -x -r doprnt.o
	mv a.out doprnt.o
	rm -f doprnt.c

update:	stdiolib stdiolib_p
	rm *.o
	cp /lib/libc.a libc.a
	ar x stdiolib
	ar cr libc.a *.o
	ranlib libc.a
	rm *.o
	cp /usr/lib/libc_p.a libc_p.a
	ar x stdiolib_p
	ar cr libc_p.a *.o
	ranlib libc_p.a
