Makefile revision 1.51
11.51Sapb# $NetBSD: Makefile,v 1.51 2006/01/06 18:08:59 apb 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.40Slukem.if ${MKX11} != "no" 261.40SlukemMAKEFLIST_FLAGS= -b 271.48SjmcMAKESRCTARS_FLAGS= -x ${X11SRCDIR} -N ${NETBSDSRCDIR}/etc 281.40Slukem.else 291.40SlukemMAKEFLIST_FLAGS= 301.48SjmcMAKESRCTARS_FLAGS= -N ${NETBSDSRCDIR}/etc 311.40Slukem.endif 321.40Slukem 331.33Sjmc.if !defined(MAKETARSETS) 341.43SlukemMAKETARSETS!= ${SETSCMD} ./makeflist -l ${MAKEFLIST_FLAGS} 351.33Sjmc.endif 361.33Sjmc 371.41Slukemprint_have_gcc3: .PHONY 381.30Stron @echo ${HAVE_GCC3} 391.6Slukem 401.3Sthorpejprint_machine: .PHONY 411.3Sthorpej @echo ${MACHINE} 421.3Sthorpej 431.3Sthorpejprint_machine_arch: .PHONY 441.3Sthorpej @echo ${MACHINE_ARCH} 451.3Sthorpej 461.3Sthorpejprint_machine_cpu: .PHONY 471.3Sthorpej @echo ${MACHINE_CPU} 481.3Sthorpej 491.3Sthorpejprint_object_fmt: .PHONY 501.3Sthorpej @echo ${OBJECT_FMT} 511.3Sthorpej 521.17Slukemprint_toolchain_missing: .PHONY 531.17Slukem @echo "${TOOLCHAIN_MISSING}" 541.29Smrg 551.29Smrgprint_use_tools_toolchain: .PHONY 561.29Smrg @echo "${USE_TOOLS_TOOLCHAIN}" 571.5Stron 581.5Stronprint_x11_version: .PHONY 591.40Slukem ${HOST_SH} -c '. ${.CURDIR}/sets.subr; echo $$x11_version' 601.3Sthorpej 611.3Sthorpej# This target has debugging value only, really. 621.44Sheasmakeflist: .PHONY .PRECIOUS check_DESTDIR 631.43Slukem ${SETSCMD} ./makeflist ${MAKEFLIST_FLAGS} 641.3Sthorpej 651.1Sthorpej# 661.1Sthorpej# SET BUILDING TARGETS 671.1Sthorpej# 681.1Sthorpej 691.46SclTARDIR= ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets 701.43SlukemSOURCETARDIR= ${RELEASEDIR}/source/sets 711.43Slukem 721.27Slukem.if ${MKUNPRIVED} == "no" 731.27SlukemMETALOG.unpriv= 741.49SapbMETALOG.sanitised.unpriv= 751.27Slukem.else 761.27SlukemMETALOG.unpriv= -M ${METALOG} 771.49SapbMETALOG.sanitised= ${METALOG}.sanitised 781.49SapbMETALOG.sanitised.unpriv= -M ${METALOG.sanitised} 791.27Slukem.endif 801.27Slukem 811.49Sapb.if ${MKUNPRIVED} == "no" 821.49Sapbsanitise_METALOG: .PHONY 831.49Sapb @true 841.49Sapb.else 851.49Sapbsanitise_METALOG: .PHONY ${METALOG.sanitised} 861.49Sapb${METALOG.sanitised}: ${METALOG} 871.51Sapb ( cat ${NETBSDSRCDIR}/etc/mtree/NetBSD.dist ; \ 881.51Sapb echo '/unset all' ; \ 891.51Sapb cat ${METALOG} ) \ 901.51Sapb | ${GREP} -v " optional" \ 911.51Sapb | ${TOOL_MTREE} -C -k all -N ${NETBSDSRCDIR}/etc >${.TARGET} 921.49Sapb.endif 931.49Sapb 941.49Sapb.if defined(DESTDIR) && ${DESTDIR} != "" 951.49Sapbcheckflist_if_DESTDIR: checkflist 961.49Sapb.else 971.49Sapbcheckflist_if_DESTDIR: 981.49Sapb.endif 991.43Slukem 1001.49Sapbcheckflist: .PRECIOUS .PHONY check_DESTDIR sanitise_METALOG 1011.49Sapb ${SETSCMD} ${.CURDIR}/checkflist \ 1021.49Sapb ${MAKEFLIST_FLAGS} ${CHECKFLIST_FLAGS} ${METALOG.sanitised.unpriv} 1031.4Smrg 1041.41Slukemcheckflist-x11: .PHONY check_DESTDIR 1051.43Slukem ${SETSCMD} ./checkflist -x ${CHECKFLIST_FLAGS} 1061.43Slukem 1071.1Sthorpej 1081.49Sapbmaketars: .PRECIOUS .PHONY check_DESTDIR check_RELEASEDIR \ 1091.49Sapb sanitise_METALOG checkflist_if_DESTDIR .WAIT \ 1101.41Slukem maketarsetup .WAIT ${MAKETARSETS:@.TARS.@do-${.TARS.}@} 1111.33Sjmc @true 1121.33Sjmc 1131.43Slukemmaketarsetup: .EXEC 1141.23Sveego.if defined(DESTDIR) && ${DESTDIR} != "" 1151.43Slukem ${_MKMSG} "execute checkflist" 1161.32Slukem ${MAKE} checkflist 1171.16Slukem.endif 1181.43Slukem mkdir -p ${TARDIR} 1191.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1201.43Slukem rm -f ${TARDIR}/$$i ${TARDIR}/$$i.tmp; \ 1211.43Slukem done 1221.43Slukem 1231.43Slukemmakesetfiles: .PHONY 1241.43Slukem ${_MKMSG_CREATE} "set lists" 1251.43Slukem ${SETSCMD} ./maketars -S -d ${DESTDIR:S,^$,/,} ${METALOG.unpriv} \ 1261.43Slukem -N ${NETBSDSRCDIR}/etc ${MAKEFLIST_FLAGS} -t ${TARDIR} 1271.43Slukem 1281.33Sjmc.for tar in ${MAKETARSETS} 1291.39Sjmcdo-${tar}: .PHONY 1301.49Sapb ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 1311.49Sapb ${METALOG.sanitised.unpriv} \ 1321.43Slukem -N ${NETBSDSRCDIR}/etc -t ${TARDIR} ${tar} \ 1331.43Slukem || rm -f ${TARDIR}/${tar}.tgz 1341.33Sjmc.endfor 1351.1Sthorpej 1361.43Slukem 1371.41Slukemmakesrctars: .PRECIOUS .PHONY check_RELEASEDIR 1381.43Slukem mkdir -p ${SOURCETARDIR} 1391.45Slukem ${SETSCMD} ./makesrctars ${MAKESRCTARS_FLAGS} \ 1401.45Slukem ${NETBSDSRCDIR} ${SOURCETARDIR} 1411.43Slukem 1421.25Slukem 1431.41Slukemmakesums: .PRECIOUS .PHONY check_RELEASEDIR .WAIT \ 1441.41Slukem ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 1451.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1461.43Slukem mv ${TARDIR}/$$i.tmp ${TARDIR}/$$i; \ 1471.43Slukem done 1481.33Sjmc 1491.33Sjmc.for tar in ${MAKETARSETS} 1501.39Sjmcdo-sum-${tar}: .PHONY do-${tar} 1511.43Slukem ${MAKESUMS} -t ${TARDIR} ${tar}.tgz 1521.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1531.43Slukem ${TOOL_CAT} ${TARDIR}/$$i >> ${TARDIR}/$$i.tmp; \ 1541.35Sjmc done 1551.33Sjmc.endfor 1561.37Sjmc.ORDER: ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 1571.18Slukem 1581.43Slukem 1591.49Sapbinstallsets: .PHONY check_DESTDIR sanitise_METALOG 1601.18Slukem.if !defined(INSTALLDIR) 1611.18Slukem @echo "setenv INSTALLDIR before doing that!" 1621.18Slukem @false 1631.18Slukem.endif 1641.43Slukem ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 1651.49Sapb ${METALOG.sanitised.unpriv} -N ${NETBSDSRCDIR}/etc \ 1661.49Sapb ${MAKEFLIST_FLAGS} -i ${INSTALLDIR} ${INSTALLSETS} 1671.49Sapb 1681.49Sapb# Should we ignore errors like extra or missing files in the flists? 1691.49SapbSLOPPY_FLIST?= NO 1701.49Sapb.if !empty(SLOPPY_FLIST:M[Yy][Ee][Ss]) 1711.49SapbCHECKFLIST_FLAGS+= -e -m 1721.49SapbREGPKG.sloppy= -m 1731.49Sapb.endif 1741.1Sthorpej 1751.49Sapb.if ${MAKEVERBOSE} == 0 1761.49SapbREGPKG.verbose?= -q 1771.49Sapb.elif ${MAKEVERBOSE} == 1 1781.49SapbREGPKG.verbose?= 1791.49Sapb.else # MAKEVERBOSE == 2 1801.49SapbREGPKG.verbose?= -v 1811.49Sapb.endif 1821.49SapbREGPKG.force?= # -f, or empty 1831.49SapbREGPKG.cache?= -c # -c, or empty 1841.49SapbREGPKG.update:= ${MKUPDATE:tl:Nno:C/..*/-u/} 1851.49SapbSYSPKGSETS?= all 1861.49Sapbmakesyspkgs: .PHONY check_DESTDIR check_RELEASEDIR \ 1871.49Sapb sanitise_METALOG checkflist_if_DESTDIR 1881.49Sapb mkdir -p ${RELEASEDIR}/${MACHINE}/binary/syspkgs 1891.49Sapb ${SETSCMD} ${.CURDIR}/regpkgset \ 1901.49Sapb ${REGPKG.verbose} ${REGPKG.force} ${REGPKG.sloppy} \ 1911.49Sapb ${REGPKG.cache} ${REGPKG.update} \ 1921.49Sapb -d ${DESTDIR:S,^$,/,} ${METALOG.sanitised.unpriv} \ 1931.49Sapb -N ${NETBSDSRCDIR}/etc \ 1941.49Sapb -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs ${SYSPKGSETS} 1951.49Sapb 1961.49Sapbmakesyspkgsums: .PHONY check_RELEASEDIR 1971.49Sapb ${MAKESUMS} -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs 1981.43Slukem 1991.50Sapb# Update the "deps" file. 2001.50Sapb# XXX: Why is "deps" checked in to the source tree, instead of 2011.50Sapb# just being created as necessary? 2021.50Sapbmakedeps: .PHONY 2031.50Sapb ${SETSCMD} ./syspkgdeps all >${.CURDIR}/deps 2041.50Sapb 2051.1Sthorpej# 2061.1Sthorpej# MAIN ENTRY POINTS 2071.1Sthorpej# 2081.1Sthorpej 2091.49Sapbsyspkgs: .PHONY makesyspkgs .WAIT makesyspkgsums 2101.49Sapb @true 2111.49Sapb 2121.41Slukemsets: .PHONY maketars .WAIT makesums 2131.25Slukem @true 2141.25Slukem 2151.41Slukemsourcesets: .PHONY makesrctars 2161.1Sthorpej @true 2171.8Slukem 2181.8Slukem.include <bsd.sys.mk> 219