| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | # $NetBSD: Makefile.bootcd,v 1.30 2015/05/27 09:44:40 martin Exp $ | | 1 | # $NetBSD: Makefile.bootcd,v 1.31 2015/05/27 15:17:59 martin Exp $ |
2 | # | | 2 | # |
3 | # Makefile snipped to create a CD/DVD ISO | | 3 | # Makefile snipped to create a CD/DVD ISO |
4 | # | | 4 | # |
5 | | | 5 | |
6 | # XXX TODO: | | 6 | # XXX TODO: |
7 | # 1) merge with src/distrib/cdrom | | 7 | # 1) merge with src/distrib/cdrom |
8 | # 2) teach makefs to add data from more than 1 directory (see below) | | 8 | # 2) teach makefs to add data from more than 1 directory (see below) |
9 | | | 9 | |
10 | # | | 10 | # |
11 | # Required variables: | | 11 | # Required variables: |
12 | # CDBASE Basename of the iso | | 12 | # CDBASE Basename of the iso |
13 | # | | 13 | # |
14 | # Optional variables: | | 14 | # Optional variables: |
| @@ -66,46 +66,45 @@ SETS_DIR?= ${RELEASEDIR}/${RELEASEMACHIN | | | @@ -66,46 +66,45 @@ SETS_DIR?= ${RELEASEDIR}/${RELEASEMACHIN |
66 | DISTRIBVER!= ${HOST_SH} ${KERNSRCDIR}/conf/osrelease.sh | | 66 | DISTRIBVER!= ${HOST_SH} ${KERNSRCDIR}/conf/osrelease.sh |
67 | DISTRIBREV!= ${HOST_SH} ${KERNSRCDIR}/conf/osrelease.sh -s | | 67 | DISTRIBREV!= ${HOST_SH} ${KERNSRCDIR}/conf/osrelease.sh -s |
68 | CUROBJDIR!= cd ${.CURDIR} && ${PRINTOBJDIR} | | 68 | CUROBJDIR!= cd ${.CURDIR} && ${PRINTOBJDIR} |
69 | ISO_VOLID!= echo NETBSD_${DISTRIBREV} | tr a-z A-Z | | 69 | ISO_VOLID!= echo NETBSD_${DISTRIBREV} | tr a-z A-Z |
70 | PUBLISHER?= The_NetBSD_Project | | 70 | PUBLISHER?= The_NetBSD_Project |
71 | .if defined(CDMAKEFSOPTIONS) | | 71 | .if defined(CDMAKEFSOPTIONS) |
72 | _CDMAKEFSOPTIONS= rockridge,label=${ISO_VOLID},publisher=${PUBLISHER},${CDMAKEFSOPTIONS} | | 72 | _CDMAKEFSOPTIONS= rockridge,label=${ISO_VOLID},publisher=${PUBLISHER},${CDMAKEFSOPTIONS} |
73 | .else | | 73 | .else |
74 | _CDMAKEFSOPTIONS= rockridge,label=${ISO_VOLID},publisher=${PUBLISHER} | | 74 | _CDMAKEFSOPTIONS= rockridge,label=${ISO_VOLID},publisher=${PUBLISHER} |
75 | .endif | | 75 | .endif |
76 | | | 76 | |
77 | .if ${MKUNPRIVED} == "no" | | 77 | .if ${MKUNPRIVED} == "no" |
78 | CD_METALOG.unpriv= | | 78 | CD_METALOG.unpriv= |
79 | mtunpriv="" | | 79 | mtunpriv= |
80 | .else | | 80 | .else |
81 | CD_METALOG.unpriv=-M ${METALOG}.sanitised | | 81 | CD_METALOG.unpriv=-M ${METALOG}.sanitised |
82 | mtunpriv="-U" | | 82 | mtunpriv="-U" |
83 | .endif | | 83 | .endif |
84 | | | 84 | |
85 | # Stuff that should come from elsewhere - XXX where? - HF | | 85 | # Stuff that should come from elsewhere - XXX where? - HF |
86 | CP?= cp | | 86 | CP?= cp |
87 | RM?= rm | | 87 | RM?= rm |
88 | MKDIR?= mkdir -p | | 88 | MKDIR?= mkdir -p |
89 | CHMOD?= chmod | | 89 | CHMOD?= chmod |
90 | ECHO?= echo | | 90 | ECHO?= echo |
91 | | | 91 | |
92 | .if ${CDRELEASE} == false | | 92 | .if ${CDRELEASE} == false |
93 | CDIMAGE= ${CDBASE}.iso | | 93 | CDIMAGE= ${CDBASE}.iso |
94 | .else | | 94 | .else |
95 | CDIMAGE= NetBSD-${DISTRIBVER}-${CDBASE:S/cd$//}.iso | | 95 | CDIMAGE= NetBSD-${DISTRIBVER}-${CDBASE:S/cd$//}.iso |
96 | .endif | | 96 | .endif |
97 | WORKSPEC= fs.spec | | 97 | WORKSPEC= fs.spec |
98 | CDMAKEFSEXTRAOPTS+=-F ${WORKSPEC} | | | |
99 | | | 98 | |
100 | CLEANFILES+= ${CDIMAGE} | | 99 | CLEANFILES+= ${CDIMAGE} |
101 | CLEANFILES+= bootxx.${MACHINE} | | 100 | CLEANFILES+= bootxx.${MACHINE} |
102 | CLEANFILES+= ${WORKSPEC} | | 101 | CLEANFILES+= ${WORKSPEC} |
103 | | | 102 | |
104 | CDSETSENV= DESTDIR=${DESTDIR:Q} \ | | 103 | CDSETSENV= DESTDIR=${DESTDIR:Q} \ |
105 | MACHINE=${MACHINE:Q} \ | | 104 | MACHINE=${MACHINE:Q} \ |
106 | MACHINE_ARCH=${MACHINE_ARCH:Q} \ | | 105 | MACHINE_ARCH=${MACHINE_ARCH:Q} \ |
107 | AWK=${TOOL_AWK:Q} \ | | 106 | AWK=${TOOL_AWK:Q} \ |
108 | CKSUM=${TOOL_CKSUM:Q} \ | | 107 | CKSUM=${TOOL_CKSUM:Q} \ |
109 | DB=${TOOL_DB:Q} \ | | 108 | DB=${TOOL_DB:Q} \ |
110 | HOST_SH=${HOST_SH:Q} \ | | 109 | HOST_SH=${HOST_SH:Q} \ |
111 | MAKE=${MAKE:Q} \ | | 110 | MAKE=${MAKE:Q} \ |
| @@ -250,42 +249,49 @@ copy-releasedir: | | | @@ -250,42 +249,49 @@ copy-releasedir: |
250 | ${CDSETSCMD} ./maketars -i "${CUROBJDIR}/cdrom" \ | | 249 | ${CDSETSCMD} ./maketars -i "${CUROBJDIR}/cdrom" \ |
251 | ${CD_METALOG.unpriv} ${mtunpriv} -N ${NETBSDSRCDIR}/etc \ | | 250 | ${CD_METALOG.unpriv} ${mtunpriv} -N ${NETBSDSRCDIR}/etc \ |
252 | -F "${CUROBJDIR}/cdrom/etc/mtree" \ | | 251 | -F "${CUROBJDIR}/cdrom/etc/mtree" \ |
253 | -d "${DESTDIR:S,^$,/,}" ${set} | | 252 | -d "${DESTDIR:S,^$,/,}" ${set} |
254 | .endfor | | 253 | .endfor |
255 | if [ -d "${CUROBJDIR}/cdrom/var/spool/ftp/hidden" ]; then \ | | 254 | if [ -d "${CUROBJDIR}/cdrom/var/spool/ftp/hidden" ]; then \ |
256 | ${CHMOD} +r "${CUROBJDIR}/cdrom/var/spool/ftp/hidden"; \ | | 255 | ${CHMOD} +r "${CUROBJDIR}/cdrom/var/spool/ftp/hidden"; \ |
257 | fi | | 256 | fi |
258 | .endif | | 257 | .endif |
259 | | | 258 | |
260 | image: | | 259 | image: |
261 | @echo Preparing spec files for makefs... | | 260 | @echo Preparing spec files for makefs... |
262 | ${RM} -f ${WORKSPEC} | | 261 | ${RM} -f ${WORKSPEC} |
263 | cat cdrom/etc/mtree/* | \ | | 262 | if [ -d cdrom/etc/mtree ]; then \ |
264 | ${TOOL_SED} -e 's/ size=[0-9]*//' \ | | 263 | cat cdrom/etc/mtree/* | \ |
265 | -e '/^\.\/etc\/gettytab/d' > ${WORKSPEC} | | 264 | ${TOOL_SED} -e 's/ size=[0-9]*//' \ |
266 | ${HOST_SH} cdrom/dev/MAKEDEV -s all | \ | | 265 | -e '/^\.\/etc\/gettytab/d' > ${WORKSPEC}; \ |
267 | ${TOOL_SED} -e '/^\. type=dir/d' -e 's,^\.,./dev,' >> ${WORKSPEC} | | 266 | fi |
| | | 267 | if [ -r cdrom/dev/MAKEDEV ]; then \ |
| | | 268 | ${HOST_SH} cdrom/dev/MAKEDEV -s all | \ |
| | | 269 | ${TOOL_SED} -e '/^\. type=dir/d' \ |
| | | 270 | -e 's,^\.,./dev,' >> ${WORKSPEC}; \ |
| | | 271 | fi |
268 | .if defined(SPEC_IN) | | 272 | .if defined(SPEC_IN) |
269 | cat ${SPEC_IN} >> ${WORKSPEC} | | 273 | cat ${SPEC_IN} >> ${WORKSPEC} |
270 | .endif | | 274 | .endif |
271 | .if defined(SECONDARY_BOOT) | | 275 | .if defined(SECONDARY_BOOT) |
272 | echo "./${SECONDARY_BOOT} type=file uname=root gname=wheel mode=0444" \ | | 276 | echo "./${SECONDARY_BOOT} type=file uname=root gname=wheel mode=0444" \ |
273 | >> ${WORKSPEC} | | 277 | >> ${WORKSPEC} |
274 | .endif | | 278 | .endif |
275 | .if defined(SPEC_EXTRA) | | 279 | .if defined(SPEC_EXTRA) |
276 | cat ${SPEC_EXTRA} >> ${WORKSPEC} | | 280 | cat ${SPEC_EXTRA} >> ${WORKSPEC} |
277 | .endif | | 281 | .endif |
278 | ${TOOL_MAKEFS} -N ${NETBSDSRCDIR}/etc -t cd9660 ${CDMAKEFSEXTRAOPTS} -o ${_CDMAKEFSOPTIONS:Q} ${CDIMAGE} cdrom | | 282 | if [ -s ${WORKSPEC} ]; then specarg="-F ${WORKSPEC}"; fi; \ |
| | | 283 | ${TOOL_MAKEFS} -N ${NETBSDSRCDIR}/etc -t cd9660 $${specarg} \ |
| | | 284 | ${CDMAKEFSEXTRAOPTS} -o ${_CDMAKEFSOPTIONS:Q} ${CDIMAGE} cdrom |
279 | | | 285 | |
280 | .if ${CDRELEASE} == false | | 286 | .if ${CDRELEASE} == false |
281 | release: prepare .WAIT prepare_md_post .WAIT copy-releasedir .WAIT image_md_pre .WAIT image .WAIT image_md_post | | 287 | release: prepare .WAIT prepare_md_post .WAIT copy-releasedir .WAIT image_md_pre .WAIT image .WAIT image_md_post |
282 | ${MKDIR} ${RELEASEDIR}/${CDROMS_RELEASEDIR} | | 288 | ${MKDIR} ${RELEASEDIR}/${CDROMS_RELEASEDIR} |
283 | ${RELEASE_INSTALL} ${CDIMAGE} ${RELEASEDIR}/${CDROMS_RELEASEDIR} | | 289 | ${RELEASE_INSTALL} ${CDIMAGE} ${RELEASEDIR}/${CDROMS_RELEASEDIR} |
284 | | | 290 | |
285 | iso_image: | | 291 | iso_image: |
286 | .else | | 292 | .else |
287 | release: | | 293 | release: |
288 | | | 294 | |
289 | iso_image: prepare .WAIT prepare_md_post .WAIT copy-releasedir .WAIT image_md_pre .WAIT image .WAIT image_md_post | | 295 | iso_image: prepare .WAIT prepare_md_post .WAIT copy-releasedir .WAIT image_md_pre .WAIT image .WAIT image_md_post |
290 | ${MKDIR} ${RELEASEDIR}/${CDROMS_RELEASEDIR} | | 296 | ${MKDIR} ${RELEASEDIR}/${CDROMS_RELEASEDIR} |
291 | ${RELEASE_INSTALL} ${CDIMAGE} ${RELEASEDIR}/${CDROMS_RELEASEDIR} | | 297 | ${RELEASE_INSTALL} ${CDIMAGE} ${RELEASEDIR}/${CDROMS_RELEASEDIR} |