cleanups
[unix-history] / usr / src / Makefile
index f7b0a0a..f070e83 100644 (file)
-#      @(#)Makefile    4.9     (Berkeley)      %G%
+#
+# Copyright (c) 1986 Regents of the University of California.
+# All rights reserved.  The Berkeley software License Agreement
+# specifies the terms and conditions for redistribution.
+#
+#      @(#)Makefile    4.13    (Berkeley)      %G%
+#
+# This makefile is designed to be run as:
+#      make build
+#      make installsrc
+# The `make build' will compile and install the libraries
+# before building the rest of the sources. The `make installsrc'
+# will then install the remaining binaries.
+# 
+# It can also be run in the more conventional way:
+#      make
+#      make install
+# The `make' will compile everything without installing anything.
+# The `make install' will then install everything. Note however
+# that all the binaries will have been loaded with the old libraries.
+#
+# C library options: passed to libc makefile.
+# See lib/libc/Makefile for explanation.
+# HOSTLOOKUP must be either named or hosttable.
+# DFLMON must be either mon.o or gmon.o.
+# DEFS may include -DLIBC_SCCS, -DSYSLIBC_SCCS, both, or neither.
+#
+HOSTLOOKUP=named
+DFLMON=mon.o
+DEFS= -DLIBC_SCCS
+LIBCDEFS= HOSTLOOKUP=${HOSTLOOKUP} DFLMON=${DFLMON} DEFS="${DEFS}"
+
+# global flags
+# SRC_MFLAGS are used on makes in command source directories,
+# but not in library or compiler directories that will be installed
+# for use in compiling everything else.
 #
 DESTDIR=
 CFLAGS=        -O
 #
 DESTDIR=
 CFLAGS=        -O
+SRC_MFLAGS = -k
 
 # Programs that live in subdirectories, and have makefiles of their own.
 #
 LIBDIR= lib usr.lib
 
 # Programs that live in subdirectories, and have makefiles of their own.
 #
 LIBDIR= lib usr.lib
-SRCDIR=        bin usr.bin etc ucb new games local
+SRCDIR=        bin usr.bin etc ucb new games local old
 
 all:   ${LIBDIR} ${SRCDIR}
 
 
 all:   ${LIBDIR} ${SRCDIR}
 
-${LIBDIR} ${SRCDIR}: FRC
-       cd $@; make ${MFLAGS}
+lib:   FRC
+       cd lib/libc; make ${MFLAGS} ${LIBCDEFS}
+       cd lib; make ${MFLAGS} pcc cpp c2
+
+usr.lib ${SRCDIR}: FRC
+       cd $@; make ${MFLAGS} ${SRC_MFLAGS}
+
+build: buildlib ${SRCDIR}
 
 
-build: FRC
-       echo installing /usr/include
-       cd include; make ${MFLAGS} install
-       cd lib; make ${MFLAGS}
-       echo installing /lib
-       cd lib; make ${MFLAGS} install
-       cd usr.lib; make ${MFLAGS}
-       echo installing /usr/lib
-       cd usr.lib; make ${MFLAGS} install
-       -for i in ${SRCDIR}; do (cd $$i; make ${MFLAGS}); done
+buildlib: FRC
+       @echo installing /usr/include
+       cd include; make ${MFLAGS} DESTDIR=${DESTDIR} install
+       @echo
+       @echo compiling libc.a
+       cd lib/libc; make ${MFLAGS} ${LIBCDEFS}
+       @echo installing /lib/libc.a
+       cd lib/libc; make ${MFLAGS} DESTDIR=${DESTDIR} install
+       @echo
+       @echo compiling C compiler
+       cd lib; make ${MFLAGS} pcc cpp c2
+       @echo installing C compiler
+       cd lib/pcc; make ${MFLAGS} DESTDIR=${DESTDIR} install
+       cd lib/cpp; make ${MFLAGS} DESTDIR=${DESTDIR} install
+       cd lib/c2; make ${MFLAGS} DESTDIR=${DESTDIR} install
+       cd lib; make ${MFLAGS} clean
+       @echo
+       @echo re-compiling libc.a
+       cd lib/libc; make ${MFLAGS} ${LIBCDEFS}
+       @echo re-installing /lib/libc.a
+       cd lib/libc; make ${MFLAGS} DESTDIR=${DESTDIR} install
+       @echo
+       @echo re-compiling C compiler
+       cd lib; make ${MFLAGS} pcc cpp c2
+       @echo re-installing C compiler
+       cd lib/pcc; make ${MFLAGS} DESTDIR=${DESTDIR} install
+       cd lib/cpp; make ${MFLAGS} DESTDIR=${DESTDIR} install
+       cd lib/c2; make ${MFLAGS} DESTDIR=${DESTDIR} install
+       @echo
+       @echo compiling usr.lib
+       cd usr.lib; make ${MFLAGS} ${SRC_MFLAGS}
+       @echo installing /usr/lib
+       cd usr.lib; make ${MFLAGS} ${SRC_MFLAGS} DESTDIR=${DESTDIR} install
 
 FRC:
 
 install:
 
 FRC:
 
 install:
-       -for i in ${SUBDIR}; do \
-               (cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
+       -for i in ${LIBDIR} ${SRCDIR}; do \
+               (cd $$i; \
+               make ${MFLAGS} ${SRC_MFLAGS} DESTDIR=${DESTDIR} install); \
+       done
 
 installsrc:
        -for i in ${SRCDIR}; do \
 
 installsrc:
        -for i in ${SRCDIR}; do \
-               (cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
+               (cd $$i; \
+               make ${MFLAGS} ${SRC_MFLAGS} DESTDIR=${DESTDIR} install); \
+       done
 
 tags:
        for i in include lib usr.lib; do \
 
 tags:
        for i in include lib usr.lib; do \
@@ -42,4 +111,4 @@ tags:
 
 clean:
        rm -f a.out core *.s *.o
 
 clean:
        rm -f a.out core *.s *.o
-       for i in ${LIBDIR} ${SRCDIR}; do (cd $$i; make ${MFLAGS} clean); done
+       for i in ${LIBDIR} ${SRCDIR}; do (cd $$i; make -k ${MFLAGS} clean); done