summaryrefslogtreecommitdiffstats
path: root/release
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>1999-12-20 02:07:42 +0000
committergrog <grog@FreeBSD.org>1999-12-20 02:07:42 +0000
commit6855e801ec10a0d406c9ee954ffb6149399f9579 (patch)
tree2916b74d690fcc403e1d4167791a0861384b5f13 /release
parent5cc712749555c0c5d76dadf5d9485b8608894b8f (diff)
downloadFreeBSD-src-6855e801ec10a0d406c9ee954ffb6149399f9579.zip
FreeBSD-src-6855e801ec10a0d406c9ee954ffb6149399f9579.tar.gz
Handle building individual targets better. It's still broken; the
only way to be sure the build works correctly is to do a 'make all'. But with these changes, it's easier to test individual targets. In particular, ensure that the vnode file systems are mounted before writing to them. Ensure that we don't get CVS directories on our floppies. Use kgzip instead of kzip to compress the loader. This saves a few kB. Remove some test cruft.
Diffstat (limited to 'release')
-rw-r--r--release/picobsd/build/Makefile78
1 files changed, 37 insertions, 41 deletions
diff --git a/release/picobsd/build/Makefile b/release/picobsd/build/Makefile
index 33068da..d0b2aea 100644
--- a/release/picobsd/build/Makefile
+++ b/release/picobsd/build/Makefile
@@ -1,9 +1,5 @@
# PicoBSD Makefile
#
-# $Id: Makefile,v 1.1 1999/12/10 17:38:06 grog Exp $
-#
-# Taken from:
-#
# $FreeBSD$
#
@@ -83,6 +79,7 @@ ${MFS_NAME}: ${MFS_VNODE} ${MFS_MOUNTPOINT}
@echo "--> Building and mounting MFS image vnode"
-umount -f ${MFS_MOUNTPOINT}
-umount -f ${MFS_VNODE}
+ rm -f .mfs_mounted
-vnconfig -u ${MFS_VNODE}
rm -f ${MFS_NAME}
dd of=${MFS_NAME} if=/dev/zero count=${MFS_SIZE} bs=1k
@@ -92,7 +89,7 @@ ${MFS_NAME}: ${MFS_VNODE} ${MFS_MOUNTPOINT}
dd if=/boot/boot1 of=${MFS_NAME} conv=notrunc
disklabel -rw vn0 auto
newfs -i ${MFS_INODES} -m 0 -p 0 -o space ${MFS_VNODE}c
- mount ${MFS_VNODE} ${MFS_MOUNTPOINT}
+ make .mfs_mounted
make -f Makefile.mfs DESTDIR=${MFS_MOUNTPOINT} LANGUAGE=${LANGUAGE}
make -f Makefile.mfs devnodes DESTDIR=${MFS_MOUNTPOINT} LANGUAGE=${LANGUAGE}
MFS_MOUNTPOINT=${MFS_MOUNTPOINT} INIT=${INIT} VER=${VER} BUILDDIR=${BUILDDIR} LANGUAGE=${LANGUAGE}
@@ -100,23 +97,26 @@ ${MFS_NAME}: ${MFS_VNODE} ${MFS_MOUNTPOINT}
# Populate the MFS image.
crunch: ${MFS_MOUNTPOINT}
@echo "--> Populating MFS image"
- -mount ${MFS_VNODE} ${MFS_MOUNTPOINT}
+ -vnconfig -c ${MFS_VNODE} ${MFS_NAME}
+ make .mfs_mounted
# We need to make login with other options
for i in ${SPECIAL_PROGS}; do (cd $$i; make clean); done
cd crunch1; make SRC=${SRC} INIT=${INIT}; make install MFS_MOUNTPOINT=../${MFS_MOUNTPOINT}
# who can tell me how these damned help files get in here?
rm -rf ${MFS_MOUNTPOINT}/sbin/help
# Other files for the mfs file system
- (cd mfs; tar cf - . | (cd ../${MFS_MOUNTPOINT}; tar xf -))
+ (cd mfs; tar cXf ../floppy.tree.exclude - . | (cd ../${MFS_MOUNTPOINT}; tar xf -))
cd ${MFS_MOUNTPOINT}; chown -R root *
df -ik ${MFS_MOUNTPOINT}
umount ${MFS_MOUNTPOINT}
+ rm .mfs_mounted
fsck -p ${MFS_VNODE}
# Create and mount the floppy image
-${FLOPPY_NAME}: ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} ${MFS_NAME}
+${FLOPPY_NAME}: ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} ${MFS_NAME} .mfs_mounted
@echo "--> Preparing ${FLOPPY_SIZE}kB floppy filesystem"
-umount ${FLOPPY_VNODE}
+ rm -f .floppy_mounted
-vnconfig -u ${FLOPPY_VNODE}
dd of=${FLOPPY_NAME} if=/dev/zero count=${FLOPPY_SIZE} bs=1k
awk 'BEGIN {printf "%c%c", 85, 170}' | \
@@ -125,26 +125,20 @@ ${FLOPPY_NAME}: ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} ${MFS_NAME}
dd if=/boot/boot1 of=${FLOPPY_NAME} conv=notrunc
disklabel -Brw -b /boot/boot1 -s /boot/boot2 ${FLOPPY_VNODE}c fd${FLOPPY_SIZE}
newfs -i ${FLOPPY_INODES} -m 0 -p 0 -o space ${FLOPPY_VNODE}c
- mount ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT}
+ make .floppy_mounted
-copy: ${FLOPPY_MOUNTPOINT}/boot/defaults ../floppy.tree/boot
+copy: ../floppy.tree/boot .floppy_mounted
@echo "--> Populating floppy filesystem from ../floppy.tree"
@echo -- Make a loader
- cp /boot/loader floppy.tree/boot
- kzip floppy.tree/boot/loader
- mv floppy.tree/boot/loader.kz floppy.tree/boot/loader
-.if foo
- rm ../floppy.tree/boot/loader
- mv ../floppy.tree/boot/loader.kz ../floppy.tree/boot/loader
-.endif
+ kgzip -o floppy.tree/boot/loader /boot/loader
@echo -- copy base floppy tree
- @echo -- Base files
(wd=`pwd`; cd ../floppy.tree ; tar cXhf $${wd}/floppy.tree.exclude - . ) | \
(cd ${FLOPPY_MOUNTPOINT} ; tar xvf - )
@echo -- Now update from our private floppy tree if it exists
@echo -- Local files in `pwd`/floppy.tree
if [ -d floppy.tree ] ; then \
- (cd floppy.tree; tar cXhf ../floppy.tree.exclude - .) | (cd ${FLOPPY_MOUNTPOINT} ; tar xvf - ); \
+ (cd floppy.tree; tar cXhf ../floppy.tree.exclude - .) | \
+ (cd ${FLOPPY_MOUNTPOINT} ; tar xvf - ); \
fi
# We get stuff here that we can't use. When the transition
# to Makefile-based build is complete, we can delete this.
@@ -161,26 +155,23 @@ copy: ${FLOPPY_MOUNTPOINT}/boot/defaults ../floppy.tree/boot
rm pwd.db master.passwd; \
fi
cp kernel.gz ${FLOPPY_MOUNTPOINT}/kernel.gz
+ if [ -f .mfs_mounted ]; then \
+ umount ${MFS_VNODE}; \
+ rm .mfs_mounted; \
+ fi
@echo -- Insert the MFS image
gzip -9cv ${MFS_NAME} > ${FLOPPY_MOUNTPOINT}/${MFS_NAME}.gz
-.if loaderconf
- XXX finish this.
- cp ${SRC}/sys/boot/forth/loader.conf ${FLOPPY_MOUNTPOINT}/boot/defaults
- echo "userconfig_script_load=\"YES\"" >>${FLOPPY_MOUNTPOINT}/boot/defaults/loader.conf
- echo "rootfs_load=\"YES\"" >>${FLOPPY_MOUNTPOINT}/boot/defaults/loader.conf
- echo "rootfs_name=\"${MFS_NAME}\"" >>${FLOPPY_MOUNTPOINT}/boot/defaults/loader.conf
- echo "rootfs_type=\"mfs_root\"" >>${FLOPPY_MOUNTPOINT}/boot/defaults/loader.conf
-# for i in frames screen ; do \
-# cp ${SRC}/share/examples/bootforth/$${i}.4th ${FLOPPY_MOUNTPOINT}/boot/; \
-# done
-.endif
(echo "-> Fixing permissions"; cd ${FLOPPY_MOUNTPOINT}; chown -R root *)
df -ik ${FLOPPY_MOUNTPOINT}
umount ${FLOPPY_MOUNTPOINT}
+ rm .floppy_mounted
-floppy: ${FLOPPY_NAME}
- @echo copying ${FLOPPY_NAME} to ${FDEV}c. This will take about 50 seconds.
- @echo "wait for the message 'safe to remove' before removing the floppy..."
+floppy:
+ @if [ -f .floppy_mounted ]; then \
+ umount ${FLOPPY_MOUNTPOINT}; \
+ rm .floppy_mounted; \
+ fi
+ @echo Copying ${FLOPPY_NAME} to ${FDEV}c. This will take about 50 seconds.
@dd if=${FLOPPY_NAME} of=${FDEV}c bs=36b >/dev/null
@echo Safe to remove disk from ${FDEV}
@@ -219,13 +210,10 @@ ${FLOPPY_VNODE} ${MFS_VNODE}:
(cd /dev; ./MAKEDEV `basename $@`)
# Directories to make
-${MFS_MOUNTPOINT} ${FLOPPY_MOUNTPOINT} ${FLOPPY_MOUNTPOINT}/boot/defaults ../floppy.tree/boot:
+${MFS_MOUNTPOINT} ${FLOPPY_MOUNTPOINT} ../floppy.tree/boot:
mkdir -p $@
-tidy:
- -umount ${FLOPPY_VNODE} ${MFS_VNODE}
- -vnconfig -u ${FLOPPY_VNODE}
- -vnconfig -u ${MFS_VNODE}
+tidy: umount vnunconfig
rm -f ${MFS_NAME} ${MFS_NAME}.gz ${FLOPPY_NAME} *~ Make.log kernel.gz
clean: tidy
@@ -246,9 +234,17 @@ vnunconfig:
-vnconfig -u ${MFS_VNODE}
-vnconfig -u ${FLOPPY_VNODE}
-mount:
- mount ${MFS_VNODE} ${MFS_MOUNTPOINT}
- mount ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT}
+mount: .floppy_mounted .mfs_mounted
umount:
-umount ${MFS_VNODE} ${MFS_MOUNTPOINT} ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT}
+ rm -f .floppy_mounted .mfs_mounted
+
+.floppy_mounted:
+ mount ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT}
+ touch $@
+
+.mfs_mounted:
+ mount ${MFS_VNODE} ${MFS_MOUNTPOINT}
+ touch $@
+
OpenPOWER on IntegriCloud