1 # $NetBSD: Makefile,v 1.16 2002/05/02 18:02:56 lukem Exp $ 2 3 .include <bsd.own.mk> 4 .include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib" 5 6 .include <bsd.kernobj.mk> 7 8 TOP= ${.CURDIR}/.. 9 MINIROOT= ${TOP}/../miniroot 10 11 .include "${TOP}/Makefile.inc" 12 13 SRCROOT= ${TOP}/../.. 14 WARNS=1 15 INSTKERN?= ${KERNOBJDIR}/INSTALL/netbsd 16 GENERICKERN?= ${KERNOBJDIR}/GENERIC/netbsd 17 18 AUXDEPENDS= dot.profile disktab.preinstall termcap.mini \ 19 dist/base_obsolete dist/comp_obsolete \ 20 dist/games_obsolete dist/man_obsolete dist/misc_obsolete \ 21 dist/secr_obsolete dist/xbase_obsolete dist/xserver_obsolete 22 AUXCLEAN= list ${CBIN}.conf dot.profile 23 24 CBIN= ramdiskbin 25 26 27 CSIZE?= 15360 28 IMAGE?= miniroot.fs 29 INSTALLSIZE?= 10240 30 INSTALLIMAGE?= install.fs 31 MDEC= ${DESTDIR}/usr/mdec 32 MOUNT_POINT?= ${.OBJDIR}/mountpoint 33 34 LISTS= list 35 CRUNCHCONF= ${CBIN}.conf 36 MTREECONF= mtree.conf 37 38 CRUNCHGEN?= crunchgen 39 MDSETIMAGE?= mdsetimage 40 MTREE?= mtree 41 DISKTYPE?= miniroot 42 43 MAKEFSOPTS?= -o optimization=space,minfree=1,bsize=16k,fsize=2k 44 45 all: netbsd.INSTALL ${INSTALLIMAGE} ${IMAGE} 46 47 netbsd.gz: ${GENERICKERN} 48 gzip -9 < ${GENERICKERN} > netbsd.gz 49 50 netbsd.INSTALL: ${INSTKERN} ${INSTALLIMAGE} 51 cp ${INSTKERN} netbsd.tmp 52 ${MDSETIMAGE} -v netbsd.tmp ${INSTALLIMAGE} 53 ${STRIP} netbsd.tmp 54 mv netbsd.tmp ${.TARGET} 55 56 ${INSTALLIMAGE} ${IMAGE}: ${CBIN} ${AUXDEPENDS} ${MTREECONF} ${LISTS} dot.profile netbsd.gz 57 @echo "Building miniroot tree..." 58 -rm -rf ${MOUNT_POINT} 59 mkdir -m 755 ${MOUNT_POINT} 60 ${MTREE} -def ${.CURDIR}/${MTREECONF} -p ${MOUNT_POINT}/ -u 61 TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \ 62 KERNOBJDIR=${KERNOBJDIR} \ 63 TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS} 64 @echo "Creating install image..." 65 -rm -f ${INSTALLIMAGE} 66 ${MAKEFS} -t ffs -B be -s ${INSTALLSIZE}b ${MAKEFSOPTS} \ 67 -o nsectors=1,ntracks=${INSTALLSIZE} \ 68 ${INSTALLIMAGE}.tmp ${MOUNT_POINT} && mv ${INSTALLIMAGE}.tmp ${INSTALLIMAGE} 69 @echo "Copying in GENERIC kernel..." 70 cp netbsd.gz ${MOUNT_POINT}/netbsd 71 @echo "Creating miniroot image..." 72 -rm -f ${IMAGE} 73 ${MAKEFS} -t ffs -B be -s ${CSIZE}b ${MAKEFSOPTS} \ 74 -o nsectors=1,ntracks=${CSIZE} \ 75 ${IMAGE}.tmp ${MOUNT_POINT} && mv ${IMAGE}.tmp ${IMAGE} 76 # use sunlabel? 77 #-disklabel -f ${.CURDIR}/disktab -rw ${VND_CDEV} ${DISKTYPE} 78 @echo "installing new bootblocks" 79 dd if=${MDEC}/bootblk of=${IMAGE} bs=512 count=15 conv=notrunc seek=1 80 81 dot.profile: dot.profile.m4 82 m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \ 83 ${.ALLSRC} > ${.TARGET} 84 85 ${LISTS}: ${LISTS}.m4 86 m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \ 87 -DSRCROOT=${SRCROOT} ${.ALLSRC} > ${.TARGET} 88 89 ${CBIN}.conf: ${CBIN}.m4 90 m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \ 91 ${.ALLSRC} > ${.TARGET} 92 93 ${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF} 94 ${CRUNCHGEN} -D ${SRCROOT} -L ${DESTDIR}/usr/lib ${.ALLSRC} 95 96 ${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c 97 ${MAKE} -f ${CBIN}.mk all 98 99 # Use stubs to eliminate some large stuff from libc 100 HACKSRC= ${SRCROOT}/distrib/utils/libhack 101 .include "${HACKSRC}/Makefile.inc" 102 ${CBIN}: libhack.o 103 104 clean cleandir distclean: 105 /bin/rm -f *.core ${AUXCLEAN} ${IMAGE} netbsd.INSTALL ${CBIN} \ 106 ${CBIN}.mk ${CBIN}.cache *.o *.lo *.cro *.c 107 108 release: check_RELEASEDIR .WAIT miniroot.fs 109 gzip -c -9 miniroot.fs \ 110 > $(RELEASEDIR)/installation/miniroot/miniroot.fs.gz 111 112 .include <bsd.prog.mk> 113