#	Makefile	4.6	83/07/02
#
# The system has two monitoring schemes, utilizing either ``prof''
# or ``gprof''. DFLMON determines the default profiler; mon.o
# specifies that ``prof'' is the default, gmon.o specifies that
# ``gprof'' is the default.
#
# Machine dependent routines are located in a subtree which parallels
# the top directories.  This subtree is identified by the machine name.
#
# Compatibility routines are kept in directories with a prefixing
# ``compat'' (so they all sort together).
# 
# The C run-time startup code is both machine and floating-point format
# dependent.  It is located is is68k{ieee,sky,dec}/csu
#
SHELL=	/bin/sh
DESTDIR=
INSTALL=install -m 644
DFLMON=	mon.o
MACHINE=is68k
COMPAT=	compat-4.1 compat-sys5
ALL=	gen inet net stdio ${MACHINE} ${COMPAT} is68881 is68kieee
IS68881ALL=	gen inet net stdio ${MACHINE} ${COMPAT} is68881
IEEEALL=	gen inet net stdio ${MACHINE} ${COMPAT} is68kieee
SKYALL=		gen inet net stdio ${MACHINE} ${COMPAT} is68ksky
DECALL=		gen inet net stdio ${MACHINE} ${COMPAT} is68kdec
DECALL=		gen inet net stdio ${MACHINE} ${COMPAT} is68kdec

all:	libmc.a libmc_p.a

