Makefile revision 2061
112657Skvn# 212995Siveresov# $Id$ 312657Skvn# 412657Skvn# Make command line options: 512657Skvn# -DCLOBBER will remove /usr/include and MOST of /usr/lib 612657Skvn# -DMAKE_LOCAL to add ./local to the SUBDIR list 712657Skvn# -DMAKE_PORTS to add ./ports to the SUBDIR list 812657Skvn# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir 912657Skvn# XXX1 -DNOCRYPT will prevent building of crypt versions (BROKEN RIGHT NOW) 1012657Skvn# -DNOOBJDIR do not run ``${MAKE} obj'' 1112657Skvn# -DNOPROFILE do not build profiled libraries 1212657Skvn# 1312657Skvn# XXX1 This has not yet been implemented in FreeBSD 2.0.0, the only way 1412657Skvn# to build the system is with full crypt and KerberosIV 1512657Skvn# 1612657Skvn 1712657Skvn# Put initial settings here. 1812657SkvnNOCRYPT= yes 1912657SkvnSUBDIR= 2012657Skvn 2112657Skvn.if exists(bin) 2212657SkvnSUBDIR+= bin 2312657Skvn.endif 2412657Skvn.if exists(contrib) 2512657SkvnSUBDIR+= contrib 2612657Skvn.endif 2712657Skvn.if exists(etc) 2812657SkvnSUBDIR+= etc 2912657Skvn.endif 3012657Skvn.if exists(games) 3112657SkvnSUBDIR+= games 3212657Skvn.endif 3312657Skvn.if exists(gnu) 3412657SkvnSUBDIR+= gnu 3512657Skvn.endif 3612657Skvn.if exists(include) 3712657SkvnSUBDIR+= include 3812657Skvn.endif 3912657Skvn.if exists(lib) 4012657SkvnSUBDIR+= lib 4112657Skvn.endif 4212657Skvn.if exists(kerberosIV) && !defined(NOCRYPT) 4312657SkvnSUBDIR+= kerberosIV 4412657Skvn.endif 4512657Skvn.if exists(libexec) 4612657SkvnSUBDIR+= libexec 4712657Skvn.endif 4812657Skvn.if exists(sbin) 4912657SkvnSUBDIR+= sbin 5012657Skvn.endif 5112657Skvn.if exists(share) 5212657SkvnSUBDIR+= share 5312657Skvn.endif 5412657Skvn.if exists(sys) 5512657SkvnSUBDIR+= sys 5612657Skvn.endif 5712657Skvn.if exists(usr.bin) 5812657SkvnSUBDIR+= usr.bin 5912657Skvn.endif 6012657Skvn.if exists(usr.sbin) 6112657SkvnSUBDIR+= usr.sbin 6212657Skvn.endif 6312657Skvn 6412657Skvn# These are last, since it is nice to at least get the base system 6512657Skvn# rebuilt before you do them. 6612657Skvn.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 6712657SkvnSUBDIR+= local 6812657Skvn.endif 6912657Skvn.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 7012657SkvnSUBDIR+= ports 7112657Skvn.endif 7212657Skvn 7312657Skvn# Handle the -DNOOBJDIR and -DNOCLEANDIR 7412657Skvn.if defined(NOOBJDIR) 7512657SkvnOBJDIR= 7612657Skvn.else 7712657SkvnOBJDIR= obj 7812657Skvn.endif 7912657Skvn.if defined(NOCLEANDIR) 8012657SkvnCLEANDIR= clean 8112657Skvn.else 8212657SkvnCLEANDIR= cleandir 8312657Skvn.endif 8412657Skvn 8512657Skvnworld: directories cleandist mk includes libraries tools mdec 8612657Skvn @echo "--------------------------------------------------------------" 8712657Skvn @echo " Rebuilding ${DESTDIR} The whole thing" 8812657Skvn @echo "--------------------------------------------------------------" 8912657Skvn @echo 9012657Skvn ${MAKE} depend all install 9112657Skvn cd ${.CURDIR}/share/man && ${MAKE} makedb 9212657Skvn 9312657Skvndirectories: 9412657Skvn @echo "--------------------------------------------------------------" 9512657Skvn @echo " Making directories" 9612657Skvn @echo "--------------------------------------------------------------" 9712657Skvn @echo " XXX Not yet ready in 2.0.0" 9812657Skvn# XXX cd ${.CURDIR}/etc && ${MAKE} distrib-dirs 9912657Skvn 10012657Skvncleandist: 10112657Skvn.if !defined(NOCLEANDIR) 10212657Skvn @echo "--------------------------------------------------------------" 10312657Skvn @echo " Cleaning up the source tree, and rebuilding the obj tree" 10412657Skvn @echo "--------------------------------------------------------------" 10512657Skvn @echo 10612657Skvn here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \ 10712657Skvn if test -d /usr/obj -a ! -d $$dest; then \ 10812657Skvn mkdir -p $$dest; \ 10912657Skvn else \ 11012657Skvn true; \ 11112657Skvn fi; \ 11212657Skvn cd $$dest && rm -rf ${SUBDIR} 11312657Skvn find . -name obj | xargs rm -rf 11412657Skvn.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 11512657Skvn # The cd is done as local may well be a symbolic link 11612657Skvn -cd local && find . -name obj | xargs rm -rf 11712657Skvn.endif 11812657Skvn.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 11912657Skvn # The cd is done as local may well be a symbolic link 12012657Skvn -cd ports && find . -name obj | xargs rm -rf 12112657Skvn.endif 12212657Skvn ${MAKE} cleandir 12312657Skvn ${MAKE} obj 12412657Skvn.endif 12512657Skvn 12612657Skvnmk: 12712657Skvn @echo "--------------------------------------------------------------" 12812657Skvn @echo " Rebuilding ${DESTDIR}/usr/share/mk" 12912657Skvn @echo "--------------------------------------------------------------" 13012657Skvn cd ${.CURDIR}/share/mk && ${MAKE} install 13112657Skvn 13212657Skvnincludes: 13312657Skvn @echo "--------------------------------------------------------------" 13412657Skvn @echo " Rebuilding ${DESTDIR}/usr/include" 13512657Skvn @echo "--------------------------------------------------------------" 13612657Skvn @echo 13712657Skvn.if defined(CLOBBER) 13812968Siveresov rm -rf ${DESTDIR}/usr/include 13912968Siveresov mkdir ${DESTDIR}/usr/include 14012657Skvn chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include 14112657Skvn chmod 755 ${DESTDIR}/usr/include 14212657Skvn.endif 14312657Skvn cd ${.CURDIR}/include && ${MAKE} install 14412657Skvn cd ${.CURDIR}/gnu/lib/libg++ && ${MAKE} beforeinstall 14512657Skvn cd ${.CURDIR}/gnu/usr.bin/cc/libobjc && ${MAKE} beforeinstall 14612657Skvn.if !defined(NOCRYPT) 14712657Skvn cd ${.CURDIR}/kerberosIV/include && ${MAKE} install 14812657Skvn.endif 14912657Skvn cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall 15012657Skvn cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall 15112657Skvn cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall 15212657Skvn cd ${.CURDIR}/lib/librpcsvc && ${MAKE} beforeinstall 15312657Skvn 15412657Skvnlibraries: 15512657Skvn @echo "--------------------------------------------------------------" 15612657Skvn @echo " Rebuilding ${DESTDIR}/usr/lib" 15712657Skvn @echo "--------------------------------------------------------------" 15812657Skvn @echo 15912657Skvn.if defined(CLOBBER) 16012657Skvn find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \ 16112657Skvn xargs rm -rf 16212657Skvn.endif 16312657Skvn # 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 16412657Skvn#XXX cd ${.CURDIR}/gnu/lib/libg++ && \ 16512657Skvn#XXX ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 16612657Skvn cd ${.CURDIR}/gnu/lib/libmalloc && \ 16712657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 16812657Skvn cd ${.CURDIR}/gnu/lib/libreadline && \ 16912657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 17012657Skvn cd ${.CURDIR}/gnu/lib/libregex && \ 17112657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 17212657Skvn cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \ 17312657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 17412657Skvn cd ${.CURDIR}/lib && \ 17512657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 17612657Skvn # You need the lex lib before you can build kerberosIV 17712657Skvn#XXX # We don't have lex in the 2.0 tree yet! 17812657Skvn#XXX cd ${.CURDIR}/usr.bin/lex/lib && \ 17912657Skvn#XXX ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 18012657Skvn.if !defined(NOCRYPT) 18112657Skvn cd ${.CURDIR}/kerberosIV/acl && \ 18212657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 18312657Skvn cd ${.CURDIR}/kerberosIV/des && \ 18412657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 18512657Skvn cd ${.CURDIR}/kerberosIV/kdb && \ 18612657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 18712657Skvn cd ${.CURDIR}/kerberosIV/krb && \ 18812657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 18912657Skvn.endif 19012657Skvn 19112657Skvntools: 19212657Skvn @echo "--------------------------------------------------------------" 19312657Skvn @echo " Rebuilding ${DESTDIR} Compiler and Make" 19412657Skvn @echo "--------------------------------------------------------------" 19512657Skvn @echo 19612657Skvn cd ${.CURDIR}/gnu/usr.bin/cc && \ 19712657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 19812657Skvn cd ${.CURDIR}/usr.bin/make && \ 19912657Skvn ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 20012657Skvn 20112657Skvnmdec: 20212657Skvn @echo "--------------------------------------------------------------" 20312657Skvn @echo " Rebuilding ${DESTDIR}/usr/mdec" 20412657Skvn @echo "--------------------------------------------------------------" 20512657Skvn @echo 20612657Skvn @echo " XXX Not yet ready in 2.0.0" 20712657Skvn#XXX.if ${MACHINE} == "i386" 20812657Skvn#XXX # XXX Need to fix for obj case, src/sys/Makefile needs to be fixed to 20912657Skvn#XXX # traverse down into here and this can go away! 21012657Skvn#XXX cd ${.CURDIR}/sys/i386/boot && ${MAKE} depend all install ${CLEANDIR} 21112657Skvn#XXX.if defined (DESTDIR) 21212657Skvn#XXX # XXX Really need to fix the sys/i386/boot Makefile so this is not 21312657Skvn#XXX # necessary!!! 21412657Skvn#XXX cd /usr/mdec && find . | cpio -pdamuv ${DESTDIR}/usr/mdec 21512657Skvn#XXX.endif 21612657Skvn#XXX.endif 21712657Skvn 21812657Skvn.include <bsd.subdir.mk> 21912657Skvn