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