Remove the 'all' target to fix buildworld, and fix a
[dragonfly.git] / nrelease / Makefile
1 # $DragonFly: src/nrelease/Makefile,v 1.46 2005/12/11 18:36:14 dillon Exp $
2 #
3
4 # compat target
5 installer_release: release
6 installer_quickrel: 
7 installer_realquickrel: realquickrel
8
9 .if make(installer_release) || make(installer_quickrel) || make(installer_realquickrel)
10 WITH_INSTALLER=
11 .endif
12
13 ISODIR ?= /usr/release
14 ISOFILE ?= ${ISODIR}/dfly.iso
15 ISOROOT = ${ISODIR}/root
16 OBJSYS= ${.OBJDIR}/../sys
17 KERNCONF ?= GENERIC
18
19 PKGSRC_PKG_ADD?=        /usr/pkg/sbin/pkg_add
20 PKGSRC_PKG_PATH?=       ${.CURDIR}
21 PKGSRC_BOOTSTRAP_FILE?= ${PKGSRC_PKG_PATH}/bootstrap.tar.gz
22 PKGSRC_DB?=             /var/db/pkg
23 PKGSRC_PREFIX?=         /usr/pkg
24 PKGSRC_RSYNC_SRC?=      rsync://packages.stura.uni-rostock.de/dfly14-nrelease
25
26 ENV?=   env
27 TAR?=   tar
28 RSYNC_CMD?=     rsync -avz
29
30 PKGSRC_PACKAGES?=       cdrecord
31
32 # Specify which root skeletons are required, and let the user include
33 # their own.  They are copied into ISODIR during the `pkgcustomizeiso'
34 # target; each overwrites the last.
35 #
36 REQ_ROOTSKELS= ${.CURDIR}/root
37 ROOTSKELS?=     ${REQ_ROOTSKELS}
38
39 .if defined(WITH_INSTALLER)
40 PKGSRC_PACKAGES+=       dfuibe_installer dfuife_curses
41 ROOTSKELS+=             installer
42 .endif
43
44 # note: we use the '${NRLOBJDIR}/nrelease' construct, that is we add
45 # the additional '/nrelease' manually, as a safety measure.
46 #
47 NRLOBJDIR?= /usr/obj
48
49 WORLD_CCVER ?= ${CCVER}
50 KERNEL_CCVER ?= ${CCVER}
51
52 #########################################################################
53 #                               BASE ISO TARGETS                        #
54 #########################################################################
55
56 release:        check clean buildworld1 buildkernel1 \
57                 buildiso customizeiso mklocatedb mkiso
58
59 quickrel:       check clean buildworld2 buildkernel2 \
60                 buildiso customizeiso mklocatedb mkiso
61
62 realquickrel:   check clean buildiso customizeiso mklocatedb mkiso
63
64 check:
65         @${ECHO} Testing mkisofs...
66         @mkisofs --version > /dev/null
67         @${ECHO} Testing pkg_add and list of packages...
68         @${ENV} PKG_PATH=${PKGSRC_PKG_PATH} ${PKGSRC_PKG_ADD} -n ${PKGSRC_PACKAGES} > /dev/null 2>&1
69         @${ECHO} Testing for existence of bootstrap kit...
70         @[ -r ${PKGSRC_BOOTSTRAP_FILE} ]
71
72 buildworld1:
73         ( cd ${.CURDIR}/..; CCVER=${WORLD_CCVER} make buildworld )
74
75 buildworld2:
76         ( cd ${.CURDIR}/..; CCVER=${WORLD_CCVER} make quickworld )
77
78 buildkernel1:
79         ( cd ${.CURDIR}/..; CCVER=${KERNEL_CCVER} make buildkernel KERNCONF=${KERNCONF} )
80
81 buildkernel2:
82         ( cd ${.CURDIR}/..; CCVER=${KERNEL_CCVER} make quickkernel KERNCONF=${KERNCONF} )
83
84 # note that we do not want to mess with any /usr/obj directories not related
85 # to buildworld, buildkernel, or nrelease, so we must supply the proper
86 # MAKEOBJDIRPREFIX for targets that are not run through the buildworld and 
87 # buildkernel mechanism.
88 #
89 buildiso:
90         if [ ! -d ${ISOROOT} ]; then mkdir -p ${ISOROOT}; fi
91         if [ ! -d ${NRLOBJDIR}/nrelease ]; then mkdir -p ${NRLOBJDIR}/nrelease; fi
92         ( cd ${.CURDIR}/..; make DESTDIR=${ISOROOT} installworld )
93         ( cd ${.CURDIR}/../etc; MAKEOBJDIRPREFIX=${NRLOBJDIR}/nrelease \
94                 make -m ${.CURDIR}/../share/mk DESTDIR=${ISOROOT} distribution )
95         cpdup ${ISOROOT}/etc ${ISOROOT}/etc.hdd
96         ( cd ${.CURDIR}/..; make DESTDIR=${ISOROOT} \
97                 installkernel KERNCONF=${KERNCONF} )
98         ln -s kernel ${ISOROOT}/kernel.BOOTP
99         mtree -deU -f ${.CURDIR}/../etc/mtree/BSD.local.dist -p ${ISOROOT}/usr/local/
100         mtree -deU -f ${.CURDIR}/../etc/mtree/BSD.var.dist -p ${ISOROOT}/var
101         dev_mkdb -f ${ISOROOT}/var/run/dev.db ${ISOROOT}/dev
102
103 customizeiso:
104 .for ROOTSKEL in ${ROOTSKELS}
105         cpdup -X cpignore -o ${ROOTSKEL} ${ISOROOT}
106 .endfor
107         rm -rf `find ${ISOROOT} -type d -name CVS -print`
108         rm -rf ${ISOROOT}/usr/local/share/pristine
109         pwd_mkdb -p -d ${ISOROOT}/etc ${ISOROOT}/etc/master.passwd
110 .for UPGRADE_ITEM in Makefile                   \
111                      etc.${MACHINE_ARCH}        \
112                      isdn/Makefile              \
113                      rc.d/Makefile              \
114                      periodic/Makefile          \
115                      periodic/daily/Makefile    \
116                      periodic/security/Makefile \
117                      periodic/weekly/Makefile   \
118                      periodic/monthly/Makefile
119         cp -R ${.CURDIR}/../etc/${UPGRADE_ITEM} ${ISOROOT}/etc/${UPGRADE_ITEM}
120 .endfor
121         cd ${ISOROOT} && ${TAR} xzf ${PKGSRC_BOOTSTRAP_FILE}
122 .for pkg in ${PKGSRC_PACKAGES}
123         ${ENV} PKG_PATH=${PKGSRC_PKG_PATH} ${PKGSRC_PKG_ADD} -I -K ${ISOROOT}${PKGSRC_DB} -p ${ISOROOT}${PKGSRC_PREFIX} ${pkg}
124 .endfor
125
126 mklocatedb:
127         ( find -s ${ISOROOT} -path ${ISOROOT}/tmp -or \
128                 -path ${ISOROOT}/usr/tmp -or -path ${ISOROOT}/var/tmp \
129                 -prune -o -print | sed -e 's#^${ISOROOT}##g' | \
130                 /usr/libexec/locate.mklocatedb \
131                 -presort >${ISOROOT}/var/db/locate.database )
132
133 mkiso:
134         ( cd ${ISOROOT}; mkisofs -b boot/cdboot -no-emul-boot \
135                 -R -J -V DragonFly -o ${ISOFILE} . )
136
137 clean:
138         if [ -d ${ISOROOT} ]; then chflags -R noschg ${ISOROOT}; fi
139         if [ -d ${ISOROOT} ]; then rm -rf ${ISOROOT}/*; fi
140         if [ -d ${NRLOBJDIR}/nrelease ]; then rm -rf ${NRLOBJDIR}/nrelease; fi
141
142 realclean:      clean
143         rm -rf ${OBJSYS}/${KERNCONF}
144
145 fetch:
146         mkdir -p ${PKGSRC_PKG_PATH}
147         ${RSYNC_CMD} ${PKGSRC_RSYNC_SRC} ${PKGSRC_PKG_PATH}
148
149 .PHONY: all release installer_release quickrel installer_quickrel realquickrel
150 .PHONY: installer_realquickrel check buildworld1 buildworld2
151 .PHONY: buildkernel1 buildkernel2 buildiso customizeiso mklocatedb mkiso
152 .PHONY: clean realclean fetch
153
154 .include <bsd.prog.mk>