From Mark Tracey and Paul Traina:
[unix-history] / Makefile
index 9568813..05e96d1 100644 (file)
--- a/Makefile
+++ b/Makefile
 #      @(#)Makefile    5.1.1.2 (Berkeley) 5/9/91
 #
 #      @(#)Makefile    5.1.1.2 (Berkeley) 5/9/91
 #
-# PATCHES MAGIC                LEVEL   PATCH THAT GOT US HERE
-# --------------------         -----   ----------------------
-# CURRENT PATCH LEVEL:         1       00128
-# --------------------         -----   ----------------------
+#      $Id: Makefile,v 1.50 1994/05/14 20:01:00 ache Exp $
 #
 #
-# 04 Apr 93    Rodney W. Grimes        Pulled in Net/2 version string
-#                                      Added not ported comment
-#                                      Added special cases comment
-#                                      Added contrib, games, and share
+
+SUBDIR=
+.if exists(bin)
+SUBDIR+= bin
+.endif
+.if exists(contrib)
+SUBDIR+= contrib
+.endif
+.if exists(games)
+SUBDIR+= games
+.endif
+.if exists(gnu)
+SUBDIR+= gnu
+.endif
+.if exists(include)
+SUBDIR+= include
+.endif
+.if exists(lib)
+SUBDIR+= lib
+.endif
+
+# This contains both libraries and includes, which stuff below depends
+# upon.
+.if exists(kerberosIV) && !defined(NOCRYPT)
+SUBDIR+= kerberosIV
+.endif
+
+.if exists(libexec)
+SUBDIR+= libexec
+.endif
+.if exists(sbin)
+SUBDIR+= sbin
+.endif
+.if exists(share)
+SUBDIR+= share
+.endif
+.if exists(usr.bin)
+SUBDIR+= usr.bin
+.endif
+.if exists(usr.sbin)
+SUBDIR+= usr.sbin
+.endif
+
+# This is for people who want to have src/ports, src/local built
+# automatically.  
+.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
+SUBDIR+= local
+.endif
+.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
+SUBDIR+= ports
+.endif
+
+
+# Special cases: etc sys
+# Not ported: kerberosIV
+
+#
+# setenv NOCLEANDIR will prevent make cleandirs from being run
 #
 #
