Makefile revision 1.7
11.7Stsutsui#	$NetBSD: Makefile,v 1.7 2002/04/14 02:43:27 tsutsui Exp $
21.1Stsubai
31.7Stsutsui.include <bsd.own.mk>
41.7Stsutsui.include "${_SRC_TOP_}/distrib/Makefile.inc"
51.1Stsubai
61.2Ssjg.include <bsd.kernobj.mk>
71.1Stsubai
81.7StsutsuiBASENAME=	boot
91.7StsutsuiIMAGE1=		${BASENAME}1.fs
101.7StsutsuiDISKSIZE=	2880
111.7StsutsuiFSTMP=		ustar.tmp
121.1StsubaiMDEC=		${DESTDIR}/usr/mdec
131.7StsutsuiBOOT=		boot
141.1Stsubai
151.7StsutsuiKERNDIR!=	cd ${.CURDIR}/../instkernel && ${PRINTOBJDIR}
161.7StsutsuiKERN=		${KERNDIR}/netbsd.INSTALL.gz
171.5Sthorpej
181.7StsutsuiCLEANFILES+=	netbsd ${BOOT} ${FSTMP}
191.1Stsubai
201.1Stsubai
211.7Stsutsuirealall: netbsd ${BOOT}
221.7Stsutsui	${PAX} -wvf ${FSTMP} ${BOOT} netbsd
231.7Stsutsui	@echo
241.7Stsutsui	@echo Making disk number one
251.7Stsutsui	dd bs=8k seek=1 count=$$((${DISKSIZE} / 16 - 1)) \
261.7Stsutsui	    if=${FSTMP} of=${IMAGE1}.tmp
271.1Stsubai	@echo "installing new bootblocks"
281.7Stsutsui	${MDEC}/installboot -v -b 17 ${BOOT} ${MDEC}/bootxx ${IMAGE1}.tmp
291.7Stsutsui		# XXXDISTRIB
301.7Stsutsui	@ls -l ${FSTMP} | (read mode links uid gid size junk; \
311.7Stsutsui		dksize=$$((${DISKSIZE} * 512 - 8 * 1024)); \
321.7Stsutsui		disks=$$(($$size / $$dksize + 1)); \
331.7Stsutsui		if test $$size -gt $$dksize; then \
341.7Stsutsui			d=2; \
351.7Stsutsui			while test $$d -le $$disks; do \
361.7Stsutsui				echo; \
371.7Stsutsui				echo Making disk number $$d.; \
381.7Stsutsui				IMAGE=${BASENAME}$${d}.fs; \
391.7Stsutsui				echo USTARFS $$d > $${IMAGE}; \
401.7Stsutsui				skip=$$((($$d - 1) * (${DISKSIZE} / 16 - 1))); \
411.7Stsutsui				if test $$d -eq $$disks; then \
421.7Stsutsui					dd bs=8k seek=1 skip=$${skip} \
431.7Stsutsui						conv=sync \
441.7Stsutsui						if=${FSTMP} of=$${IMAGE}; \
451.7Stsutsui				else \
461.7Stsutsui					dd bs=8k seek=1 skip=$${skip} \
471.7Stsutsui					    conv=sync \
481.7Stsutsui					    count=$$((${DISKSIZE} / 16 - 1)) \
491.7Stsutsui						if=${FSTMP} of=$${IMAGE}; \
501.7Stsutsui				fi; \
511.7Stsutsui				d=$$(($$d + 1)); \
521.7Stsutsui			done; \
531.7Stsutsui		else \
541.7Stsutsui			dd seek=$$(($${size} / 512 + 15)) count=1 \
551.7Stsutsui				if=/dev/zero of=${IMAGE1}.tmp; \
561.7Stsutsui		fi; \
571.7Stsutsui		echo; \
581.7Stsutsui		bytes=$$(($$dksize * $$disks - $$size)); \
591.7Stsutsui		echo "There are $$bytes ($$(($$bytes / 1024))K) bytes free\
601.7Stsutsui			on disk $$disks."; \
611.7Stsutsui	)
621.7Stsutsui	mv -f ${IMAGE1}.tmp ${IMAGE1}
631.7Stsutsui
641.7Stsutsui# Let the kernel on the diskette be called "netbsd" although
651.7Stsutsui# it is compressed.  This is because the boot code will search
661.7Stsutsui# for "netbsd" first, and calling it "netbsd" instead of "netbsd.gz"
671.7Stsutsui# we avoid scanning all the diskettes before reading the file.
681.7Stsutsui
691.7Stsutsuinetbsd: ${KERN}
701.7Stsutsui	rm -f netbsd
711.7Stsutsui	cp ${KERN} netbsd
721.7Stsutsui
731.7Stsutsui# This is "cheating", just so that we have the available
741.7Stsutsui# space at the start of the tar file.  Installboot will overwrite
751.7Stsutsui# the start of the bootcode with the tail end of the "real", aligned
761.7Stsutsui# second-stage boot loader when it is run (which is quite a bit shorter
771.7Stsutsui# than the entire ${BOOTCODE} file, even when symbols are removed.
781.7Stsutsui# (the first 15*512 bytes are put into the first 8K filesystem block,
791.7Stsutsui# around the disklabel)
801.7Stsutsui
811.7Stsutsui${BOOT}: ${MDEC}/${BOOT}
821.7Stsutsui	rm -f ${BOOT}
831.7Stsutsui	cp ${MDEC}/${BOOT} ${BOOT}
841.7Stsutsui
851.7Stsutsuirelease: check_RELEASEDIR
861.4Stsutsui	-mkdir -p ${RELEASEDIR}/installation/floppy
871.7Stsutsui	${RELINSTALL} ${BASENAME}?.fs ${RELEASEDIR}/installation/floppy
881.1Stsubai
891.1Stsubaiclean cleandir distclean:
901.7Stsutsui	rm -f *.core ${CLEANFILES} ${BASENAME}?.fs ${IMAGE1}.tmp
911.1Stsubai
921.1Stsubai.include <bsd.obj.mk>
931.7Stsutsui.include <bsd.subdir.mk>
94