1 # $DragonFly: src/nrelease/Makefile,v 1.46 2005/12/11 18:36:14 dillon Exp $
5 installer_release: release
7 installer_realquickrel: realquickrel
9 .if make(installer_release) || make(installer_quickrel) || make(installer_realquickrel)
13 ISODIR ?= /usr/release
14 ISOFILE ?= ${ISODIR}/dfly.iso
15 ISOROOT = ${ISODIR}/root
16 OBJSYS= ${.OBJDIR}/../sys
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
28 RSYNC_CMD?= rsync -avz
30 PKGSRC_PACKAGES?= cdrecord
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.
36 REQ_ROOTSKELS= ${.CURDIR}/root
37 ROOTSKELS?= ${REQ_ROOTSKELS}
39 .if defined(WITH_INSTALLER)
40 PKGSRC_PACKAGES+= dfuibe_installer dfuife_curses
44 # note: we use the '${NRLOBJDIR}/nrelease' construct, that is we add
45 # the additional '/nrelease' manually, as a safety measure.
49 WORLD_CCVER ?= ${CCVER}
50 KERNEL_CCVER ?= ${CCVER}
52 #########################################################################
54 #########################################################################
56 release: check clean buildworld1 buildkernel1 \
57 buildiso customizeiso mklocatedb mkiso
59 quickrel: check clean buildworld2 buildkernel2 \
60 buildiso customizeiso mklocatedb mkiso
62 realquickrel: check clean buildiso customizeiso mklocatedb mkiso
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} ]
73 ( cd ${.CURDIR}/..; CCVER=${WORLD_CCVER} make buildworld )
76 ( cd ${.CURDIR}/..; CCVER=${WORLD_CCVER} make quickworld )
79 ( cd ${.CURDIR}/..; CCVER=${KERNEL_CCVER} make buildkernel KERNCONF=${KERNCONF} )
82 ( cd ${.CURDIR}/..; CCVER=${KERNEL_CCVER} make quickkernel KERNCONF=${KERNCONF} )
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.
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
104 .for ROOTSKEL in ${ROOTSKELS}
105 cpdup -X cpignore -o ${ROOTSKEL} ${ISOROOT}
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} \
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}
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}
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 )
134 ( cd ${ISOROOT}; mkisofs -b boot/cdboot -no-emul-boot \
135 -R -J -V DragonFly -o ${ISOFILE} . )
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
143 rm -rf ${OBJSYS}/${KERNCONF}
146 mkdir -p ${PKGSRC_PKG_PATH}
147 ${RSYNC_CMD} ${PKGSRC_RSYNC_SRC} ${PKGSRC_PKG_PATH}
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
154 .include <bsd.prog.mk>