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