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