Makefile revision 1.55
11.55Sapb# $NetBSD: Makefile,v 1.55 2007/01/27 06:46:43 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.52Smrgprint_have_gcc: .PHONY 381.52Smrg @echo ${HAVE_GCC} 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.5Stronprint_x11_version: .PHONY 561.40Slukem ${HOST_SH} -c '. ${.CURDIR}/sets.subr; echo $$x11_version' 571.3Sthorpej 581.3Sthorpej# This target has debugging value only, really. 591.44Sheasmakeflist: .PHONY .PRECIOUS check_DESTDIR 601.43Slukem ${SETSCMD} ./makeflist ${MAKEFLIST_FLAGS} 611.3Sthorpej 621.1Sthorpej# 631.1Sthorpej# SET BUILDING TARGETS 641.1Sthorpej# 651.1Sthorpej 661.46SclTARDIR= ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets 671.43SlukemSOURCETARDIR= ${RELEASEDIR}/source/sets 681.43Slukem 691.27Slukem.if ${MKUNPRIVED} == "no" 701.27SlukemMETALOG.unpriv= 711.49SapbMETALOG.sanitised.unpriv= 721.27Slukem.else 731.27SlukemMETALOG.unpriv= -M ${METALOG} 741.49SapbMETALOG.sanitised= ${METALOG}.sanitised 751.49SapbMETALOG.sanitised.unpriv= -M ${METALOG.sanitised} 761.27Slukem.endif 771.27Slukem 781.49Sapb.if ${MKUNPRIVED} == "no" 791.49Sapbsanitise_METALOG: .PHONY 801.49Sapb @true 811.49Sapb.else 821.49Sapbsanitise_METALOG: .PHONY ${METALOG.sanitised} 831.49Sapb${METALOG.sanitised}: ${METALOG} 841.51Sapb ( cat ${NETBSDSRCDIR}/etc/mtree/NetBSD.dist ; \ 851.51Sapb echo '/unset all' ; \ 861.51Sapb cat ${METALOG} ) \ 871.54She | ${TOOL_MTREE} -C -k all -N ${NETBSDSRCDIR}/etc > ${METALOG}.new && \ 881.54She ( rm -f ${METALOG} ; \ 891.54She mv ${METALOG}.new ${METALOG} ) 901.54She cat ${METALOG} | ${GREP} -v " optional" > ${.TARGET} 911.49Sapb.endif 921.49Sapb 931.49Sapb.if defined(DESTDIR) && ${DESTDIR} != "" 941.49Sapbcheckflist_if_DESTDIR: checkflist 951.49Sapb.else 961.49Sapbcheckflist_if_DESTDIR: 971.49Sapb.endif 981.43Slukem 991.49Sapbcheckflist: .PRECIOUS .PHONY check_DESTDIR sanitise_METALOG 1001.49Sapb ${SETSCMD} ${.CURDIR}/checkflist \ 1011.49Sapb ${MAKEFLIST_FLAGS} ${CHECKFLIST_FLAGS} ${METALOG.sanitised.unpriv} 1021.4Smrg 1031.41Slukemcheckflist-x11: .PHONY check_DESTDIR 1041.43Slukem ${SETSCMD} ./checkflist -x ${CHECKFLIST_FLAGS} 1051.43Slukem 1061.1Sthorpej 1071.49Sapbmaketars: .PRECIOUS .PHONY check_DESTDIR check_RELEASEDIR \ 1081.49Sapb sanitise_METALOG checkflist_if_DESTDIR .WAIT \ 1091.41Slukem maketarsetup .WAIT ${MAKETARSETS:@.TARS.@do-${.TARS.}@} 1101.33Sjmc @true 1111.33Sjmc 1121.43Slukemmaketarsetup: .EXEC 1131.23Sveego.if defined(DESTDIR) && ${DESTDIR} != "" 1141.43Slukem ${_MKMSG} "execute checkflist" 1151.32Slukem ${MAKE} checkflist 1161.16Slukem.endif 1171.43Slukem mkdir -p ${TARDIR} 1181.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1191.43Slukem rm -f ${TARDIR}/$$i ${TARDIR}/$$i.tmp; \ 1201.43Slukem done 1211.43Slukem 1221.43Slukemmakesetfiles: .PHONY 1231.43Slukem ${_MKMSG_CREATE} "set lists" 1241.43Slukem ${SETSCMD} ./maketars -S -d ${DESTDIR:S,^$,/,} ${METALOG.unpriv} \ 1251.43Slukem -N ${NETBSDSRCDIR}/etc ${MAKEFLIST_FLAGS} -t ${TARDIR} 1261.43Slukem 1271.33Sjmc.for tar in ${MAKETARSETS} 1281.55Sapbdo-${tar}: .PHONY sanitise_METALOG 1291.49Sapb ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 1301.55Sapb ${METALOG.sanitised.unpriv} \ 1311.43Slukem -N ${NETBSDSRCDIR}/etc -t ${TARDIR} ${tar} \ 1321.43Slukem || rm -f ${TARDIR}/${tar}.tgz 1331.33Sjmc.endfor 1341.1Sthorpej 1351.43Slukem 1361.41Slukemmakesrctars: .PRECIOUS .PHONY check_RELEASEDIR 1371.43Slukem mkdir -p ${SOURCETARDIR} 1381.45Slukem ${SETSCMD} ./makesrctars ${MAKESRCTARS_FLAGS} \ 1391.45Slukem ${NETBSDSRCDIR} ${SOURCETARDIR} 1401.43Slukem 1411.25Slukem 1421.41Slukemmakesums: .PRECIOUS .PHONY check_RELEASEDIR .WAIT \ 1431.41Slukem ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 1441.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1451.43Slukem mv ${TARDIR}/$$i.tmp ${TARDIR}/$$i; \ 1461.43Slukem done 1471.33Sjmc 1481.33Sjmc.for tar in ${MAKETARSETS} 1491.39Sjmcdo-sum-${tar}: .PHONY do-${tar} 1501.43Slukem ${MAKESUMS} -t ${TARDIR} ${tar}.tgz 1511.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1521.43Slukem ${TOOL_CAT} ${TARDIR}/$$i >> ${TARDIR}/$$i.tmp; \ 1531.35Sjmc done 1541.33Sjmc.endfor 1551.37Sjmc.ORDER: ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 1561.18Slukem 1571.43Slukem 1581.49Sapbinstallsets: .PHONY check_DESTDIR sanitise_METALOG 1591.18Slukem.if !defined(INSTALLDIR) 1601.18Slukem @echo "setenv INSTALLDIR before doing that!" 1611.18Slukem @false 1621.18Slukem.endif 1631.43Slukem ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 1641.49Sapb ${METALOG.sanitised.unpriv} -N ${NETBSDSRCDIR}/etc \ 1651.49Sapb ${MAKEFLIST_FLAGS} -i ${INSTALLDIR} ${INSTALLSETS} 1661.49Sapb 1671.49Sapb# Should we ignore errors like extra or missing files in the flists? 1681.49SapbSLOPPY_FLIST?= NO 1691.49Sapb.if !empty(SLOPPY_FLIST:M[Yy][Ee][Ss]) 1701.49SapbCHECKFLIST_FLAGS+= -e -m 1711.49SapbREGPKG.sloppy= -m 1721.49Sapb.endif 1731.1Sthorpej 1741.49Sapb.if ${MAKEVERBOSE} == 0 1751.49SapbREGPKG.verbose?= -q 1761.49Sapb.elif ${MAKEVERBOSE} == 1 1771.49SapbREGPKG.verbose?= 1781.49Sapb.else # MAKEVERBOSE == 2 1791.49SapbREGPKG.verbose?= -v 1801.49Sapb.endif 1811.49SapbREGPKG.force?= # -f, or empty 1821.49SapbREGPKG.cache?= -c # -c, or empty 1831.49SapbREGPKG.update:= ${MKUPDATE:tl:Nno:C/..*/-u/} 1841.49SapbSYSPKGSETS?= all 1851.49Sapbmakesyspkgs: .PHONY check_DESTDIR check_RELEASEDIR \ 1861.49Sapb sanitise_METALOG checkflist_if_DESTDIR 1871.49Sapb mkdir -p ${RELEASEDIR}/${MACHINE}/binary/syspkgs 1881.49Sapb ${SETSCMD} ${.CURDIR}/regpkgset \ 1891.49Sapb ${REGPKG.verbose} ${REGPKG.force} ${REGPKG.sloppy} \ 1901.49Sapb ${REGPKG.cache} ${REGPKG.update} \ 1911.49Sapb -d ${DESTDIR:S,^$,/,} ${METALOG.sanitised.unpriv} \ 1921.49Sapb -N ${NETBSDSRCDIR}/etc \ 1931.49Sapb -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs ${SYSPKGSETS} 1941.49Sapb 1951.49Sapbmakesyspkgsums: .PHONY check_RELEASEDIR 1961.49Sapb ${MAKESUMS} -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs 1971.43Slukem 1981.50Sapb# Update the "deps" file. 1991.50Sapb# XXX: Why is "deps" checked in to the source tree, instead of 2001.50Sapb# just being created as necessary? 2011.50Sapbmakedeps: .PHONY 2021.50Sapb ${SETSCMD} ./syspkgdeps all >${.CURDIR}/deps 2031.50Sapb 2041.1Sthorpej# 2051.1Sthorpej# MAIN ENTRY POINTS 2061.1Sthorpej# 2071.1Sthorpej 2081.49Sapbsyspkgs: .PHONY makesyspkgs .WAIT makesyspkgsums 2091.49Sapb @true 2101.49Sapb 2111.41Slukemsets: .PHONY maketars .WAIT makesums 2121.25Slukem @true 2131.25Slukem 2141.41Slukemsourcesets: .PHONY makesrctars 2151.1Sthorpej @true 2161.8Slukem 2171.8Slukem.include <bsd.sys.mk> 218