Makefile revision 1.16
11.16Stsutsui#	$NetBSD: Makefile,v 1.16 2002/03/30 07:45:33 tsutsui Exp $
21.16Stsutsui
31.16Stsutsui.include <bsd.own.mk>
41.16Stsutsui.include <bsd.kernobj.mk>
51.1Stsubai
61.1StsubaiTOP=		${.CURDIR}/..
71.1Stsubai
81.1Stsubai.include "${TOP}/Makefile.inc"
91.1Stsubai
101.1StsubaiIMAGE=		boot.fs
111.16StsutsuiDISKSIZE=	2880
121.16StsutsuiFSTMP=		ustar.tmp
131.1StsubaiMDEC=		${DESTDIR}/usr/mdec
141.16StsutsuiBOOT=		ofwboot
151.1Stsubai
161.14StvKERNDIR!=	cd ${.CURDIR}/../md-kernel && ${PRINTOBJDIR}
171.16StsutsuiKERN=		${KERNDIR}/netbsd.INSTALL.gz
181.16Stsutsui
191.16StsutsuiCLEANFILES+=	netbsd ${BOOT} ${FSTMP}
201.16Stsutsui
211.1Stsubai
221.1StsubaiDISKTYPE=	floppy
231.1Stsubai
241.16Stsutsuirealall: netbsd ${BOOT}
251.16Stsutsui	${PAX} -wvf ${FSTMP} ${BOOT} netbsd
261.16Stsutsui	@echo
271.16Stsutsui	@echo Making disk number one
281.16Stsutsui	rm -rf empty
291.16Stsutsui	mkdir -m 755 empty
301.16Stsutsui	${MAKEFS} -s ${DISKSIZE}b ${IMAGE}.tmp empty
311.16Stsutsui	dd bs=8k seek=1 count=$$((${DISKSIZE} / 16 - 1)) \
321.16Stsutsui	    if=${FSTMP} of=${IMAGE}.tmp
331.1Stsubai	@echo "installing new bootblocks"
341.16Stsutsui	${MDEC}/installboot -v -b 17 ${BOOT} ${MDEC}/bootxx ${IMAGE}.tmp
351.16Stsutsui	@ls -l ${FSTMP} | (read mode links uid gid size junk; \
361.16Stsutsui		dksize=$$((${DISKSIZE} * 512 - 8 * 1024)); \
371.16Stsutsui		disks=$$(($$size / $$dksize + 1)); \
381.16Stsutsui		if test $$size -gt $$dksize; then \
391.16Stsutsui			bytes=$$(($$size - $$dksize)); \
401.16Stsutsui			echo "Image is $$bytes ($$(($$bytes / 1024))K) too big\
411.16Stsutsui				to fit on one disk."; \
421.16Stsutsui			exit 1; \
431.16Stsutsui		else \
441.16Stsutsui			dd seek=$$(($${size} / 512 + 15)) count=1 \
451.16Stsutsui				if=/dev/zero of=${IMAGE}.tmp; \
461.16Stsutsui		fi; \
471.16Stsutsui		echo; \
481.16Stsutsui		bytes=$$(($$dksize * $$disks - $$size)); \
491.16Stsutsui		if test "${PAD}" = "yes"; then \
501.16Stsutsui			size=$$(($$size + 8 * 1024)); \
511.16Stsutsui			echo "Padding image with $$bytes bytes from $$size"; \
521.16Stsutsui			sectors=$$(($$bytes / 512)); \
531.16Stsutsui			ssize=$$(($$size / 512)); \
541.16Stsutsui			dd if=/dev/zero bs=512 seek=$${ssize} of=${IMAGE}.tmp \
551.16Stsutsui				count=$${sectors}; \
561.16Stsutsui		else \
571.16Stsutsui			echo "There are $$bytes ($$(($$bytes / 1024))K) bytes\
581.16Stsutsui				free on disk $$disks."; \
591.16Stsutsui		fi; \
601.16Stsutsui	)
611.16Stsutsui	mv -f ${IMAGE}.tmp ${IMAGE}
621.16Stsutsui
631.16Stsutsui# Let the kernel on the diskette be called "netbsd" although
641.16Stsutsui# it is compressed.  This is because the boot code will search
651.16Stsutsui# for "netbsd" first, and calling it "netbsd" instead of "netbsd.gz"
661.16Stsutsui# we avoid scanning all the diskettes before reading the file.
671.16Stsutsui
681.16Stsutsuinetbsd: ${KERN}
691.16Stsutsui	rm -f netbsd
701.16Stsutsui	cp ${KERN} netbsd
711.16Stsutsui
721.16Stsutsui# This is "cheating", just so that we have the available
731.16Stsutsui# space at the start of the tar file.  Installboot will overwrite
741.16Stsutsui# the start of the bootcode with the tail end of the "real", aligned
751.16Stsutsui# second-stage boot loader when it is run (which is quite a bit shorter
761.16Stsutsui# than the entire ${BOOTCODE} file, even when symbols are removed.
771.16Stsutsui# (the first 15*512 bytes are put into the first 8K filesystem block,
781.16Stsutsui# around the disklabel)
791.16Stsutsui
801.16Stsutsui${BOOT}: ${MDEC}/${BOOT}
811.16Stsutsui	rm -f ${BOOT}
821.16Stsutsui	cp ${MDEC}/${BOOT} ${BOOT}
831.16Stsutsui
841.16Stsutsuirelease: check_RELEASEDIR
851.16Stsutsui	-mkdir -p ${RELEASEDIR}/installation/floppy
861.16Stsutsui	cp -p ${IMAGE} ${RELEASEDIR}/installation/floppy
871.1Stsubai
881.2Slukemclean cleandir distclean:
891.16Stsutsui	rm -f *.core ${CLEANFILES} ${IMAGE} ${IMAGE}.tmp
901.16Stsutsui	rm -rf empty
911.1Stsubai
921.1Stsubai.include <bsd.obj.mk>
931.16Stsutsui.include <bsd.subdir.mk>
94