Makefile revision 1.50
11.50Sapb# $NetBSD: Makefile,v 1.50 2006/01/04 15:11:07 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.1Sthorpej 111.43SlukemSETSCMD= cd ${.CURDIR} && \ 121.43Slukem DESTDIR=${DESTDIR:Q} \ 131.6Slukem MACHINE=${MACHINE:Q} MACHINE_ARCH=${MACHINE_ARCH:Q} \ 141.49Sapb CKSUM=${TOOL_CKSUM:Q} \ 151.49Sapb DB=${TOOL_DB:Q} \ 161.49Sapb HOST_SH=${HOST_SH:Q} \ 171.49Sapb MAKE=${MAKE:Q} \ 181.49Sapb MKTEMP=${TOOL_MKTEMP:Q} \ 191.49Sapb MTREE=${TOOL_MTREE:Q} \ 201.49Sapb PAX=${TOOL_PAX:Q} \ 211.49Sapb TSORT=${TSORT:Q} \ 221.43Slukem ${HOST_SH} 231.30Stron 241.40Slukem.if ${MKX11} != "no" 251.40SlukemMAKEFLIST_FLAGS= -b 261.48SjmcMAKESRCTARS_FLAGS= -x ${X11SRCDIR} -N ${NETBSDSRCDIR}/etc 271.40Slukem.else 281.40SlukemMAKEFLIST_FLAGS= 291.48SjmcMAKESRCTARS_FLAGS= -N ${NETBSDSRCDIR}/etc 301.40Slukem.endif 311.40Slukem 321.33Sjmc.if !defined(MAKETARSETS) 331.43SlukemMAKETARSETS!= ${SETSCMD} ./makeflist -l ${MAKEFLIST_FLAGS} 341.33Sjmc.endif 351.33Sjmc 361.41Slukemprint_have_gcc3: .PHONY 371.30Stron @echo ${HAVE_GCC3} 381.6Slukem 391.3Sthorpejprint_machine: .PHONY 401.3Sthorpej @echo ${MACHINE} 411.3Sthorpej 421.3Sthorpejprint_machine_arch: .PHONY 431.3Sthorpej @echo ${MACHINE_ARCH} 441.3Sthorpej 451.3Sthorpejprint_machine_cpu: .PHONY 461.3Sthorpej @echo ${MACHINE_CPU} 471.3Sthorpej 481.3Sthorpejprint_object_fmt: .PHONY 491.3Sthorpej @echo ${OBJECT_FMT} 501.3Sthorpej 511.17Slukemprint_toolchain_missing: .PHONY 521.17Slukem @echo "${TOOLCHAIN_MISSING}" 531.29Smrg 541.29Smrgprint_use_tools_toolchain: .PHONY 551.29Smrg @echo "${USE_TOOLS_TOOLCHAIN}" 561.5Stron 571.5Stronprint_x11_version: .PHONY 581.40Slukem ${HOST_SH} -c '. ${.CURDIR}/sets.subr; echo $$x11_version' 591.3Sthorpej 601.3Sthorpej# This target has debugging value only, really. 611.44Sheasmakeflist: .PHONY .PRECIOUS check_DESTDIR 621.43Slukem ${SETSCMD} ./makeflist ${MAKEFLIST_FLAGS} 631.3Sthorpej 641.1Sthorpej# 651.1Sthorpej# SET BUILDING TARGETS 661.1Sthorpej# 671.1Sthorpej 681.46SclTARDIR= ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets 691.43SlukemSOURCETARDIR= ${RELEASEDIR}/source/sets 701.43Slukem 711.27Slukem.if ${MKUNPRIVED} == "no" 721.27SlukemMETALOG.unpriv= 731.49SapbMETALOG.sanitised.unpriv= 741.27Slukem.else 751.27SlukemMETALOG.unpriv= -M ${METALOG} 761.49SapbMETALOG.sanitised= ${METALOG}.sanitised 771.49SapbMETALOG.sanitised.unpriv= -M ${METALOG.sanitised} 781.27Slukem.endif 791.27Slukem 801.49Sapb.if ${MKUNPRIVED} == "no" 811.49Sapbsanitise_METALOG: .PHONY 821.49Sapb @true 831.49Sapb.else 841.49Sapbsanitise_METALOG: .PHONY ${METALOG.sanitised} 851.49Sapb${METALOG.sanitised}: ${METALOG} 861.49Sapb ${TOOL_MTREE} -C -k all -N ${NETBSDSRCDIR}/etc <${METALOG} >${.TARGET} 871.49Sapb.endif 881.49Sapb 891.49Sapb.if defined(DESTDIR) && ${DESTDIR} != "" 901.49Sapbcheckflist_if_DESTDIR: checkflist 911.49Sapb.else 921.49Sapbcheckflist_if_DESTDIR: 931.49Sapb.endif 941.43Slukem 951.49Sapbcheckflist: .PRECIOUS .PHONY check_DESTDIR sanitise_METALOG 961.49Sapb ${SETSCMD} ${.CURDIR}/checkflist \ 971.49Sapb ${MAKEFLIST_FLAGS} ${CHECKFLIST_FLAGS} ${METALOG.sanitised.unpriv} 981.4Smrg 991.41Slukemcheckflist-x11: .PHONY check_DESTDIR 1001.43Slukem ${SETSCMD} ./checkflist -x ${CHECKFLIST_FLAGS} 1011.43Slukem 1021.1Sthorpej 1031.49Sapbmaketars: .PRECIOUS .PHONY check_DESTDIR check_RELEASEDIR \ 1041.49Sapb sanitise_METALOG checkflist_if_DESTDIR .WAIT \ 1051.41Slukem maketarsetup .WAIT ${MAKETARSETS:@.TARS.@do-${.TARS.}@} 1061.33Sjmc @true 1071.33Sjmc 1081.43Slukemmaketarsetup: .EXEC 1091.23Sveego.if defined(DESTDIR) && ${DESTDIR} != "" 1101.43Slukem ${_MKMSG} "execute checkflist" 1111.32Slukem ${MAKE} checkflist 1121.16Slukem.endif 1131.43Slukem mkdir -p ${TARDIR} 1141.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1151.43Slukem rm -f ${TARDIR}/$$i ${TARDIR}/$$i.tmp; \ 1161.43Slukem done 1171.43Slukem 1181.43Slukemmakesetfiles: .PHONY 1191.43Slukem ${_MKMSG_CREATE} "set lists" 1201.43Slukem ${SETSCMD} ./maketars -S -d ${DESTDIR:S,^$,/,} ${METALOG.unpriv} \ 1211.43Slukem -N ${NETBSDSRCDIR}/etc ${MAKEFLIST_FLAGS} -t ${TARDIR} 1221.43Slukem 1231.33Sjmc.for tar in ${MAKETARSETS} 1241.39Sjmcdo-${tar}: .PHONY 1251.49Sapb ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 1261.49Sapb ${METALOG.sanitised.unpriv} \ 1271.43Slukem -N ${NETBSDSRCDIR}/etc -t ${TARDIR} ${tar} \ 1281.43Slukem || rm -f ${TARDIR}/${tar}.tgz 1291.33Sjmc.endfor 1301.1Sthorpej 1311.43Slukem 1321.41Slukemmakesrctars: .PRECIOUS .PHONY check_RELEASEDIR 1331.43Slukem mkdir -p ${SOURCETARDIR} 1341.45Slukem ${SETSCMD} ./makesrctars ${MAKESRCTARS_FLAGS} \ 1351.45Slukem ${NETBSDSRCDIR} ${SOURCETARDIR} 1361.43Slukem 1371.25Slukem 1381.41Slukemmakesums: .PRECIOUS .PHONY check_RELEASEDIR .WAIT \ 1391.41Slukem ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 1401.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1411.43Slukem mv ${TARDIR}/$$i.tmp ${TARDIR}/$$i; \ 1421.43Slukem done 1431.33Sjmc 1441.33Sjmc.for tar in ${MAKETARSETS} 1451.39Sjmcdo-sum-${tar}: .PHONY do-${tar} 1461.43Slukem ${MAKESUMS} -t ${TARDIR} ${tar}.tgz 1471.47Sjmc for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 1481.43Slukem ${TOOL_CAT} ${TARDIR}/$$i >> ${TARDIR}/$$i.tmp; \ 1491.35Sjmc done 1501.33Sjmc.endfor 1511.37Sjmc.ORDER: ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 1521.18Slukem 1531.43Slukem 1541.49Sapbinstallsets: .PHONY check_DESTDIR sanitise_METALOG 1551.18Slukem.if !defined(INSTALLDIR) 1561.18Slukem @echo "setenv INSTALLDIR before doing that!" 1571.18Slukem @false 1581.18Slukem.endif 1591.43Slukem ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 1601.49Sapb ${METALOG.sanitised.unpriv} -N ${NETBSDSRCDIR}/etc \ 1611.49Sapb ${MAKEFLIST_FLAGS} -i ${INSTALLDIR} ${INSTALLSETS} 1621.49Sapb 1631.49Sapb# Should we ignore errors like extra or missing files in the flists? 1641.49SapbSLOPPY_FLIST?= NO 1651.49Sapb.if !empty(SLOPPY_FLIST:M[Yy][Ee][Ss]) 1661.49SapbCHECKFLIST_FLAGS+= -e -m 1671.49SapbREGPKG.sloppy= -m 1681.49Sapb.endif 1691.1Sthorpej 1701.49Sapb.if ${MAKEVERBOSE} == 0 1711.49SapbREGPKG.verbose?= -q 1721.49Sapb.elif ${MAKEVERBOSE} == 1 1731.49SapbREGPKG.verbose?= 1741.49Sapb.else # MAKEVERBOSE == 2 1751.49SapbREGPKG.verbose?= -v 1761.49Sapb.endif 1771.49SapbREGPKG.force?= # -f, or empty 1781.49SapbREGPKG.cache?= -c # -c, or empty 1791.49SapbREGPKG.update:= ${MKUPDATE:tl:Nno:C/..*/-u/} 1801.49SapbSYSPKGSETS?= all 1811.49Sapbmakesyspkgs: .PHONY check_DESTDIR check_RELEASEDIR \ 1821.49Sapb sanitise_METALOG checkflist_if_DESTDIR 1831.49Sapb mkdir -p ${RELEASEDIR}/${MACHINE}/binary/syspkgs 1841.49Sapb ${SETSCMD} ${.CURDIR}/regpkgset \ 1851.49Sapb ${REGPKG.verbose} ${REGPKG.force} ${REGPKG.sloppy} \ 1861.49Sapb ${REGPKG.cache} ${REGPKG.update} \ 1871.49Sapb -d ${DESTDIR:S,^$,/,} ${METALOG.sanitised.unpriv} \ 1881.49Sapb -N ${NETBSDSRCDIR}/etc \ 1891.49Sapb -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs ${SYSPKGSETS} 1901.49Sapb 1911.49Sapbmakesyspkgsums: .PHONY check_RELEASEDIR 1921.49Sapb ${MAKESUMS} -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs 1931.43Slukem 1941.50Sapb# Update the "deps" file. 1951.50Sapb# XXX: Why is "deps" checked in to the source tree, instead of 1961.50Sapb# just being created as necessary? 1971.50Sapbmakedeps: .PHONY 1981.50Sapb ${SETSCMD} ./syspkgdeps all >${.CURDIR}/deps 1991.50Sapb 2001.1Sthorpej# 2011.1Sthorpej# MAIN ENTRY POINTS 2021.1Sthorpej# 2031.1Sthorpej 2041.49Sapbsyspkgs: .PHONY makesyspkgs .WAIT makesyspkgsums 2051.49Sapb @true 2061.49Sapb 2071.41Slukemsets: .PHONY maketars .WAIT makesums 2081.25Slukem @true 2091.25Slukem 2101.41Slukemsourcesets: .PHONY makesrctars 2111.1Sthorpej @true 2121.8Slukem 2131.8Slukem.include <bsd.sys.mk> 214