# @(#)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.41 1994/02/26 19:32:43 wollman Exp $
#
SUBDIR=
.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
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
CLEANDIR= cleandir
.endif
-world: directories cleandist mk includes bootstrapld libraries tools mdec
+# 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}/usr.sbin/sendmail/src; make install
cd ${.CURDIR}/share/man; make makedb
directories:
@echo " Cleaning up the source tree, and rebuilding the obj tree"
@echo "--------------------------------------------------------------"
@echo
- here=`pwd`; dest=/usr/obj/`echo $$here | sed 's,/usr/src,,'`; \
+ 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
@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
- 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:
chmod 755 ${DESTDIR}/usr/include
.endif
cd ${.CURDIR}/include; make install
- cd ${.CURDIR}/gnu/libg++; make beforeinstall
- cd ${.CURDIR}/gnu/libregex; make beforeinstall
+ 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 install
+.endif
-# 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 "--------------------------------------------------------------"
- 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/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
libraries:
# setenv NOPROFILE if you do not want profiled libraries
@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
-.endif
- cd ${.CURDIR}/lib; make depend all install ${CLEANDIR} obj
- cd ${.CURDIR}/gnu/gcc2/libgcc; make depend all install ${CLEANDIR} obj
- cd ${.CURDIR}/gnu/libg++; make depend all install ${CLEANDIR} obj
- cd ${.CURDIR}/gnu/libregex; make depend all install ${CLEANDIR} obj
- cd ${.CURDIR}/gnu/libmalloc; make depend all install ${CLEANDIR} obj
+ 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}/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
tools:
@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 ${CCDIR}; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/usr.bin/make; make depend all install ${CLEANDIR} obj
mdec:
@echo "--------------------------------------------------------------"