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