c8099b4072
requirement to build as root on a system with vnconfig. Use ${KERNSRCDIR} and ${_SRC_TOP_} where appropriate Remove now-obsolete: list2sh.awk runlist.sh bootfloppy-common/list Bootfloppy-*/Makefile: don't need to set DISKTYPE or BLOCK8K any more Rename bootfloppy-common/Makefile.inc to common/Makefile.bootfloppy and fdset-common/Makefile.inc to common/Makefile.fdset This uses makefs instead of vnconfig and disklabel, thus removing the need for root privileges to build these floppies.. Add common/Makefile.ramdisk, to simplify ramdisk-*/Makefile. Uses shared ${_SRC_TOP_}/distrib/common/Makefile.crunch and ${_SRC_TOP_}/distrib/common/Makefile.image to even further simply things. Migrate ramdisk-*/dot.profile to a shared common/dot.profile, which detects whether it's an install or rescue profile based on the existance of /sysinst. Remove /dev generation code as init(8) now does that for us. Migrate common parts of */list to a shared common/list.ramdisk. Convert ramdisk-*/list to new format used by distrib/common/parselist.awk Don't bother running pwd_mkdb now that libhack's getpwent parses /etc/master.passwd instead of /etc/passwd. Migrate ramdisk-*/mtree.conf to a shared common/mtree.conf, which is now a new full-path-style specfile. Remove ramdisk-*/ramdiskbin.conf as it's now automatically generated from ramdisk-*/list by parselist.awk. Migrate ramdisk-*/termcap.mini to a shared common/termcap.mini. Remove unused ramdisk-{small,tiny}/disktab.preinstall. Use .for loops in kernel-*/Makefile to simply defining mostly-duplicated targets. ramdisk-*/Makefile: convert to using common/Makefile.ramdisk Remove unused ramdisk-*/dot.hdprofile.
90 lines
2.7 KiB
Makefile
90 lines
2.7 KiB
Makefile
# $NetBSD: Makefile.bootfloppy,v 1.1 2002/02/03 16:22:21 lukem Exp $
|
|
|
|
# TOP is assumed to be defined by Makefile including this one.
|
|
|
|
IMAGE?= boot-xxx.fs
|
|
FSTMP= ustar.tmp
|
|
MDEC= ${DESTDIR}/usr/mdec
|
|
BOOTCODE?= ${MDEC}/biosboot.sym
|
|
#BOOTCODE= ${MDEC}/biosboot_com0.sym # Serial output
|
|
|
|
DISKSIZE?= 2880
|
|
|
|
CLEANFILES+= netbsd boot ustar.tmp ${METAFILE}
|
|
|
|
realall: netbsd boot
|
|
if test "${METAFILE}" != ""; then \
|
|
touch ${METAFILE}; \
|
|
fi
|
|
${PAX} -wvf ${FSTMP} boot ${METAFILE} netbsd
|
|
@echo
|
|
@echo Making disk number one
|
|
rm -rf empty
|
|
mkdir -m 755 empty
|
|
${MAKEFS} -s ${DISKSIZE}b ${IMAGE}.tmp empty
|
|
dd bs=8k seek=1 count=$$((${DISKSIZE} / 16 - 1)) \
|
|
if=${FSTMP} of=${IMAGE}.tmp
|
|
@echo "installing new bootblocks"
|
|
${MDEC}/installboot -b 17 -v -f ${BOOTCODE} ${IMAGE}.tmp
|
|
@ls -l ${FSTMP} | (read mode links uid gid size junk; \
|
|
dksize=$$((${DISKSIZE} * 512 - 8 * 1024)); \
|
|
disks=$$(($$size / $$dksize + 1)); \
|
|
if test $$size -gt $$dksize; then \
|
|
bytes=$$(($$size - $$dksize)); \
|
|
echo "Image is $$bytes ($$(($$bytes / 1024))K) too big\
|
|
to fit on one disk."; \
|
|
exit 1; \
|
|
else \
|
|
dd seek=$$(($${size} / 512 + 15)) count=1 \
|
|
if=/dev/zero of=${IMAGE}.tmp; \
|
|
fi; \
|
|
echo; \
|
|
bytes=$$(($$dksize * $$disks - $$size)); \
|
|
if test "${PAD}" = "yes"; then \
|
|
size=$$(($$size + 8 * 1024)); \
|
|
echo "Padding image with $$bytes bytes from $$size"; \
|
|
sectors=$$(($$bytes / 512)); \
|
|
ssize=$$(($$size / 512)); \
|
|
dd if=/dev/zero bs=512 seek=$${ssize} of=${IMAGE}.tmp \
|
|
count=$${sectors}; \
|
|
else \
|
|
echo "There are $$bytes ($$(($$bytes / 1024))K) bytes\
|
|
free on disk $$disks."; \
|
|
fi; \
|
|
)
|
|
mv -f ${IMAGE}.tmp ${IMAGE}
|
|
|
|
# Let the kernel on the diskette be called "netbsd" although
|
|
# it is compressed. This is because the boot code will search
|
|
# for "netbsd" first, and calling it "netbsd" instead of "netbsd.gz"
|
|
# we avoid scanning all the diskettes before reading the file.
|
|
|
|
netbsd: ${KERN}
|
|
rm -f netbsd
|
|
cp ${KERN} netbsd
|
|
|
|
# This is "cheating", just so that we have the available
|
|
# space at the start of the tar file. Installboot will overwrite
|
|
# the start of the bootcode with the tail end of the "real", aligned
|
|
# second-stage boot loader when it is run (which is quite a bit shorter
|
|
# than the entire ${BOOTCODE} file, even when symbols are removed.
|
|
# (the first 15*512 bytes are put into the first 8K filesystem block,
|
|
# around the disklabel)
|
|
|
|
boot: ${BOOTCODE}
|
|
rm -f boot
|
|
cp ${BOOTCODE} boot
|
|
${STRIP} boot
|
|
|
|
release:
|
|
-mkdir -p ${RELEASEDIR}/installation/floppy
|
|
cp -p ${IMAGE} ${RELEASEDIR}/installation/floppy
|
|
|
|
clean cleandir distclean:
|
|
rm -f *.core ${CLEANFILES} ${IMAGE} ${IMAGE}.tmp
|
|
rm -rf empty
|
|
|
|
.include <bsd.own.mk>
|
|
.include <bsd.obj.mk>
|
|
.include <bsd.subdir.mk>
|