+.if defined(NOCLEANDIR)
+CLEANDIR=
+.else
+CLEANDIR=      cleandir
+.endif
+
+# Where is the c-compier source.  Change this, and gnu/usr.bin/Makefile if you
+# want to use another cc (gcc-2.5.8 for instance)
+CCDIR=         ${.CURDIR}/gnu/usr.bin/cc
+#CCDIR=                ${.CURDIR}/gnu/usr.bin/cc25
+
+world: directories cleandist mk includes libraries tools mdec
+       @echo "--------------------------------------------------------------"
+       @echo " Rebuilding ${DESTDIR} The whole thing"
+       @echo "--------------------------------------------------------------"
+       @echo
+       make depend all install
+       cd ${.CURDIR}/share/man;                make makedb
+
+directories:
+       @echo "--------------------------------------------------------------"
+       @echo " Making directories"
+       @echo "--------------------------------------------------------------"
+       cd ${.CURDIR}/etc;                      make distrib-dirs
+
+cleandist:
+.if !defined(NOCLEANDIR)
+       @echo "--------------------------------------------------------------"
+       @echo " Cleaning up the source tree, and rebuilding the obj tree"
+       @echo "--------------------------------------------------------------"
+       @echo
+       here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
+       if test -d /usr/obj -a ! -d $$dest; then \
+               mkdir -p $$dest; \
+       else \
+               true; \
+       fi; \
+       cd $$dest; rm -rf ${SUBDIR}
+       find . -name obj | xargs -n30 rm -rf
+.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
+       # The cd is done as local may well be a symbolic link
+       -cd local ; find . -name obj | xargs -n30 rm -rf
+.endif
+.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
+       # The cd is done as local may well be a symbolic link
+       -cd ports ; find . -name obj | xargs -n30 rm -rf
+.endif
+       make cleandir
+       make obj
+.endif
+
+mk:
+       @echo "--------------------------------------------------------------"
+       @echo " Rebuilding ${DESTDIR}/usr/share/mk"
+       @echo "--------------------------------------------------------------"
+.if defined(CLOBBER)
+       # DONT DO THIS!! rm -rf ${DESTDIR}/usr/share/mk
+       # DONT DO THIS!! mkdir ${DESTDIR}/usr/share/mk
+       # DONT DO THIS!! chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/share/mk
+       # DONT DO THIS!! chmod 755 ${DESTDIR}/usr/share/mk
+.endif
+       cd ${.CURDIR}/share/mk;                 make clean all install;
+
+includes:
+       @echo "--------------------------------------------------------------"
+       @echo " Rebuilding ${DESTDIR}/usr/include"
+       @echo "--------------------------------------------------------------"
+       @echo
+.if defined(CLOBBER)
+       rm -rf ${DESTDIR}/usr/include
+       mkdir ${DESTDIR}/usr/include
+       chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
+       chmod 755 ${DESTDIR}/usr/include
+.endif
+       cd ${.CURDIR}/include;                  make clean all install
+       cd ${CCDIR}/libobjc;                    make beforeinstall
+       cd ${.CURDIR}/gnu/lib/libg++;           make beforeinstall
+       cd ${.CURDIR}/lib/libcurses;            make beforeinstall
+       cd ${.CURDIR}/lib/libc;                 make beforeinstall
+.if !defined(NOCRYPT) && exists(${.CURDIR}/kerberosIV)
+       cd ${.CURDIR}/kerberosIV/include;       make clean all install
+.endif
+
+# You MUST run this the first time you get the new sources to boot strap
+# the shared library tools onto you system.  This target should only
+# need to be run once on a system.
+
+bootstrapld:   directories cleandist mk includes
+       @echo "--------------------------------------------------------------"
+       @echo " Building new shlib compiler tools"
+       @echo "--------------------------------------------------------------"
+       # These tools need to be built very early due to a.out.h changes:
+       # It is possible that ar is needed
+       cd ${.CURDIR}/usr.bin/mkdep;    make -DNOPIC depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/usr.bin/nm;       make -DNOPIC depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/usr.bin/ranlib;   make -DNOPIC depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/usr.bin/strip;    make -DNOPIC depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/usr.bin/ld;   make -DNOPIC depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/usr.bin/as;   make depend all install ${CLEANDIR} obj
+       cd ${CCDIR};                    make -DNOPIC depend all install ${CLEANDIR} obj
+       cd ${CCDIR}/libgcc;             make all install ${CLEANDIR} obj
+       cd ${.CURDIR}/lib/csu.i386;     make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/lib/libc;         make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/usr.bin/ld/rtld;      make depend all install ${CLEANDIR} obj
+
+#    Standard database make routines are slow especially for big passwd files.
+#    Moreover, *pwd.db bases are too big and waste root space.  You can have
+#    much faster routines with small *pwd.db, but loose binary compatibility
+#    with previous versions and with other BSD-like systems.  If you want to
+#    setup much faster routines, define envirnoment variable (f.e. 'setenv
+#    PW_COMPACT' in csh) and use target into /usr/src/Makefile.  If you will
+#    want to return this changes back, use the same target without defining
+#    PW_COMPACT.
+
+bootstrappwd:   #directories
+       -rm -f ${.CURDIR}/lib/libc/obj/getpwent.o ${.CURDIR}/lib/libc/getpwent.o
+       cd ${.CURDIR}/lib/libc; make all
+       -rm -f ${.CURDIR}/usr.sbin/pwd_mkdb/obj/pwd_mkdb.o ${.CURDIR}/usr.sbin/pwd_mkdb/pwd_mkdb.o
+       cd ${.CURDIR}/usr.sbin/pwd_mkdb; make all install ${CLEANDIR}
+       cp /etc/master.passwd /etc/mp.t; pwd_mkdb /etc/mp.t
+       SLIB=`basename ${.CURDIR}/lib/libc/obj/libc.so.*`; \
+               cp ${.CURDIR}/lib/libc/obj/$$SLIB /usr/lib/$$SLIB.tmp; \
+               mv /usr/lib/$$SLIB.tmp /usr/lib/$$SLIB
+       cd ${.CURDIR}/lib/libc; make install ${CLEANDIR}
+       cd ${.CURDIR}/usr.bin/passwd; make clean all install ${CLEANDIR}
+       cd ${.CURDIR}/usr.bin/chpass; make clean all install ${CLEANDIR}
+       cd ${.CURDIR}/bin; make clean all install ${CLEANDIR}
+       cd ${.CURDIR}/sbin; make clean all install ${CLEANDIR}
+       @echo "--------------------------------------------------------------"
+       @echo " Do a reboot now because all daemons need restarting"
+       @echo "--------------------------------------------------------------"
+
+libraries:
+       # setenv NOPROFILE if you do not want profiled libraries
+       @echo "--------------------------------------------------------------"
+       @echo " Rebuilding ${DESTDIR}/usr/lib"
+       @echo "--------------------------------------------------------------"
+       @echo
+.if defined(CLOBBER)
+       find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | xargs -n30 rm -rf
+.endif
+       cd ${.CURDIR}/lib;                      make depend all install ${CLEANDIR} obj
+       cd ${CCDIR}/libgcc;                     make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/lib/libg++;           make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/lib/libregex;         make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/lib/libmalloc;        make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/lib/libreadline;      make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/usr.bin/lex;      make depend all install ${CLEANDIR} obj
+.if exists(${.CURDIR}/kerberosIV) && !defined(NOCRYPT)
+       cd ${.CURDIR}/kerberosIV/des;   make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/kerberosIV/krb;   make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/kerberosIV/kdb;   make depend all install ${CLEANDIR} obj
+.endif
 
 
-SUBDIR=        bin contrib include lib libexec sbin share usr.bin usr.sbin
+tools:
+       @echo "--------------------------------------------------------------"
+       @echo " Rebuilding ${DESTDIR} Compiler and Make"
+       @echo "--------------------------------------------------------------"
+       @echo
+       cd ${CCDIR};                    make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/usr.bin/make;     make depend all install ${CLEANDIR} obj
 
 
-# Special cases: etc sys.386bsd
-# Not ported: games kerberosIV
+mdec:
+       @echo "--------------------------------------------------------------"
+       @echo " Rebuilding ${DESTDIR}/usr/mdec"
+       @echo "--------------------------------------------------------------"
+       @echo
+.if ${MACHINE} == "i386"
+       cd ${.CURDIR}/sys/i386/boot;    make depend all install ${CLEANDIR}
+.if defined (DESTDIR)
+       cd /usr/mdec; find . | cpio -pdamuv ${DESTDIR}/usr/mdec
+.endif
+.endif
 
 .include <bsd.subdir.mk>
 
 .include <bsd.subdir.mk>