1 # $NetBSD: Makefile,v 1.43 2002/01/07 12:56:42 shin Exp $ 2 3 .include "../../Makefile.inc" 4 .include <bsd.own.mk> 5 .include <bsd.kernobj.mk> 6 7 REV!=sh ${.CURDIR}/../../sys/conf/osrelease.sh -s 8 9 CBIN= instbin 10 ARCHDIR= ${.CURDIR}/../${MACHINE}/miniroot 11 12 .if exists(${ARCHDIR}/Makefile.inc) 13 .include "${ARCHDIR}/Makefile.inc" 14 .endif 15 16 VND?= vnd0 17 VND_DEV= /dev/${VND}c 18 VND_RDEV= /dev/r${VND}c 19 VND_GEOM?= 20 IMAGE?= miniroot.fs 21 IMAGESIZE?= 14336 # 7MB in 512 byte blocks 22 NEWFSOPTS?= 23 MOUNT_POINT?= /mnt 24 BOOTINSTALL?= true 25 PRELABEL?= true 26 27 .ifdef DISKTYPE 28 DISKTYPEARG= -t ${DISKTYPE} 29 .endif 30 31 LISTS= ${.CURDIR}/list ${ARCHDIR}/list 32 CRUNCHCONF= ${CBIN}.conf 33 MTREECONF= ${.CURDIR}/mtree.conf 34 ICMD= ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} \ 35 -o root -g wheel -m ${NONBINMODE} 36 37 CRUNCHGEN?= crunchgen 38 MTREE?= mtree 39 40 .ifndef DESTDIR 41 all: 42 @echo setenv DESTDIR before making a miniroot! 43 @false 44 .else 45 46 all: ${CBIN} 47 dd if=/dev/zero of=${IMAGE} count=${IMAGESIZE} 48 vnconfig ${DISKTYPEARG} -v -c ${VND} ${IMAGE} ${VND_GEOM} 49 ${PRELABEL} 50 -newfs -m 0 -o space ${NEWFSOPTS} ${VND_RDEV} ${DISKTYPE} 51 ${BOOTINSTALL} 52 mount -o async ${VND_DEV} ${MOUNT_POINT} 53 ${MTREE} -def ${MTREECONF} -p ${MOUNT_POINT}/ -u 54 REV=${REV} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} ARCHDIR=${ARCHDIR} \ 55 TARGDIR=${MOUNT_POINT} VND_RDEV=${VND_RDEV} \ 56 KERNOBJDIR=${KERNOBJDIR} \ 57 sh ${.CURDIR}/runlist.sh ${LISTS} 58 @echo "" 59 @df -i ${MOUNT_POINT} 60 @echo "" 61 umount ${MOUNT_POINT} 62 vnconfig -u ${VND} 63 64 unconfig: 65 -umount -f ${MOUNT_POINT} 66 -vnconfig -u ${VND_DEV} 67 -/bin/rm -f ${IMAGE} 68 69 ${CBIN}.conf: ${LISTS} 70 awk -f ${.CURDIR}/makeconf.awk CBIN=${CBIN} ${LISTS} > ${CBIN}.conf 71 72 ${CBIN}.mk ${CBIN}.cache ${CBIN}.c! ${CRUNCHCONF} 73 ${CRUNCHGEN} -f -D ${.CURDIR}/../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF} 74 75 ${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c 76 ${MAKE} -f ${CBIN}.mk all 77 78 .ifndef RELEASEDIR 79 release: 80 @echo setenv RELEASEDIR first 81 @false 82 .else 83 release: ${IMAGE} 84 mkdir -p ${RELEASEDIR}/installation/miniroot 85 gzip -c -9 < ${.OBJDIR}/miniroot.fs \ 86 > ${RELEASEDIR}/installation/miniroot/miniroot.fs.gz 87 ${.CURDIR}/../sets/makesums \ 88 -t ${RELEASEDIR}/installation/miniroot miniroot.fs.gz 89 90 .endif # RELEASEDIR check 91 .endif # DESTDIR check 92 93 clean cleandir distclean: 94 /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache \ 95 ${CBIN}.conf *.o *.cro *.c 96 97 .include <bsd.obj.mk> 98 .include <bsd.subdir.mk> 99