Home | History | Annotate | Line # | Download | only in xminiroot
Makefile revision 1.2.2.3
      1 #	$NetBSD: Makefile,v 1.2.2.3 2002/03/25 17:33:03 he Exp $
      2 
      3 TOP=		${.CURDIR}/..
      4 MINIROOT=	${TOP}/../miniroot
      5 HACKSRC=	${TOP}/../utils/libhack
      6 SRCROOT=	${TOP}/../..
      7 WARNS=1
      8 
      9 VERDEP=		${SRCROOT}/sys/conf/osrelease.sh
     10 
     11 .if ${MACHINE_ARCH} == "i386"
     12 RAW_PART=	d
     13 .else
     14 RAW_PART=	c
     15 .endif
     16 
     17 # Need to add more cases
     18 .if ${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "m68k" || \
     19     ${MACHINE_ARCH} == "sparc64"
     20 FS_END=		be
     21 .else		# i386, pmax
     22 FS_END=		le
     23 .endif
     24 
     25 AUXDEPENDS= 	dot.profile disktab.preinstall termcap.mini \
     26 		dist/base_obsolete dist/comp_obsolete \
     27 		dist/games_obsolete dist/man_obsolete dist/misc_obsolete \
     28 		dist/secr_obsolete dist/xbase_obsolete dist/xserver_obsolete
     29 AUXCLEAN=	list ${CBIN}.conf dot.profile
     30 
     31 CBIN=		ramdiskbin
     32 
     33 .if ${MACHINE_ARCH} == "sparc64"
     34 CSIZE?=		10240
     35 .endif
     36 
     37 MOUNT_POINT?=	/mnt
     38 # DEV/RDEV file system device, CDEV/RDEV vnconfig device
     39 VND?=		vnd0
     40 VND_DEV=	/dev/${VND}c
     41 VND_RDEV=	/dev/r${VND}c
     42 VND_CDEV=	/dev/${VND}${RAW_PART}
     43 VND_CRDEV=	/dev/r${VND}${RAW_PART}
     44 IMAGE?=		miniroot.fs
     45 CSIZE?=         3312
     46 MDEC=		${DESTDIR}/usr/mdec
     47 
     48 LISTS=		list
     49 CRUNCHCONF=	${CBIN}.conf
     50 MTREE=		mtree.conf
     51 
     52 CRUNCHGEN?=	crunchgen
     53 DISKTYPE?=	miniroot
     54 
     55 all: ${CBIN} ${AUXDEPENDS} ${MTREE} ${LISTS} dot.profile
     56 	dd if=/dev/zero of=${IMAGE} count=${CSIZE}
     57 	vnconfig -v -c ${VND_CDEV} ${IMAGE}
     58 	disklabel -f ${.CURDIR}/disktab -rw ${VND_CDEV} ${DISKTYPE}
     59 	newfs -B ${FS_END} -m 0 -o space -i 5120 -c 80 ${VND_RDEV} ${DISKTYPE}
     60 	mount -o softdep ${VND_DEV} ${MOUNT_POINT}
     61 	mtree -def ${.CURDIR}/${MTREE} -p ${MOUNT_POINT}/ -u
     62 	TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
     63 	    KERNOBJDIR=${KERNOBJDIR} \
     64 	    TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
     65 	@echo ""
     66 	@df -i ${MOUNT_POINT}
     67 	@echo ""
     68 	@echo "installing new bootblocks"
     69 	${MDEC}/binstall -m ${DESTDIR}/usr/mdec -u -v ffs ${MOUNT_POINT}
     70 	umount ${MOUNT_POINT}
     71 	vnconfig -u ${VND_CDEV}
     72 
     73 unconfig:
     74 	-umount -f ${MOUNT_POINT}
     75 	-vnconfig -u ${VND_DEV}
     76 	-/bin/rm -f ${IMAGE}
     77 
     78 dot.profile: dot.profile.m4
     79 	m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \
     80 				${.ALLSRC} > ${.TARGET}
     81 
     82 ${LISTS}: ${LISTS}.m4
     83 	m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \
     84 			-DSRCROOT=${SRCROOT} ${.ALLSRC} > ${.TARGET}
     85 
     86 ${CBIN}.conf: ${CBIN}.m4
     87 	m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \
     88 				${.ALLSRC} > ${.TARGET}
     89 
     90 ${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
     91 	${CRUNCHGEN} -D ${SRCROOT} -L ${DESTDIR}/usr/lib ${.ALLSRC}
     92 
     93 ${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c ${VERDEP}
     94 	${MAKE} -f ${CBIN}.mk all
     95 
     96 # This is listed in ramdiskbin.conf but is built here.
     97 ${CBIN}: libhack.o
     98 
     99 # Use stubs to eliminate some large stuff from libc
    100 .include "${HACKSRC}/Makefile.inc"
    101 
    102 # turn off small gethostby* temporarily
    103 HACKOBJS:= getcap.o getgrent.o getnet.o getnetgr.o getpwent.o setlocale.o yplib.o
    104 
    105 clean cleandir distclean:
    106 	/bin/rm -f *.core ${AUXCLEAN} ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.cro *.c
    107 
    108 .ifndef RELEASEDIR
    109 release:
    110 	@echo setenv RELEASEDIR first
    111 	@false
    112 .else
    113 release: $(IMAGE)
    114 	@mkdir -p $(RELEASEDIR)/installation/miniroot
    115 	gzip -c -9 < $(.OBJDIR)/miniroot.fs \
    116 		> $(RELEASEDIR)/installation/miniroot/miniroot.fs.gz
    117 .endif	# RELEASEDIR check
    118 
    119 .include <bsd.own.mk>
    120 .include <bsd.obj.mk>
    121 .include <bsd.subdir.mk>
    122 .include <bsd.sys.mk>
    123