#sccs	"@(#)libc:Makefile	1.6"

include	$(MAKEINC)/Makepre.h

LIBC=libc
LIBCP=libp/libc

SUBDIRS=\
port\
mc68k

all:	comall archive prof

prof:	profall parchive

common:
	mv fakcu.o fakcu.x 
	mv cuexit.o cuexit.x 
	$(LORDER) *.o | tsort >objlist 
	mv fakcu.x fakcu.o 
	mv cuexit.x cuexit.o 
	-rm -f ../$(TARGET_LIB).a
	$(AR) q ../$(TARGET_LIB).a `cat objlist` cuexit.o fakcu.o 
	$(STRIP) -r ../$(TARGET_LIB).a 
	$(AR) ts ../$(TARGET_LIB).a >../$(TARGET_LIB).contents 
	rm -f objlist 

archive:
	@echo Making libc
	if [ \! -d object ] ; \
	then \
		mkdir object ; \
	else \
		rm -f object/* ; \
	fi
	ln port/*/*.o object
	(cd mc68k/crt; ln *.o ../../object)
	(cd mc68k/csu; ln *.o ../../object)
	(cd mc68k/gen; ln *.o ../../object)
	(cd mc68k/sys; ln *.o ../../object)
	-rm -f object/crt0.o object/mcrt0.o
	if [ ! -d libp ] ; then mkdir libp; fi
	( cd object; $(MAKE) -f ../Makefile TARGET_LIB=$(LIBC) common )

parchive:
	@echo Making profiled libc
	if [ \! -d pobject ] ; \
	then \
		mkdir pobject ; \
	else \
		rm -f pobject/* ; \
	fi
	(cd port/print; ln *.p ../../pobject)
	(cd port/stdio; ln *.p ../../pobject)
	(cd port/sys; ln *.p ../../pobject)
	(cd port/gen; ln *.p ../../pobject)
	(cd mc68k/crt; ln *.o ../../pobject)
	(cd mc68k/csu; ln *.o ../../pobject)
	(cd mc68k/gen; ln *.p ../../pobject)
	(cd mc68k/sys; ln *.p ../../pobject)
	-rm -f pobject/crt0.o pobject/mcrt0.o
	( cd pobject; for i in *.p; do mv $$i `basename $$i .p`.o ; done )
	( cd pobject; $(MAKE) -f ../Makefile TARGET_LIB=$(LIBCP) common )

install: 
	chmod 644 $(LIBC).a $(LIBCP).a
	chgrp bin $(LIBC).a $(LIBCP).a
	chown bin $(LIBC).a $(LIBCP).a
	ls $(LIBC).a | cpio -pumdv $(LIB)
	ls $(LIBCP).a | cpio -pumdv $(LIB)
	ls $(LIBC).a | cpio -pumdv $(INSDIR)/MASTER/lib
	ls $(LIBCP).a | cpio -pumdv $(INSDIR)/MASTER/lib
	ls $(LIBC).a | cpio -pumdv $(INSDIR)/DEV/lib
	ls $(LIBCP).a | cpio -pumdv $(INSDIR)/DEV/lib
	cd mc68k/csu; $(MAKE) install

clean: comclean

clobber: comclobber
	rm -rf pobject
	rm -rf object
	rm -rf $(LIBC).a $(LIBCP).a

includes: comincludes

profall:
	@if [ "$(SUBDIRS)" ] ; \
	then \
		for D in `echo $(SUBDIRS)` ; \
		do \
			( \
			cd $$D; \
			echo Making $$D ; \
			$(MAKE) prof ; \
			) \
		done ; \
	fi

populate: $(SUBDIRS) libp
	for D in $(SUBDIRS); \
	do \
		cd $$D; echo "libc/$$D" >.unit; echo "** $$D **:"; \
		getunit; $(MAKE) populate; cd ..; \
	done

$(SUBDIRS) libp:
	mkdir $@

include	$(MAKEINC)/Makepost.h