libmc.a libmc_p.a: ${IS68881ALL} is68881/csu
	rm -rf tmp t1 t2
	-mkdir tmp
	for i in ${IS68881ALL}; do (cd tmp; ar x ../$$i/$${i}lib); done
	ls tmp/*.o | sort -t/ +1 > t1
	(lorder `cat t1`) > t2
	tsort t2 > t1
	ar cr libmc.a `cat t1` is68881/csu/${DFLMON}
	ar ma flsbuf.o libmc.a exit.o
	ar ma exit.o libmc.a fake_cleanup.o
	ar ma doprnt.o libmc.a fprintf.o
	ar ma fprintf.o libmc.a printf.o
	ar ma printf.o libmc.a sprintf.o
	ar ma sprintf.o libmc.a doprnt_nf.o
	ar ma doprnt_nf.o libmc.a fltused.o
	rm -f t1 t2 tmp/*
	for i in ${IS68881ALL}; do (cd tmp; ar x ../$$i/$${i}lib_p); done
	ls tmp/*.o | sort -t/ +1 > t1
	(lorder `cat t1`) > t2
	tsort t2 > t1
	ar cr libmc_p.a `cat t1` is68881/csu/${DFLMON}
	ar ma flsbuf.o libmc_p.a exit.o
	ar ma exit.o libmc_p.a fake_cleanup.o
	ar ma doprnt.o libmc_p.a fprintf.o
	ar ma fprintf.o libmc_p.a printf.o
	ar ma printf.o libmc_p.a sprintf.o
	ar ma sprintf.o libmc_p.a doprnt_nf.o
	ar ma doprnt_nf.o libmc_p.a fltused.o
	rm -rf t1 t2 tmp

libieeec.a libieeec_p.a: ${IEEEALL} is68kieee/csu
	rm -rf tmp t1 t2
	-mkdir tmp
	for i in ${IEEEALL}; do (cd tmp; ar x ../$$i/$${i}lib); done
	ls tmp/*.o | sort -t/ +1 > t1
	(lorder `cat t1`) > t2
	tsort t2 > t1
	ar cr libieeec.a `cat t1` is68kieee/csu/${DFLMON}
	ar ma flsbuf.o libieeec.a exit.o
	ar ma exit.o libieeec.a fake_cleanup.o
	ar ma doprnt.o libieeec.a fprintf.o
	ar ma fprintf.o libieeec.a printf.o
	ar ma printf.o libieeec.a sprintf.o
	ar ma sprintf.o libieeec.a doprnt_nf.o
	ar ma doprnt_nf.o libieeec.a fltused.o
	rm -f t1 t2 tmp/*
	for i in ${IEEEALL}; do (cd tmp; ar x ../$$i/$${i}lib_p); done
	ls tmp/*.o | sort -t/ +1 > t1
	(lorder `cat t1`) > t2
	tsort t2 > t1
	ar cr libieeec_p.a `cat t1` is68kieee/csu/${DFLMON}
	ar ma flsbuf.o libieeec_p.a exit.o
	ar ma exit.o libieeec_p.a fake_cleanup.o
	ar ma doprnt.o libieeec_p.a fprintf.o
	ar ma fprintf.o libieeec_p.a printf.o
	ar ma printf.o libieeec_p.a sprintf.o
	ar ma sprintf.o libieeec_p.a doprnt_nf.o
	ar ma doprnt_nf.o libieeec_p.a fltused.o
	rm -rf t1 t2 tmp

libskyc.a libskyc_p.a: ${SKYALL} is68ksky/csu
	rm -rf tmp t1 t2
	-mkdir tmp
	for i in ${SKYALL}; do (cd tmp; ar x ../$$i/$${i}lib); done
	ls tmp/*.o | sort -t/ +1 > t1
	(lorder `cat t1`) > t2
	tsort t2 > t1
	ar cr libskyc.a `cat t1` is68ksky/csu/${DFLMON}
	ar ma flsbuf.o libskyc.a exit.o
	ar ma exit.o libskyc.a fake_cleanup.o
	ar ma doprnt.o libskyc.a fprintf.o
	ar ma fprintf.o libskyc.a printf.o
	ar ma printf.o libskyc.a sprintf.o
	ar ma sprintf.o libskyc.a doprnt_nf.o
	ar ma doprnt_nf.o libskyc.a fltused.o
	rm -f t1 t2 tmp/*
	for i in ${SKYALL}; do (cd tmp; ar x ../$$i/$${i}lib_p); done
	ls tmp/*.o | sort -t/ +1 > t1
	(lorder `cat t1`) > t2
	tsort t2 > t1
	ar cr libskyc_p.a `cat t1` is68ksky/csu/${DFLMON}
	ar ma flsbuf.o libskyc_p.a exit.o
	ar ma exit.o libskyc_p.a fake_cleanup.o
	ar ma doprnt.o libskyc_p.a fprintf.o
	ar ma fprintf.o libskyc_p.a printf.o
	ar ma printf.o libskyc_p.a sprintf.o
	ar ma sprintf.o libskyc_p.a doprnt_nf.o
	ar ma doprnt_nf.o libskyc_p.a fltused.o
	rm -rf t1 t2 tmp

libdecc.a libdecc_p.a: ${DECALL} is68kdec/csu
	rm -rf tmp t1 t2
	-mkdir tmp
	for i in ${DECALL}; do (cd tmp; ar x ../$$i/$${i}lib); done
	ls tmp/*.o | sort -t/ +1 > t1
	(lorder `cat t1`) > t2
	tsort t2 > t1
	ar cr libdecc.a `cat t1` is68kdec/csu/${DFLMON}
	ar ma flsbuf.o libdecc.a exit.o
	ar ma exit.o libdecc.a fake_cleanup.o
	ar ma doprnt.o libdecc.a fprintf.o
	ar ma fprintf.o libdecc.a printf.o
	ar ma printf.o libdecc.a sprintf.o
	ar ma sprintf.o libdecc.a doprnt_nf.o
	ar ma doprnt_nf.o libdecc.a fltused.o
	rm -f t1 t2 tmp/*
	for i in ${DECALL}; do (cd tmp; ar x ../$$i/$${i}lib_p); done
	ls tmp/*.o | sort -t/ +1 > t1
	(lorder `cat t1`) > t2
	tsort t2 > t1
	ar cr libdecc_p.a `cat t1` is68kdec/csu/${DFLMON}
	ar ma flsbuf.o libdecc_p.a exit.o
	ar ma exit.o libdecc_p.a fake_cleanup.o
	ar ma doprnt.o libdecc_p.a fprintf.o
	ar ma fprintf.o libdecc_p.a printf.o
	ar ma printf.o libdecc_p.a sprintf.o
	ar ma sprintf.o libdecc_p.a doprnt_nf.o
	ar ma doprnt_nf.o libdecc_p.a fltused.o
	rm -rf t1 t2 tmp

${ALL}: FRC
	cd $@; make ${MFLAGS}

is68kieee/csu: FRC
	cd $@; make ${MFLAGS}

is68ksky/csu: FRC
	cd $@; make ${MFLAGS}

is68kdec/csu: FRC
	cd $@; make ${MFLAGS}

FRC:

clean:
	for i in is68881/csu ${ALL}; \
		 do (cd $$i; make ${MFLAGS} clean); done
	rm -f libmc.a libmc_p.a libieeec.a libieeec_p.a
	rm -f t1 t2 tmp/*.o
	-rmdir tmp

install: 
	${INSTALL} libmc.a ${DESTDIR}/usr/lib/libmc.a
	ranlib ${DESTDIR}/lib/libmc.a
	${INSTALL} libmc_p.a ${DESTDIR}/usr/lib/libmc_p.a
	ranlib ${DESTDIR}/usr/lib/libmc_p.a
	cd is68881/csu; make DESTDIR=${DESTDIR} install
