Makefile revision 1.52
1# $NetBSD: Makefile,v 1.52 2006/04/07 19:38:58 mrg Exp $ 2 3# The `all' target must appear before bsd.own.mk is pulled in. 4all: 5 @echo "Please understand what you are doing, first." 6 @false 7 8.include <bsd.own.mk> 9.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib" 10GREP?= grep 11 12SETSCMD= cd ${.CURDIR} && \ 13 DESTDIR=${DESTDIR:Q} \ 14 MACHINE=${MACHINE:Q} MACHINE_ARCH=${MACHINE_ARCH:Q} \ 15 CKSUM=${TOOL_CKSUM:Q} \ 16 DB=${TOOL_DB:Q} \ 17 HOST_SH=${HOST_SH:Q} \ 18 MAKE=${MAKE:Q} \ 19 MKTEMP=${TOOL_MKTEMP:Q} \ 20 MTREE=${TOOL_MTREE:Q} \ 21 PAX=${TOOL_PAX:Q} \ 22 TSORT=${TSORT:Q} \ 23 ${HOST_SH} 24 25.if ${MKX11} != "no" 26MAKEFLIST_FLAGS= -b 27MAKESRCTARS_FLAGS= -x ${X11SRCDIR} -N ${NETBSDSRCDIR}/etc 28.else 29MAKEFLIST_FLAGS= 30MAKESRCTARS_FLAGS= -N ${NETBSDSRCDIR}/etc 31.endif 32 33.if !defined(MAKETARSETS) 34MAKETARSETS!= ${SETSCMD} ./makeflist -l ${MAKEFLIST_FLAGS} 35.endif 36 37print_have_gcc: .PHONY 38 @echo ${HAVE_GCC} 39 40print_machine: .PHONY 41 @echo ${MACHINE} 42 43print_machine_arch: .PHONY 44 @echo ${MACHINE_ARCH} 45 46print_machine_cpu: .PHONY 47 @echo ${MACHINE_CPU} 48 49print_object_fmt: .PHONY 50 @echo ${OBJECT_FMT} 51 52print_toolchain_missing: .PHONY 53 @echo "${TOOLCHAIN_MISSING}" 54 55print_use_tools_toolchain: .PHONY 56 @echo "${USE_TOOLS_TOOLCHAIN}" 57 58print_x11_version: .PHONY 59 ${HOST_SH} -c '. ${.CURDIR}/sets.subr; echo $$x11_version' 60 61# This target has debugging value only, really. 62makeflist: .PHONY .PRECIOUS check_DESTDIR 63 ${SETSCMD} ./makeflist ${MAKEFLIST_FLAGS} 64 65# 66# SET BUILDING TARGETS 67# 68 69TARDIR= ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets 70SOURCETARDIR= ${RELEASEDIR}/source/sets 71 72.if ${MKUNPRIVED} == "no" 73METALOG.unpriv= 74METALOG.sanitised.unpriv= 75.else 76METALOG.unpriv= -M ${METALOG} 77METALOG.sanitised= ${METALOG}.sanitised 78METALOG.sanitised.unpriv= -M ${METALOG.sanitised} 79.endif 80 81.if ${MKUNPRIVED} == "no" 82sanitise_METALOG: .PHONY 83 @true 84.else 85sanitise_METALOG: .PHONY ${METALOG.sanitised} 86${METALOG.sanitised}: ${METALOG} 87 ( cat ${NETBSDSRCDIR}/etc/mtree/NetBSD.dist ; \ 88 echo '/unset all' ; \ 89 cat ${METALOG} ) \ 90 | ${GREP} -v " optional" \ 91 | ${TOOL_MTREE} -C -k all -N ${NETBSDSRCDIR}/etc >${.TARGET} 92.endif 93 94.if defined(DESTDIR) && ${DESTDIR} != "" 95checkflist_if_DESTDIR: checkflist 96.else 97checkflist_if_DESTDIR: 98.endif 99 100checkflist: .PRECIOUS .PHONY check_DESTDIR sanitise_METALOG 101 ${SETSCMD} ${.CURDIR}/checkflist \ 102 ${MAKEFLIST_FLAGS} ${CHECKFLIST_FLAGS} ${METALOG.sanitised.unpriv} 103 104checkflist-x11: .PHONY check_DESTDIR 105 ${SETSCMD} ./checkflist -x ${CHECKFLIST_FLAGS} 106 107 108maketars: .PRECIOUS .PHONY check_DESTDIR check_RELEASEDIR \ 109 sanitise_METALOG checkflist_if_DESTDIR .WAIT \ 110 maketarsetup .WAIT ${MAKETARSETS:@.TARS.@do-${.TARS.}@} 111 @true 112 113maketarsetup: .EXEC 114.if defined(DESTDIR) && ${DESTDIR} != "" 115 ${_MKMSG} "execute checkflist" 116 ${MAKE} checkflist 117.endif 118 mkdir -p ${TARDIR} 119 for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 120 rm -f ${TARDIR}/$$i ${TARDIR}/$$i.tmp; \ 121 done 122 123makesetfiles: .PHONY 124 ${_MKMSG_CREATE} "set lists" 125 ${SETSCMD} ./maketars -S -d ${DESTDIR:S,^$,/,} ${METALOG.unpriv} \ 126 -N ${NETBSDSRCDIR}/etc ${MAKEFLIST_FLAGS} -t ${TARDIR} 127 128.for tar in ${MAKETARSETS} 129do-${tar}: .PHONY 130 ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 131 ${METALOG.sanitised.unpriv} \ 132 -N ${NETBSDSRCDIR}/etc -t ${TARDIR} ${tar} \ 133 || rm -f ${TARDIR}/${tar}.tgz 134.endfor 135 136 137makesrctars: .PRECIOUS .PHONY check_RELEASEDIR 138 mkdir -p ${SOURCETARDIR} 139 ${SETSCMD} ./makesrctars ${MAKESRCTARS_FLAGS} \ 140 ${NETBSDSRCDIR} ${SOURCETARDIR} 141 142 143makesums: .PRECIOUS .PHONY check_RELEASEDIR .WAIT \ 144 ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 145 for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 146 mv ${TARDIR}/$$i.tmp ${TARDIR}/$$i; \ 147 done 148 149.for tar in ${MAKETARSETS} 150do-sum-${tar}: .PHONY do-${tar} 151 ${MAKESUMS} -t ${TARDIR} ${tar}.tgz 152 for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 153 ${TOOL_CAT} ${TARDIR}/$$i >> ${TARDIR}/$$i.tmp; \ 154 done 155.endfor 156.ORDER: ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 157 158 159installsets: .PHONY check_DESTDIR sanitise_METALOG 160.if !defined(INSTALLDIR) 161 @echo "setenv INSTALLDIR before doing that!" 162 @false 163.endif 164 ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 165 ${METALOG.sanitised.unpriv} -N ${NETBSDSRCDIR}/etc \ 166 ${MAKEFLIST_FLAGS} -i ${INSTALLDIR} ${INSTALLSETS} 167 168# Should we ignore errors like extra or missing files in the flists? 169SLOPPY_FLIST?= NO 170.if !empty(SLOPPY_FLIST:M[Yy][Ee][Ss]) 171CHECKFLIST_FLAGS+= -e -m 172REGPKG.sloppy= -m 173.endif 174 175.if ${MAKEVERBOSE} == 0 176REGPKG.verbose?= -q 177.elif ${MAKEVERBOSE} == 1 178REGPKG.verbose?= 179.else # MAKEVERBOSE == 2 180REGPKG.verbose?= -v 181.endif 182REGPKG.force?= # -f, or empty 183REGPKG.cache?= -c # -c, or empty 184REGPKG.update:= ${MKUPDATE:tl:Nno:C/..*/-u/} 185SYSPKGSETS?= all 186makesyspkgs: .PHONY check_DESTDIR check_RELEASEDIR \ 187 sanitise_METALOG checkflist_if_DESTDIR 188 mkdir -p ${RELEASEDIR}/${MACHINE}/binary/syspkgs 189 ${SETSCMD} ${.CURDIR}/regpkgset \ 190 ${REGPKG.verbose} ${REGPKG.force} ${REGPKG.sloppy} \ 191 ${REGPKG.cache} ${REGPKG.update} \ 192 -d ${DESTDIR:S,^$,/,} ${METALOG.sanitised.unpriv} \ 193 -N ${NETBSDSRCDIR}/etc \ 194 -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs ${SYSPKGSETS} 195 196makesyspkgsums: .PHONY check_RELEASEDIR 197 ${MAKESUMS} -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs 198 199# Update the "deps" file. 200# XXX: Why is "deps" checked in to the source tree, instead of 201# just being created as necessary? 202makedeps: .PHONY 203 ${SETSCMD} ./syspkgdeps all >${.CURDIR}/deps 204 205# 206# MAIN ENTRY POINTS 207# 208 209syspkgs: .PHONY makesyspkgs .WAIT makesyspkgsums 210 @true 211 212sets: .PHONY maketars .WAIT makesums 213 @true 214 215sourcesets: .PHONY makesrctars 216 @true 217 218.include <bsd.sys.mk> 219