-# @(#)Makefile 4.1 (Berkeley) 82/12/03
+# @(#)Makefile 8.1 (Berkeley) %G%
#
-DESTDIR=
-
-INSTALL=mv
-
-all: libc.a libc_p.a crtx
-
-libc.a libc_p.a:
- cd sys; make
- cd gen; make
- cd stdio; make
- cd net; make
- mkdir tmp
- cd tmp; ar x ../sys/syslib
- cd tmp; ar x ../gen/genlib
- cd tmp; ar x ../stdio/stdiolib
- cd tmp; ar x ../net/netlib
- ls tmp/*.o | sort -t/ +1 > t1
- ar ar libc.a `lorder \`cat t1\` | tsort`;
- ar ma flsbuf.o libc.a exit.o
- rm -f t1 tmp/*
- cd tmp; ar x ../sys/syslib_p
- cd tmp; ar x ../gen/genlib_p
- cd tmp; ar x ../stdio/stdiolib_p
- cd tmp; ar x ../net/netlib_p
- ls tmp/*.o | sort -t/ +1 > t1
- ar ar libc_p.a `lorder \`cat t1\` | tsort`;
- ar ma flsbuf.o libc_p.a exit.o
- rm -rf t1 tmp
-
-crtx:
- cd csu; make
-
-clean:
- for i in */.; do cd $$i; make clean; cd ..; done
- rm -f t1 *.o
-
-errlst.o: gen/errlst.c
- cc -S gen/errlst.c
- ed - <gen/:errfix errlst.s
- as -o errlst.o errlst.s
- rm errlst.s
-
-install: all
- $(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 csu; $(INSTALL) crt0.o $(DESTDIR)/lib
- cd csu; $(INSTALL) mcrt0.o $(DESTDIR)/lib
- cd csu; $(INSTALL) gcrt0.o $(DESTDIR)/usr/lib
+# 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>