From 32c3fa86dd2cca3e11a0af06f53104aec63b379b Mon Sep 17 00:00:00 2001 From: jkh Date: Sat, 13 Aug 1994 22:47:28 +0000 Subject: [PATCH] This is the first attempt to drag the top level Makefile Rod sent me into 2.0. It will surely need more work. Submitted by: jkh --- Makefile | 226 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 214 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 5aa16a5b9450..ceb312e17b6d 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,218 @@ -# @(#)Makefile 8.1 (Berkeley) 6/19/93 +# +# $Id$ +# +# Make command line options: +# -DCLOBBER will remove /usr/include and MOST of /usr/lib +# -DMAKE_LOCAL to add ./local to the SUBDIR list +# -DMAKE_PORTS to add ./ports to the SUBDIR list +# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir +# XXX1 -DNOCRYPT will prevent building of crypt versions (BROKEN RIGHT NOW) +# -DNOOBJDIR do not run ``${MAKE} obj'' +# -DNOPROFILE do not build profiled libraries +# +# XXX1 This has not yet been implemented in FreeBSD 2.0.0, the only way +# to build the system is with full crypt and KerberosIV +# -SUBDIR= bin gnu include lib libexec sbin \ - share usr.bin usr.sbin +# Put initial settings here. +NOCRYPT= yes +SUBDIR= -afterinstall: - (cd share/man && make makedb) +.if exists(bin) +SUBDIR+= bin +.endif +.if exists(contrib) +SUBDIR+= contrib +.endif +.if exists(etc) +SUBDIR+= etc +.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 +.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(sys) +SUBDIR+= sys +.endif +.if exists(usr.bin) +SUBDIR+= usr.bin +.endif +.if exists(usr.sbin) +SUBDIR+= usr.sbin +.endif + +# These are last, since it is nice to at least get the base system +# rebuilt before you do them. +.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) +SUBDIR+= local +.endif +.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) +SUBDIR+= ports +.endif + +# Handle the -DNOOBJDIR and -DNOCLEANDIR +.if defined(NOOBJDIR) +OBJDIR= +.else +OBJDIR= obj +.endif +.if defined(NOCLEANDIR) +CLEANDIR= clean +.else +CLEANDIR= cleandir +.endif + +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 "--------------------------------------------------------------" + @echo " XXX Not yet ready in 2.0.0" +# XXX 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 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 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 rm -rf +.endif + ${MAKE} cleandir + ${MAKE} obj +.endif + +mk: + @echo "--------------------------------------------------------------" + @echo " Rebuilding ${DESTDIR}/usr/share/mk" + @echo "--------------------------------------------------------------" + cd ${.CURDIR}/share/mk && ${MAKE} 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} install + cd ${.CURDIR}/gnu/lib/libg++ && ${MAKE} beforeinstall + cd ${.CURDIR}/gnu/usr.bin/cc/libobjc && ${MAKE} beforeinstall +.if !defined(NOCRYPT) + cd ${.CURDIR}/kerberosIV/include && ${MAKE} install +.endif + cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall + cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall + cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall + cd ${.CURDIR}/lib/librpcsvc && ${MAKE} beforeinstall + +libraries: + @echo "--------------------------------------------------------------" + @echo " Rebuilding ${DESTDIR}/usr/lib" + @echo "--------------------------------------------------------------" + @echo +.if defined(CLOBBER) + find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \ + xargs rm -rf +.endif + # XXX The whole GNU block should be doable in one command, as soon # as libg++ works on FreeBSD 2.0 I will try that out +#XXX cd ${.CURDIR}/gnu/lib/libg++ && \ +#XXX ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + cd ${.CURDIR}/gnu/lib/libmalloc && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + cd ${.CURDIR}/gnu/lib/libreadline && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + cd ${.CURDIR}/gnu/lib/libregex && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + cd ${.CURDIR}/lib && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + # You need the lex lib before you can build kerberosIV +#XXX # We don't have lex in the 2.0 tree yet! +#XXX cd ${.CURDIR}/usr.bin/lex/lib && \ +#XXX ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} +.if !defined(NOCRYPT) + cd ${.CURDIR}/kerberosIV/acl && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + cd ${.CURDIR}/kerberosIV/des && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + cd ${.CURDIR}/kerberosIV/kdb && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + cd ${.CURDIR}/kerberosIV/krb && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} +.endif + +tools: + @echo "--------------------------------------------------------------" + @echo " Rebuilding ${DESTDIR} Compiler and Make" + @echo "--------------------------------------------------------------" + @echo + cd ${.CURDIR}/gnu/usr.bin/cc && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + cd ${.CURDIR}/usr.bin/make && \ + ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} + +mdec: + @echo "--------------------------------------------------------------" + @echo " Rebuilding ${DESTDIR}/usr/mdec" + @echo "--------------------------------------------------------------" + @echo + @echo " XXX Not yet ready in 2.0.0" +#XXX.if ${MACHINE} == "i386" +#XXX # XXX Need to fix for obj case, src/sys/Makefile needs to be fixed to +#XXX # traverse down into here and this can go away! +#XXX cd ${.CURDIR}/sys/i386/boot && ${MAKE} depend all install ${CLEANDIR} +#XXX.if defined (DESTDIR) +#XXX # XXX Really need to fix the sys/i386/boot Makefile so this is not +#XXX # necessary!!! +#XXX cd /usr/mdec && find . | cpio -pdamuv ${DESTDIR}/usr/mdec +#XXX.endif +#XXX.endif -build: - (cd include && make install) - make cleandir - (cd lib && make depend && make && make install) - (cd kerberosIV && make depend && make && make install) - make depend && make && make install - .include