Add files that used to be links.
[unix-history] / Makefile
index 47e1f90..c8951e4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 #      @(#)Makefile    5.1.1.2 (Berkeley) 5/9/91
 #
 #      @(#)Makefile    5.1.1.2 (Berkeley) 5/9/91
 #
-#      $Id: Makefile,v 1.21 1993/11/09 21:41:30 paul Exp $
+#      $Id: Makefile,v 1.31 1994/01/05 20:11:49 nate Exp $
 #
 
 SUBDIR=
 #
 
 SUBDIR=
@@ -38,6 +38,16 @@ SUBDIR+= usr.bin
 SUBDIR+= usr.sbin
 .endif
 
 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
 
 # Special cases: etc sys
 # Not ported: kerberosIV
 
@@ -50,7 +60,7 @@ CLEANDIR=
 CLEANDIR=      cleandir
 .endif
 
 CLEANDIR=      cleandir
 .endif
 
-world: directories cleandist mk includes bootstrapld libraries tools mdec
+world: directories cleandist mk includes libraries tools mdec
        @echo "--------------------------------------------------------------"
        @echo " Rebuilding ${DESTDIR} The whole thing"
        @echo "--------------------------------------------------------------"
        @echo "--------------------------------------------------------------"
        @echo " Rebuilding ${DESTDIR} The whole thing"
        @echo "--------------------------------------------------------------"
@@ -79,10 +89,12 @@ mk:
        @echo "--------------------------------------------------------------"
        @echo " Rebuilding ${DESTDIR}/usr/share/mk"
        @echo "--------------------------------------------------------------"
        @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!! rm -rf ${DESTDIR}/usr/share/mk
        # DONT DO THIS!! mkdir ${DESTDIR}/usr/share/mk
-       chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/share/mk
-       chmod 755 ${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 install;
 
 includes:
        cd ${.CURDIR}/share/mk;                 make install;
 
 includes:
@@ -97,32 +109,33 @@ includes:
        chmod 755 ${DESTDIR}/usr/include
 .endif
        cd ${.CURDIR}/include;                  make install
        chmod 755 ${DESTDIR}/usr/include
 .endif
        cd ${.CURDIR}/include;                  make install
+       cd ${.CURDIR}/gnu/gcc2/libobjc;         make beforeinstall
        cd ${.CURDIR}/gnu/libg++;               make beforeinstall
        cd ${.CURDIR}/gnu/libregex;             make beforeinstall
        cd ${.CURDIR}/lib/libcurses;            make beforeinstall
        cd ${.CURDIR}/lib/libc;                 make beforeinstall
 
        cd ${.CURDIR}/gnu/libg++;               make beforeinstall
        cd ${.CURDIR}/gnu/libregex;             make beforeinstall
        cd ${.CURDIR}/lib/libcurses;            make beforeinstall
        cd ${.CURDIR}/lib/libc;                 make beforeinstall
 
-# XXX -- This will go away later -- hack to get up to speed with shlibs
-# setenv NOBOOTSTRAPLD to prevent building new shlib tools.
-# This is to save build time if you've already done it before,
-# you MUST run it the first time you get the new sources.
+# 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:
-.if !defined(NOBOOTSTRAPLD)
+bootstrapld:   directories cleandist mk includes
        @echo "--------------------------------------------------------------"
        @echo " Building new shlib compiler tools"
        @echo "--------------------------------------------------------------"
        @echo "--------------------------------------------------------------"
        @echo " Building new shlib compiler tools"
        @echo "--------------------------------------------------------------"
-       cd ${.CURDIR}/usr.bin/strip; make depend all install ${CLEANDIR} obj
-       cd ${.CURDIR}/gnu/gas; make depend all install ${CLEANDIR} obj
-       NOPIC=nopic
-       cd ${.CURDIR}/gnu/gcc2; make depend all install
-       cd ${.CURDIR}/gnu/ld; make depend all install ${CLEANDIR} obj
-       NOPIC=
-       cd ${.CURDIR}/gnu/gcc2/libgcc; make all install ${CLEANDIR} obj;
-       cd ${.CURDIR}/lib/libc; make depend all install ${CLEANDIR} obj
-       cd ${.CURDIR}/lib/csu.i386; make depend all install ${CLEANDIR} obj
-       cd ${.CURDIR}/gnu/ld/rtld; make depend all install ${CLEANDIR} obj
-.endif
+       # 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/ld;           make -DNOPIC depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/gas;          make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/gcc2;         make -DNOPIC depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/gcc2/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/ld/rtld;      make depend all install ${CLEANDIR} obj
 
 libraries:
        # setenv NOPROFILE if you do not want profiled libraries
 
 libraries:
        # setenv NOPROFILE if you do not want profiled libraries
@@ -131,10 +144,7 @@ libraries:
        @echo "--------------------------------------------------------------"
        @echo
 .if defined(CLOBBER)
        @echo "--------------------------------------------------------------"
        @echo
 .if defined(CLOBBER)
-       rm -rf ${DESTDIR}/usr/lib
-       mkdir ${DESTDIR}/usr/lib
-       chown -R bin.bin ${DESTDIR}/usr/lib
-       chmod 755 ${DESTDIR}/usr/lib
+       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 ${.CURDIR}/gnu/gcc2/libgcc;  make depend all install ${CLEANDIR} obj
 .endif
        cd ${.CURDIR}/lib;              make depend all install ${CLEANDIR} obj
        cd ${.CURDIR}/gnu/gcc2/libgcc;  make depend all install ${CLEANDIR} obj
@@ -148,8 +158,8 @@ tools:
        @echo " Rebuilding ${DESTDIR} Compiler and Make"
        @echo "--------------------------------------------------------------"
        @echo
        @echo " Rebuilding ${DESTDIR} Compiler and Make"
        @echo "--------------------------------------------------------------"
        @echo
-       cd ${.CURDIR}/gnu/gcc2;                 make depend all install ${CLEANDIR} obj
-       cd ${.CURDIR}/usr.bin/make;             make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/gnu/gcc2;         make depend all install ${CLEANDIR} obj
+       cd ${.CURDIR}/usr.bin/make;     make depend all install ${CLEANDIR} obj
 
 mdec:
        @echo "--------------------------------------------------------------"
 
 mdec:
        @echo "--------------------------------------------------------------"