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