NetBSD/distrib/miniroot/Makefile

92 lines
2.2 KiB
Makefile

# $NetBSD: Makefile,v 1.26 2000/03/07 08:41:35 pk Exp $
.include <bsd.own.mk>
REV!=sh ${BSDSRCDIR}/sys/conf/osrelease.sh -s
CBIN= instbin
ARCHDIR= ${.CURDIR}/../${MACHINE}/miniroot
.if exists(${ARCHDIR}/Makefile.inc)
.include "${ARCHDIR}/Makefile.inc"
.endif
VND?= vnd0c
VND_DEV= /dev/${VND}
VND_RDEV= /dev/r${VND}
VND_GEOM?=
IMAGE?= miniroot.fs
IMAGESIZE?= 14336 # 7MB in 512 byte blocks
NEWFSOPTS?=
MOUNT_POINT?= /mnt
BOOTINSTALL?= true
PRELABEL?= true
.ifdef DISKTYPE
DISKTYPEARG= -t ${DISKTYPE}
.endif
LISTS= ${.CURDIR}/list ${ARCHDIR}/list
CRUNCHCONF= ${CBIN}.conf
MTREE= ${.CURDIR}/mtree.conf
ICMD= ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} \
-o root -g wheel -m ${NONBINMODE}
.ifndef DESTDIR
all:
@echo setenv DESTDIR before making a miniroot!
@false
.else
all: ${CBIN}
dd if=/dev/zero of=${IMAGE} count=${IMAGESIZE}
vnconfig ${DISKTYPEARG} -v -c ${VND_DEV} ${IMAGE} ${VND_GEOM}
${PRELABEL}
-newfs -m 0 -o space ${NEWFSOPTS} ${VND_RDEV} ${DISKTYPE}
${BOOTINSTALL}
mount -o async ${VND_DEV} ${MOUNT_POINT}
mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
REV=${REV} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} ARCHDIR=${ARCHDIR} \
TARGDIR=${MOUNT_POINT} VND_RDEV=${VND_RDEV} \
sh ${.CURDIR}/runlist.sh ${LISTS}
@echo ""
@df -i ${MOUNT_POINT}
@echo ""
umount ${MOUNT_POINT}
vnconfig -u ${VND_DEV}
unconfig:
-umount -f ${MOUNT_POINT}
-vnconfig -u ${VND_DEV}
-/bin/rm -f ${IMAGE}
${CBIN}.conf: ${LISTS}
awk -f ${.CURDIR}/makeconf.awk CBIN=${CBIN} ${LISTS} > ${CBIN}.conf
${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
crunchgen -D ${.CURDIR}/../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
make -f ${CBIN}.mk all
.ifndef RELEASEDIR
release:
@echo setenv RELEASEDIR first
@false
.else
release: $(IMAGE)
mkdir -p $(RELEASEDIR)/installation/miniroot
gzip -c -9 < $(.OBJDIR)/miniroot.fs \
> $(RELEASEDIR)/installation/miniroot/miniroot.fs.gz
../sets/makesums -t $(RELEASEDIR)/installation/miniroot miniroot.fs
.endif # RELEASEDIR check
.endif # DESTDIR check
clean cleandir distclean:
/bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache \
${CBIN}.conf *.o *.cro *.c
.include <bsd.obj.mk>
.include <bsd.subdir.mk>