1 1.13 matt # $NetBSD: Makefile.tarfloppy,v 1.13 2008/06/23 02:16:53 matt 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.1 lukem 46 1.1 lukem .if defined(FLOPPY_NETBSD) # { 47 1.12 pavel CLEANFILES+= netbsd netbsd.tmp 48 1.12 pavel .if ${FLOPPY_NETBSD:E}=="gz" 49 1.12 pavel COPY_CMD= gunzip -c ${.ALLSRC} > ${.TARGET}.tmp 50 1.12 pavel COMPRESS_CMD= gzip -9c ${.TARGET}.tmp > ${.TARGET}; rm -f ${.TARGET}.tmp 51 1.12 pavel .else 52 1.12 pavel COPY_CMD= cp ${.ALLSRC} ${.TARGET}.tmp 53 1.12 pavel COMPRESS_CMD= mv -f ${.TARGET}.tmp ${.TARGET} 54 1.12 pavel .endif 55 1.1 lukem netbsd: ${FLOPPY_NETBSD} 56 1.11 lukem ${_MKTARGET_CREATE} "(from: ${.ALLSRC})" 57 1.12 pavel ${COPY_CMD} 58 1.12 pavel ${STRIP} -R .comment -R .ident ${.TARGET}.tmp 59 1.12 pavel ${COMPRESS_CMD} 60 1.1 lukem .endif # FLOPPY_NETBSD # } 61 1.1 lukem 62 1.1 lukem 63 1.1 lukem .if defined(FLOPPYMETAFILE) # { 64 1.1 lukem CLEANFILES+= ${FLOPPYMETAFILE} 65 1.1 lukem ${FLOPPYMETAFILE}: 66 1.11 lukem ${_MKTARGET_CREATE} 67 1.1 lukem @rm -f ${FLOPPYMETAFILE} 68 1.1 lukem @touch ${FLOPPYMETAFILE} 69 1.1 lukem .endif # FLOPPYMETAFILE # } 70 1.1 lukem 71 1.1 lukem 72 1.5 lukem ${FLOPPYBASE}1${FLOPPYSUFFIX}: ${FLOPPYFILES} ${DISTRIBDIR}/common/buildfloppies.sh 73 1.11 lukem ${_MKTARGET_CREATE} "(from: ${FLOPPYFILES})" 74 1.10 lukem PAX=${TOOL_PAX:Q} ${HOST_SH} ${DISTRIBDIR}/common/buildfloppies.sh \ 75 1.1 lukem ${FLOPPYINSTBOOT:D-i ${FLOPPYINSTBOOT}} ${FLOPPYPAD:D-p} \ 76 1.5 lukem ${FLOPPYMAX:D-m ${FLOPPYMAX}} ${FLOPPYSUFFIX:D-s ${FLOPPYSUFFIX}} \ 77 1.1 lukem ${FLOPPYBASE} ${FLOPPYSIZE} ${FLOPPYFILES} 78 1.1 lukem 79 1.5 lukem CLEANFILES+= ${FLOPPYBASE}?${FLOPPYSUFFIX} 80 1.1 lukem 81 1.1 lukem 82 1.5 lukem realall: ${FLOPPYBASE}1${FLOPPYSUFFIX} 83 1.1 lukem 84 1.4 lukem .if defined(FLOPPY_RELEASEDIR) 85 1.6 lukem release:: check_RELEASEDIR .WAIT ${FLOPPYBASE}1${FLOPPYSUFFIX} 86 1.5 lukem if [ -e ${FLOPPYBASE}2${FLOPPYSUFFIX} ]; then \ 87 1.5 lukem ${RELEASE_INSTALL} ${FLOPPYBASE}?${FLOPPYSUFFIX} \ 88 1.13 matt ${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}; \ 89 1.1 lukem else \ 90 1.5 lukem ${RELEASE_INSTALL} ${FLOPPYBASE}1${FLOPPYSUFFIX} \ 91 1.13 matt ${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}/${FLOPPYBASE}${FLOPPYSUFFIX}; \ 92 1.1 lukem fi 93 1.1 lukem .endif 94 1.8 lukem 95 1.8 lukem 96 1.8 lukem .endif # _MAKEFILE_TARFLOPPY_ 97