1# 2# $Id: Makefile,v 1.9 1994/08/16 02:55:14 jkh Exp $ 3# 4# Make command line options: 5# -DCLOBBER will remove /usr/include and MOST of /usr/lib 6# -DMAKE_LOCAL to add ./local to the SUBDIR list 7# -DMAKE_PORTS to add ./ports to the SUBDIR list 8# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir 9# -DNOCRYPT will prevent building of crypt versions 10# XXX2 -DNOKERBEROS do not build Kerberos 11# -DNOOBJDIR do not run ``${MAKE} obj'' 12# -DNOPROFILE do not build profiled libraries 13# -DNOSECURE do not go into secure subdir 14# 15# XXX2 Mandatory, and Kerberos will not build sucessfully yet 16 17# Put initial settings here. 18NOKERBEROS= yes 19SUBDIR= 20 21.if exists(bin) 22SUBDIR+= bin 23.endif 24.if exists(contrib) 25SUBDIR+= contrib 26.endif 27.if exists(etc) 28SUBDIR+= etc 29.endif 30.if exists(games) 31SUBDIR+= games 32.endif 33.if exists(gnu) 34SUBDIR+= gnu 35.endif 36.if exists(include) 37SUBDIR+= include 38.endif 39.if exists(lib) 40SUBDIR+= lib 41.endif 42.if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS) 43SUBDIR+= kerberosIV 44.endif 45.if exists(libexec) 46SUBDIR+= libexec 47.endif 48.if exists(sbin) 49SUBDIR+= sbin 50.endif 51.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 52SUBDIR+= secure 53.endif 54.if exists(share) 55SUBDIR+= share 56.endif 57.if exists(sys) 58SUBDIR+= sys 59.endif 60.if exists(usr.bin) 61SUBDIR+= usr.bin 62.endif 63.if exists(usr.sbin) 64SUBDIR+= usr.sbin 65.endif 66 67# These are last, since it is nice to at least get the base system 68# rebuilt before you do them. 69.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 70SUBDIR+= local 71.endif 72.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 73SUBDIR+= ports 74.endif 75 76# Handle the -DNOOBJDIR and -DNOCLEANDIR 77.if defined(NOOBJDIR) 78OBJDIR= 79.else 80OBJDIR= obj 81.endif 82.if defined(NOCLEANDIR) 83CLEANDIR= clean 84.else 85CLEANDIR= cleandir 86.endif 87 88world: directories cleandist mk includes libraries tools mdec 89 @echo "--------------------------------------------------------------" 90 @echo " Rebuilding ${DESTDIR} The whole thing" 91 @echo "--------------------------------------------------------------" 92 @echo 93 ${MAKE} depend all install 94 cd ${.CURDIR}/share/man && ${MAKE} makedb 95 96directories: 97 @echo "--------------------------------------------------------------" 98 @echo " Making directories" 99 @echo "--------------------------------------------------------------" 100 @echo " XXX Not yet ready in 2.0.0" 101# XXX cd ${.CURDIR}/etc && ${MAKE} distrib-dirs 102 103cleandist: 104.if !defined(NOCLEANDIR) 105 @echo "--------------------------------------------------------------" 106 @echo " Cleaning up the source tree, and rebuilding the obj tree" 107 @echo "--------------------------------------------------------------" 108 @echo 109 here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \ 110 if test -d /usr/obj -a ! -d $$dest; then \ 111 mkdir -p $$dest; \ 112 else \ 113 true; \ 114 fi; \ 115 cd $$dest && rm -rf ${SUBDIR} 116 find . -name obj | xargs rm -rf 117.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 118 # The cd is done as local may well be a symbolic link 119 -cd local && find . -name obj | xargs rm -rf 120.endif 121.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 122 # The cd is done as local may well be a symbolic link 123 -cd ports && find . -name obj | xargs rm -rf 124.endif 125 ${MAKE} cleandir 126 ${MAKE} obj 127.endif 128 129mk: 130 @echo "--------------------------------------------------------------" 131 @echo " Rebuilding ${DESTDIR}/usr/share/mk" 132 @echo "--------------------------------------------------------------" 133 cd ${.CURDIR}/share/mk && ${MAKE} install 134 135includes: 136 @echo "--------------------------------------------------------------" 137 @echo " Rebuilding ${DESTDIR}/usr/include" 138 @echo "--------------------------------------------------------------" 139 @echo 140.if defined(CLOBBER) 141 rm -rf ${DESTDIR}/usr/include 142 mkdir ${DESTDIR}/usr/include 143 chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include 144 chmod 755 ${DESTDIR}/usr/include 145.endif 146 cd ${.CURDIR}/include && ${MAKE} install 147#XXX cd ${.CURDIR}/gnu/lib/libg++ && ${MAKE} beforeinstall 148#XXX cd ${.CURDIR}/gnu/usr.bin/cc26/libobjc && ${MAKE} beforeinstall 149.if !defined(NOCRYPT) && !defined(NOKERBEROS) 150 cd ${.CURDIR}/kerberosIV/include && ${MAKE} install 151.endif 152 cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall 153 cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall 154 cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall 155 cd ${.CURDIR}/lib/librpcsvc && ${MAKE} beforeinstall 156 157libraries: 158 @echo "--------------------------------------------------------------" 159 @echo " Rebuilding ${DESTDIR}/usr/lib" 160 @echo "--------------------------------------------------------------" 161 @echo 162.if defined(CLOBBER) 163 find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \ 164 xargs rm -rf 165.endif 166 # 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 167#XXX cd ${.CURDIR}/gnu/lib/libg++ && \ 168#XXX ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 169 cd ${.CURDIR}/gnu/lib/libmalloc && \ 170 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 171 cd ${.CURDIR}/gnu/lib/libreadline && \ 172 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 173 cd ${.CURDIR}/gnu/lib/libregex && \ 174 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 175 cd ${.CURDIR}/gnu/usr.bin/cc26/libgcc && \ 176 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 177.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 178 cd ${.CURDIR}/secure/lib && \ 179 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 180.endif 181 cd ${.CURDIR}/lib && \ 182 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 183 # You need the lex lib before you can build kerberosIV 184#XXX # We don't have lex in the 2.0 tree yet! 185#XXX cd ${.CURDIR}/usr.bin/lex/lib && \ 186#XXX ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 187.if !defined(NOCRYPT) && !defined(NOKERBEROS) 188 cd ${.CURDIR}/kerberosIV/acl && \ 189 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 190 cd ${.CURDIR}/kerberosIV/des && \ 191 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 192 cd ${.CURDIR}/kerberosIV/kdb && \ 193 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 194 cd ${.CURDIR}/kerberosIV/krb && \ 195 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 196.endif 197 198tools: 199 @echo "--------------------------------------------------------------" 200 @echo " Rebuilding ${DESTDIR} Compiler and Make" 201 @echo "--------------------------------------------------------------" 202 @echo 203 cd ${.CURDIR}/gnu/usr.bin/cc26 && \ 204 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 205 cd ${.CURDIR}/usr.bin/make && \ 206 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 207 208mdec: 209 @echo "--------------------------------------------------------------" 210 @echo " Rebuilding ${DESTDIR}/usr/mdec" 211 @echo "--------------------------------------------------------------" 212 @echo 213 @echo " XXX Not yet ready in 2.0.0" 214#XXX.if ${MACHINE} == "i386" 215#XXX # XXX Need to fix for obj case, src/sys/Makefile needs to be fixed to 216#XXX # traverse down into here and this can go away! 217#XXX cd ${.CURDIR}/sys/i386/boot && ${MAKE} depend all install ${CLEANDIR} 218#XXX.if defined (DESTDIR) 219#XXX # XXX Really need to fix the sys/i386/boot Makefile so this is not 220#XXX # necessary!!! 221#XXX cd /usr/mdec && find . | cpio -pdamuv ${DESTDIR}/usr/mdec 222#XXX.endif 223#XXX.endif 224 225.include <bsd.subdir.mk> 226