Coherent4.2.10/i386/lib/ilib.make

# Sub-makefile to batch compilation and archiving into large passes

MAKEFILE=ilib.make
DESTLIB=$(K386LIB)/k386.a
USRINC=/usr/include
GCC=gcc
GCCFLAGS=-O2 -Wall -ansi -pedantic
GLDFLAGS=-nostdlib /lib/ndp/crts0.o
GLIBFLAGS=-lc

OBJS=	$(DESTLIB)(inb.o) $(DESTLIB)(inl.o) $(DESTLIB)(inw.o) \
	$(DESTLIB)(ldiv.o) \
	$(DESTLIB)(memcpy.o) $(DESTLIB)(memset.o) $(DESTLIB)(outb.o) \
	$(DESTLIB)(outl.o) $(DESTLIB)(outw.o) $(DESTLIB)(repinsb.o) \
	$(DESTLIB)(repinsd.o) $(DESTLIB)(repinsw.o) $(DESTLIB)(repoutsb.o) \
	$(DESTLIB)(repoutsd.o) $(DESTLIB)(repoutsw.o) $(DESTLIB)(strncmp.o) \
	$(DESTLIB)(strncpy.o) $(DESTLIB)(strlen.o) \
	$(DESTLIB)(disable.o) $(DESTLIB)(enable.o) $(DESTLIB)(setmask.o) \
	$(DESTLIB)(splcmp.o) $(DESTLIB)(splx.o) $(DESTLIB)(intr_disp.o) \
	$(DESTLIB)(trap_disp.o) $(DESTLIB)(trap_level.o) $(DESTLIB)(coh_lock.o)

.c.a:
	echo $< >>sources; echo $% >> members
.s.a:
	$(AS) $(ASFLAGS) $*.s
	echo $% >> members

all:	prelude $(OBJS) postlude

gcc:
	+@exec make "CC=$(GCC)" "CFLAGS=$(GCCFLAGS)" \
		    "LDFLAGS=$(GLDFLAGS)" "LIBFLAGS=$(GLIBFLAGS)" \
		    -f $(MAKEFILE)

prelude:
	echo > sources; echo > members

postlude:
	@case "$${members=$$(cat members)}" in \
	"")	;; \
	*)	case "$${sources=$$(cat sources)}" in \
		"")	;; \
		*)	echo Compiling $$sources; \
			$(CC) $(CFLAGS) -c $$sources || exit 1 ;; \
		esac; \
		echo Archiving $$members ; \
		$(AR) $(ARFLAGS) $(DESTLIB) $$members; \
		rm -f $$members ;; \
	esac
	rm sources; rm members

depend:
	echo > makedep
	grep "^\#include" *.c \
		| sed 's/\(.*\)\.c:.*"\(.*\)".*/\1.o: \2/' \
		| sed '/\#include/d' >> makedep
	grep "^\#include" *.c \
		| sed 's/\(.*\)\.c:.*<\(.*\)>.*/$$(DESTLIB)(\1.o): $$(USRINC)\/\2/' \
		| sed '/\#include/d' >> makedep
	grep ".include" *.s \
		| sed 's/\(.*\)\.s:.*"\(.*\)".*/\1.o: \2/' \
		| sed '/\#include/d' >> makedep
	echo '/^\# DO NOT DELETE THIS LINE/+1,$$d' > eddep
	echo '$$r makedep' >> eddep
	echo 'w' >> eddep
	ed $(MAKEFILE) < eddep
	rm makedep eddep
	echo >> $(MAKEFILE)
	echo "\# DEPENDENCIES MUST END AT END OF FILE:" \
	     "IF YOU PUT STUFF HERE, IT WILL GO AWAY" >> $(MAKEFILE)
	echo "\# See make depend, above" >> $(MAKEFILE)

# DO NOT DELETE THIS LINE - make depend needs it

$(DESTLIB)(spl.o): $(USRINC)/common/ccompat.h
$(DESTLIB)(spl.o): $(USRINC)/sys/inline.h
$(DESTLIB)(trap_level.o): $(USRINC)/sys/types.h
$(DESTLIB)(trap_level.o): $(USRINC)/common/_gregset.h
intr_disp.o: struct.inc
intr_disp.o: intr.inc
intr_disp.o: ddi.inc
intr_disp.o: select.inc
repinsb.o: repeat.inc
repinsd.o: repeat.inc
repinsw.o: repeat.inc
repoutsb.o: repeat.inc
repoutsd.o: repeat.inc
repoutsw.o: repeat.inc
setmask.o: struct.inc
setmask.o: pl.inc
setmask.o: ddi.inc
splx.o: struct.inc
splx.o: pl.inc
splx.o: ddi.inc
trap_disp.o: struct.inc
trap_disp.o: intr.inc
trap_disp.o: ddi.inc
trap_disp.o: select.inc

# DEPENDENCIES MUST END AT END OF FILE: IF YOU PUT STUFF HERE, IT WILL GO AWAY
# See make depend, above