4.4BSD snapshot (revision 8.1)
[unix-history] / usr / src / lib / libc / Makefile
index 5414bc5..3c73d36 100644 (file)
@@ -1,54 +1,50 @@
-#      Makefile        4.7     84/11/13
+#      @(#)Makefile    8.1 (Berkeley) %G%
 #
 #
-# 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 always machine dependent and expected
-# to be located in ${MACHINE}/csu
-#
-DESTDIR=
-INSTALL=install -m 644
-DFLMON=        mon.o
-MACHINE=vax
-COMPAT=        compat-4.1 compat-sys5
-ALL=   gen inet net stdio ${MACHINE} ${COMPAT}
-
-libc.a libc_p.a: ${MACHINE}/csu ${ALL}
-       -mkdir tmp
-       for i in ${ALL}; do (cd tmp; ar x ../$$i/$${i}lib); done
-       ls tmp/*.o | sort -t/ +1 > t1
-       ar cr libc.a `lorder \`cat t1\` | tsort` ${MACHINE}/csu/${DFLMON}
-       ar ma flsbuf.o libc.a exit.o
-       ar ma exit.o libc.a fakcu.o
-       rm -f t1 tmp/*
-       for i in ${ALL}; do (cd tmp; ar x ../$$i/$${i}lib_p); done
-       ls tmp/*.o | sort -t/ +1 > t1
-       ar cr libc_p.a `lorder \`cat t1\` | tsort` ${MACHINE}/csu/${DFLMON}
-       ar ma flsbuf.o libc_p.a exit.o
-       ar ma exit.o libc.a fakcu.o
-       rm -rf t1 tmp
-
-${MACHINE}/csu ${ALL}: FRC
-       cd $@; make ${MFLAGS}
-
-FRC:
-
-clean:
-       for i in ${MACHINE}/csu ${ALL}; do (cd $$i; make ${MFLAGS} clean); done
-       rm -f t1 tmp/*.o
-       -rmdir tmp
-
-install: 
-       ${INSTALL} libc.a ${DESTDIR}/lib/libc.a
-       ranlib ${DESTDIR}/lib/libc.a
-       ${INSTALL} libc_p.a ${DESTDIR}/usr/lib/libc_p.a
-       ranlib ${DESTDIR}/usr/lib/libc_p.a
-       cd ${MACHINE}/csu; make DESTDIR=${DESTDIR} install
+# All library objects contain sccsid strings by default; they may be
+# excluded as a space-saving measure.  To produce a library that does
+# not contain these strings, delete -DLIBC_SCCS and -DSYSLIBC_SCCS
+# from CFLAGS below.  To remove these strings from just the system call
+# stubs, remove just -DSYSLIBC_SCCS from CFLAGS.
+LIB=c
+CFLAGS+=-DLIBC_SCCS -DSYSLIBC_SCCS
+AINC=  -I${.CURDIR}/${MACHINE}
+
+.include "${.CURDIR}/db/Makefile.inc"
+.include "${.CURDIR}/compat-43/Makefile.inc"
+.include "${.CURDIR}/gen/Makefile.inc"
+.include "${.CURDIR}/gmon/Makefile.inc"
+.include "${.CURDIR}/locale/Makefile.inc"
+.include "${.CURDIR}/net/Makefile.inc"
+.include "${.CURDIR}/quad/Makefile.inc"
+.include "${.CURDIR}/regex/Makefile.inc"
+.include "${.CURDIR}/stdio/Makefile.inc"
+.include "${.CURDIR}/stdlib/Makefile.inc"
+.include "${.CURDIR}/string/Makefile.inc"
+.include "${.CURDIR}/sys/Makefile.inc"
+
+KQSRCS=        adddi3.c anddi3.c ashldi3.c ashrdi3.c cmpdi2.c divdi3.c iordi3.c \
+       lshldi3.c lshrdi3.c moddi3.c muldi3.c negdi2.c notdi2.c qdivrem.c \
+       subdi3.c ucmpdi2.c udivdi3.c umoddi3.c xordi3.c
+KSRCS= bcmp.c ffs.c mcount.c rindex.c strcat.c strcmp.c strcpy.c \
+       strlen.c strncpy.c
+
+libkern: libkern.gen libkern.${MACHINE}
+
+libkern.gen: ${KQSRCS} ${KSRCS}
+       cp -p ${.CURDIR}/quad/quad.h ${.ALLSRC} /sys/libkern
+
+libkern.${MACHINE}:: ${KMSRCS}
+.if defined(KMSRCS) && !empty(KMSRCS)
+       cp -p ${.ALLSRC} /sys/libkern/${MACHINE}
+.endif
+
+beforeinstall: tags
+       install -c -o bin -g bin -m 444 tags /var/db/libc.tags
+
+tags: ${SRCS}
+       ctags ${.ALLSRC:M*.c}
+       egrep -o "^ENTRY(.*)|^FUNC(.*)|^SYSCALL(.*)" ${.ALLSRC:M*.s} | \
+           sed "s;\([^:]*\):\([^(]*\)(\([^, )]*\)\(.*\);\3 \1 /^\2(\3\4$$/;" \
+           >> tags; sort -o tags tags
+
+.include <bsd.lib.mk>