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