Makefile revision 1.57
11.57Slukem# $NetBSD: Makefile,v 1.57 2008/03/16 07:02:22 lukem Exp $ 21.1Sthorpej 31.1Sthorpej# The `all' target must appear before bsd.own.mk is pulled in. 41.1Sthorpejall: 51.1Sthorpej @echo "Please understand what you are doing, first." 61.1Sthorpej @false 71.1Sthorpej 81.1Sthorpej.include <bsd.own.mk> 91.15Slukem.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib" 101.51SapbGREP?= grep 111.1Sthorpej 121.43SlukemSETSCMD= cd ${.CURDIR} && \ 131.43Slukem DESTDIR=${DESTDIR:Q} \ 141.6Slukem MACHINE=${MACHINE:Q} MACHINE_ARCH=${MACHINE_ARCH:Q} \ 151.49Sapb CKSUM=${TOOL_CKSUM:Q} \ 161.49Sapb DB=${TOOL_DB:Q} \ 171.49Sapb HOST_SH=${HOST_SH:Q} \ 181.49Sapb MAKE=${MAKE:Q} \ 191.49Sapb MKTEMP=${TOOL_MKTEMP:Q} \ 201.49Sapb MTREE=${TOOL_MTREE:Q} \ 211.49Sapb PAX=${TOOL_PAX:Q} \ 221.49Sapb TSORT=${TSORT:Q} \ 231.43Slukem ${HOST_SH} 241.30Stron 251.57SlukemMAKETARS_FLAGS= 261.40Slukem.if ${MKX11} != "no" 271.40SlukemMAKEFLIST_FLAGS= -b 281.48SjmcMAKESRCTARS_FLAGS= -x ${X11SRCDIR} -N ${NETBSDSRCDIR}/etc 291.40Slukem.else 301.40SlukemMAKEFLIST_FLAGS= 311.48SjmcMAKESRCTARS_FLAGS= -N ${NETBSDSRCDIR}/etc 321.40Slukem.endif 331.40Slukem 341.57Slukem.if ${MAKEVERBOSE} != 2 351.57SlukemMAKETARS_FLAGS+= -q 361.57SlukemMAKESRCTARS_FLAGS+= -q 371.57Slukem.endif 381.57Slukem 391.33Sjmc.if !defined(MAKETARSETS) 401.43SlukemMAKETARSETS!= ${SETSCMD} ./makeflist -l ${MAKEFLIST_FLAGS} 411.33Sjmc.endif 421.33Sjmc 431.52Smrgprint_have_gcc: .PHONY 441.52Smrg @echo ${HAVE_GCC} 451.6Slukem 461.3Sthorpejprint_machine: .PHONY 471.3Sthorpej @echo ${MACHINE} 481.3Sthorpej 491.3Sthorpejprint_machine_arch: .PHONY 501.3Sthorpej @echo ${MACHINE_ARCH} 511.3Sthorpej 521.3Sthorpejprint_machine_cpu: .PHONY 531.3Sthorpej @echo ${MACHINE_CPU} 541.3Sthorpej 551.3Sthorpejprint_object_fmt: .PHONY 561.3Sthorpej @echo ${OBJECT_FMT} 571.3Sthorpej 581.17Slukemprint_toolchain_missing: .PHONY 591.17Slukem @echo "${TOOLCHAIN_MISSING}" 601.29Smrg 611.5Stronprint_x11_version: .PHONY 621.40Slukem ${HOST_SH} -c '. ${.CURDIR}/sets.subr; echo $$x11_version' 631.3Sthorpej 641.3Sthorpej# This target has debugging value only, really. 651.44Sheasmakeflist: .PHONY .PRECIOUS check_DESTDIR 661.43Slukem ${SETSCMD} ./makeflist ${MAKEFLIST_FLAGS} 671.3Sthorpej 681.1Sthorpej# 691.1Sthorpej# SET BUILDING TARGETS 701.1Sthorpej# 711.1Sthorpej 721.46SclTARDIR= ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets 731.43SlukemSOURCETARDIR= ${RELEASEDIR}/source/sets 741.43Slukem 751.27Slukem.if ${MKUNPRIVED} == "no" 761.27SlukemMETALOG.unpriv= 771.49SapbMETALOG.sanitised.unpriv= 781.27Slukem.else 791.27SlukemMETALOG.unpriv= -M ${METALOG} 801.49SapbMETALOG.sanitised= ${METALOG}.sanitised 811.49SapbMETALOG.sanitised.unpriv= -M ${METALOG.sanitised} 821.27Slukem.endif 831.27Slukem 841.49Sapb.if ${MKUNPRIVED} == "no" 851.49Sapbsanitise_METALOG: .PHONY 861.49Sapb @true 871.49Sapb.else 881.49Sapbsanitise_METALOG: .PHONY ${METALOG.sanitised} 891.49Sapb${METALOG.sanitised}: ${METALOG} 901.51Sapb ( cat ${NETBSDSRCDIR}/etc/mtree/NetBSD.dist ; \ 911.51Sapb echo '/unset all' ; \ 921.51Sapb cat ${METALOG} ) \ 931.54She | ${TOOL_MTREE} -C -k all -N ${NETBSDSRCDIR}/etc > ${METALOG}.new && \ 941.54She ( rm -f ${METALOG} ; \ 951.54She mv ${METALOG}.new ${METALOG} ) 961.54She cat ${METALOG} | ${GREP} -v " optional" > ${.TARGET} 971.49Sapb.endif 981.49Sapb 991.49Sapb.if defined(DESTDIR) && ${DESTDIR} != "" 1001.49Sapbcheckflist_if_DESTDIR: checkflist 1011.49Sapb.else 1021.49Sapbcheckflist_if_DESTDIR: 1031.49Sapb.endif 1041.43Slukem 1051.49Sapbcheckflist: .PRECIOUS .PHONY check_DESTDIR sanitise_METALOG 1061.49Sapb ${SETSCMD} ${.CURDIR}/checkflist \ 1071.49Sapb ${MAKEFLIST_FLAGS} ${CHECKFLIST_FLAGS} ${METALOG.sanitised.unpriv} 1081.4Smrg 1091.41Slukemcheckflist-x11: .PHONY check_DESTDIR 1101.43Slukem ${SETSCMD} ./checkflist -x ${CHECKFLIST_FLAGS} 1111.43Slukem 1121.1Sthorpej 1131.56Sapb# Note that the .WAIT inside the ${MAKETARSETS:@...} loop is not 1141.56Sapb# logically necessary, but many systems exhibit poor performance when 1151.56Sapb# running multiple parallel disk-intensive processes. 1161.49Sapbmaketars: .PRECIOUS .PHONY check_DESTDIR check_RELEASEDIR \ 1171.49Sapb sanitise_METALOG checkflist_if_DESTDIR .WAIT \ 1181.56Sapb maketarsetup .WAIT ${MAKETARSETS:@.TARS.@.WAIT do-${.TARS.}@} 1191.33Sjmc @true 1201.33Sjmc 1211.43Slukemmaketarsetup: .EXEC 1221.23Sveego.if defined(DESTDIR) && ${DESTDIR} != "" 1231.43Slukem ${_MKMSG} "execute checkflist" 1241.32Slukem ${MAKE} checkflist 1251.16Slukem.endif 1261.43Slukem mkdir -p ${TARDIR} 1271.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1281.43Slukem rm -f ${TARDIR}/$$i ${TARDIR}/$$i.tmp; \ 1291.43Slukem done 1301.43Slukem 1311.43Slukemmakesetfiles: .PHONY 1321.43Slukem ${_MKMSG_CREATE} "set lists" 1331.43Slukem ${SETSCMD} ./maketars -S -d ${DESTDIR:S,^$,/,} ${METALOG.unpriv} \ 1341.57Slukem ${MAKETARS_FLAGS} \ 1351.43Slukem -N ${NETBSDSRCDIR}/etc ${MAKEFLIST_FLAGS} -t ${TARDIR} 1361.43Slukem 1371.33Sjmc.for tar in ${MAKETARSETS} 1381.55Sapbdo-${tar}: .PHONY sanitise_METALOG 1391.57Slukem ${_MKMSG_CREATE} "${tar}.tgz" 1401.57Slukem ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} ${MAKETARS_FLAGS} \ 1411.55Sapb ${METALOG.sanitised.unpriv} \ 1421.43Slukem -N ${NETBSDSRCDIR}/etc -t ${TARDIR} ${tar} \ 1431.43Slukem || rm -f ${TARDIR}/${tar}.tgz 1441.33Sjmc.endfor 1451.1Sthorpej 1461.43Slukem 1471.41Slukemmakesrctars: .PRECIOUS .PHONY check_RELEASEDIR 1481.57Slukem ${_MKMSG_CREATE} "source tar files" 1491.43Slukem mkdir -p ${SOURCETARDIR} 1501.45Slukem ${SETSCMD} ./makesrctars ${MAKESRCTARS_FLAGS} \ 1511.45Slukem ${NETBSDSRCDIR} ${SOURCETARDIR} 1521.43Slukem 1531.25Slukem 1541.41Slukemmakesums: .PRECIOUS .PHONY check_RELEASEDIR .WAIT \ 1551.41Slukem ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 1561.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1571.43Slukem mv ${TARDIR}/$$i.tmp ${TARDIR}/$$i; \ 1581.43Slukem done 1591.33Sjmc 1601.33Sjmc.for tar in ${MAKETARSETS} 1611.39Sjmcdo-sum-${tar}: .PHONY do-${tar} 1621.57Slukem ${_MKMSG_CREATE} "${tar} checksums" 1631.43Slukem ${MAKESUMS} -t ${TARDIR} ${tar}.tgz 1641.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1651.43Slukem ${TOOL_CAT} ${TARDIR}/$$i >> ${TARDIR}/$$i.tmp; \ 1661.35Sjmc done 1671.33Sjmc.endfor 1681.37Sjmc.ORDER: ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 1691.18Slukem 1701.43Slukem 1711.49Sapbinstallsets: .PHONY check_DESTDIR sanitise_METALOG 1721.18Slukem.if !defined(INSTALLDIR) 1731.18Slukem @echo "setenv INSTALLDIR before doing that!" 1741.18Slukem @false 1751.18Slukem.endif 1761.57Slukem ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} ${MAKETARS_FLAGS} \ 1771.49Sapb ${METALOG.sanitised.unpriv} -N ${NETBSDSRCDIR}/etc \ 1781.49Sapb ${MAKEFLIST_FLAGS} -i ${INSTALLDIR} ${INSTALLSETS} 1791.49Sapb 1801.49Sapb# Should we ignore errors like extra or missing files in the flists? 1811.49SapbSLOPPY_FLIST?= NO 1821.49Sapb.if !empty(SLOPPY_FLIST:M[Yy][Ee][Ss]) 1831.49SapbCHECKFLIST_FLAGS+= -e -m 1841.49SapbREGPKG.sloppy= -m 1851.49Sapb.endif 1861.1Sthorpej 1871.49Sapb.if ${MAKEVERBOSE} == 0 1881.49SapbREGPKG.verbose?= -q 1891.49Sapb.elif ${MAKEVERBOSE} == 1 1901.49SapbREGPKG.verbose?= 1911.49Sapb.else # MAKEVERBOSE == 2 1921.49SapbREGPKG.verbose?= -v 1931.49Sapb.endif 1941.49SapbREGPKG.force?= # -f, or empty 1951.49SapbREGPKG.cache?= -c # -c, or empty 1961.49SapbREGPKG.update:= ${MKUPDATE:tl:Nno:C/..*/-u/} 1971.49SapbSYSPKGSETS?= all 1981.49Sapbmakesyspkgs: .PHONY check_DESTDIR check_RELEASEDIR \ 1991.49Sapb sanitise_METALOG checkflist_if_DESTDIR 2001.49Sapb mkdir -p ${RELEASEDIR}/${MACHINE}/binary/syspkgs 2011.49Sapb ${SETSCMD} ${.CURDIR}/regpkgset \ 2021.49Sapb ${REGPKG.verbose} ${REGPKG.force} ${REGPKG.sloppy} \ 2031.49Sapb ${REGPKG.cache} ${REGPKG.update} \ 2041.49Sapb -d ${DESTDIR:S,^$,/,} ${METALOG.sanitised.unpriv} \ 2051.49Sapb -N ${NETBSDSRCDIR}/etc \ 2061.49Sapb -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs ${SYSPKGSETS} 2071.49Sapb 2081.49Sapbmakesyspkgsums: .PHONY check_RELEASEDIR 2091.49Sapb ${MAKESUMS} -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs 2101.43Slukem 2111.50Sapb# Update the "deps" file. 2121.50Sapb# XXX: Why is "deps" checked in to the source tree, instead of 2131.50Sapb# just being created as necessary? 2141.50Sapbmakedeps: .PHONY 2151.50Sapb ${SETSCMD} ./syspkgdeps all >${.CURDIR}/deps 2161.50Sapb 2171.1Sthorpej# 2181.1Sthorpej# MAIN ENTRY POINTS 2191.1Sthorpej# 2201.1Sthorpej 2211.49Sapbsyspkgs: .PHONY makesyspkgs .WAIT makesyspkgsums 2221.49Sapb @true 2231.49Sapb 2241.41Slukemsets: .PHONY maketars .WAIT makesums 2251.25Slukem @true 2261.25Slukem 2271.41Slukemsourcesets: .PHONY makesrctars 2281.1Sthorpej @true 2291.8Slukem 2301.8Slukem.include <bsd.sys.mk> 231