1 1.19 christos # $NetBSD: Makefile.tarfloppy,v 1.19 2017/02/11 03:07:06 christos Exp $ 2 1.1 lukem # 3 1.1 lukem # Makefile snippet to create a set of ustar floppies. 4 1.1 lukem # Each floppy has an 8KB header, followed by part or all of the ustar archive. 5 1.1 lukem # 6 1.1 lukem # Required variables: 7 1.3 lukem # NETBSDSRCDIR Top level of src tree (set by <bsd.own.mk>) 8 1.1 lukem # FLOPPYBASE Basename of floppies. Floppy number ${n} will 9 1.5 lukem # be generated as ${FLOPPYBASE}${n}${FLOPPYSUFFIX} 10 1.1 lukem # FLOPPYSIZE Size of floppy in 512 byte blocks. 11 1.1 lukem # FLOPPYFILES Files to write to floppy. 12 1.1 lukem # Usually set to "boot ${FLOPPYMETAFILE} netbsd" 13 1.1 lukem # 14 1.1 lukem # Optional variables: 15 1.1 lukem # FLOPPY_BOOT Bootstrap to use as "boot". 16 1.1 lukem # FLOPPY_BOOT_STRIP If yes, strip "boot" before use. 17 1.1 lukem # FLOPPY_NETBSD Kernel to to use as "netbsd". 18 1.4 lukem # FLOPPYINSTBOOT Installboot program to use. 19 1.4 lukem # USTAR image file is in @IMAGE@. 20 1.4 lukem # FLOPPYMAX Maximum number of floppies to build. 21 1.4 lukem # If 1, the final image is installed as 22 1.5 lukem # ${FLOPPYBASE}${FLOPPYSUFFIX} instead of 23 1.5 lukem # ${FLOPPYBASE}1${FLOPPYSUFFIX} 24 1.4 lukem # FLOPPYMETAFILE USTAR metafile(s) (optional) 25 1.4 lukem # FLOPPYPAD If defined, pad the last floppy to ${FLOPPYSIZE} 26 1.5 lukem # FLOPPYSUFFIX Suffix of created floppies. 27 1.4 lukem # FLOPPY_RELEASEDIR Where to install release floppies. 28 1.1 lukem # 29 1.1 lukem 30 1.8 lukem .if !defined(_MAKEFILE_TARFLOPPY_) 31 1.8 lukem _MAKEFILE_TARFLOPPY_=1 32 1.8 lukem 33 1.8 lukem 34 1.1 lukem .if defined(FLOPPY_BOOT) # { 35 1.1 lukem CLEANFILES+= boot 36 1.1 lukem boot: ${FLOPPY_BOOT} 37 1.11 lukem ${_MKTARGET_CREATE} "(from: ${.ALLSRC})" 38 1.1 lukem @rm -f boot 39 1.1 lukem @cp ${.ALLSRC} boot 40 1.1 lukem .if defined(FLOPPY_BOOT_STRIP) 41 1.1 lukem @${STRIP} boot 42 1.1 lukem .endif 43 1.1 lukem .endif # FLOPPY_BOOT # } 44 1.1 lukem 45 1.14 dbj .if defined(FLOPPY_BOOT_CFG) 46 1.14 dbj CLEANFILES+= boot.cfg 47 1.14 dbj boot.cfg: ${FLOPPY_BOOT_CFG} 48 1.14 dbj ${_MKTARGET_CREATE} "(from: ${.ALLSRC})" 49 1.14 dbj @rm -f ${.TARGET} 50 1.14 dbj @cp ${.ALLSRC} ${.TARGET} 51 1.14 dbj .endif # FLOPPY_BOOT_CFG 52 1.1 lukem 53 1.1 lukem .if defined(FLOPPY_NETBSD) # { 54 1.12 pavel CLEANFILES+= netbsd netbsd.tmp 55 1.12 pavel .if ${FLOPPY_NETBSD:E}=="gz" 56 1.12 pavel COPY_CMD= gunzip -c ${.ALLSRC} > ${.TARGET}.tmp 57 1.18 apb COMPRESS_CMD= ${TOOL_GZIP_N} -9c ${.TARGET}.tmp > ${.TARGET}; \ 58 1.17 apb rm -f ${.TARGET}.tmp 59 1.12 pavel .else 60 1.12 pavel COPY_CMD= cp ${.ALLSRC} ${.TARGET}.tmp 61 1.12 pavel COMPRESS_CMD= mv -f ${.TARGET}.tmp ${.TARGET} 62 1.12 pavel .endif 63 1.1 lukem netbsd: ${FLOPPY_NETBSD} 64 1.11 lukem ${_MKTARGET_CREATE} "(from: ${.ALLSRC})" 65 1.12 pavel ${COPY_CMD} 66 1.12 pavel ${STRIP} -R .comment -R .ident ${.TARGET}.tmp 67 1.12 pavel ${COMPRESS_CMD} 68 1.1 lukem .endif # FLOPPY_NETBSD # } 69 1.1 lukem 70 1.1 lukem 71 1.1 lukem .if defined(FLOPPYMETAFILE) # { 72 1.1 lukem CLEANFILES+= ${FLOPPYMETAFILE} 73 1.1 lukem ${FLOPPYMETAFILE}: 74 1.11 lukem ${_MKTARGET_CREATE} 75 1.1 lukem @rm -f ${FLOPPYMETAFILE} 76 1.1 lukem @touch ${FLOPPYMETAFILE} 77 1.1 lukem .endif # FLOPPYMETAFILE # } 78 1.1 lukem 79 1.1 lukem 80 1.5 lukem ${FLOPPYBASE}1${FLOPPYSUFFIX}: ${FLOPPYFILES} ${DISTRIBDIR}/common/buildfloppies.sh 81 1.11 lukem ${_MKTARGET_CREATE} "(from: ${FLOPPYFILES})" 82 1.10 lukem PAX=${TOOL_PAX:Q} ${HOST_SH} ${DISTRIBDIR}/common/buildfloppies.sh \ 83 1.1 lukem ${FLOPPYINSTBOOT:D-i ${FLOPPYINSTBOOT}} ${FLOPPYPAD:D-p} \ 84 1.5 lukem ${FLOPPYMAX:D-m ${FLOPPYMAX}} ${FLOPPYSUFFIX:D-s ${FLOPPYSUFFIX}} \ 85 1.19 christos ${MKREPRO_TIMESTAMP:D-t ${MKREPRO_TIMESTAMP}} -N ${DESTDIR}/etc \ 86 1.1 lukem ${FLOPPYBASE} ${FLOPPYSIZE} ${FLOPPYFILES} 87 1.1 lukem 88 1.5 lukem CLEANFILES+= ${FLOPPYBASE}?${FLOPPYSUFFIX} 89 1.1 lukem 90 1.1 lukem 91 1.5 lukem realall: ${FLOPPYBASE}1${FLOPPYSUFFIX} 92 1.1 lukem 93 1.4 lukem .if defined(FLOPPY_RELEASEDIR) 94 1.6 lukem release:: check_RELEASEDIR .WAIT ${FLOPPYBASE}1${FLOPPYSUFFIX} 95 1.5 lukem if [ -e ${FLOPPYBASE}2${FLOPPYSUFFIX} ]; then \ 96 1.5 lukem ${RELEASE_INSTALL} ${FLOPPYBASE}?${FLOPPYSUFFIX} \ 97 1.13 matt ${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}; \ 98 1.1 lukem else \ 99 1.5 lukem ${RELEASE_INSTALL} ${FLOPPYBASE}1${FLOPPYSUFFIX} \ 100 1.13 matt ${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}/${FLOPPYBASE}${FLOPPYSUFFIX}; \ 101 1.1 lukem fi 102 1.1 lukem .endif 103 1.8 lukem 104 1.8 lukem 105 1.8 lukem .endif # _MAKEFILE_TARFLOPPY_ 106