1 # $DragonFly: src/nrelease/Makefile,v 1.34 2005/04/19 04:20:27 cpressey Exp $
5 ISOFILE ?
= ${ISODIR}/dfly.iso
6 ISOROOT
= ${ISODIR}/root
7 OBJSYS
= ${.OBJDIR
}/..
/sys
10 # Specify which packages are required on the ISO, and let the user
11 # specify additional packages to include. During the `pkgaddiso'
12 # target, the packages are obtained from PACKAGES_LOC.
14 REQ_PACKAGES
= cdrtools-2.01 cvsup-without-gui-16.1h
15 REL_PACKAGES?
= ${REQ_PACKAGES} ${EXTRA_PACKAGES}
17 PACKAGES_LOC?
= ${PACKAGES}/All
19 PACKAGES_LOC?
= /usr
/ports
/packages
/All
22 # Specify which root skeletons are required, and let the user include
23 # their own. They are copied into ISODIR during the `pkgcustomizeiso'
24 # target; each overwrites the last.
26 REQ_ROOTSKELS
= ${.CURDIR
}/root
27 ROOTSKELS?
= ${REQ_ROOTSKELS} ${EXTRA_ROOTSKELS}
29 # note: we use the '${NRLOBJDIR}/nrelease' construct, that is we add
30 # the additional '/nrelease' manually, as a safety measure.
34 WORLD_CCVER ?
= ${CCVER}
35 KERNEL_CCVER ?
= ${CCVER}
37 #########################################################################
39 #########################################################################
41 release
: check clean buildworld1 buildkernel1 \
42 buildiso customizeiso pkgaddiso mklocatedb mkiso
44 quickrel
: check clean buildworld2 buildkernel2 \
45 buildiso customizeiso pkgaddiso mklocatedb mkiso
47 realquickrel
: check clean \
48 buildiso customizeiso pkgaddiso mklocatedb mkiso
50 #########################################################################
51 # ISO TARGETS WITH INSTALLER #
52 #########################################################################
54 INSTALLER_PKGS
= libaura-3.1 libdfui-4.1 libinstaller-5.1 \
55 dfuibe_installer-1.1
.6 dfuife_curses-1.5 \
56 thttpd-notimeout-2.24 dfuife_cgi-1.4
57 INSTALLER_SKELS
= installer
59 INSTALLER_ENV
= EXTRA_PACKAGES
="${INSTALLER_PKGS} ${EXTRA_PACKAGES}" \
60 EXTRA_ROOTSKELS
="${INSTALLER_SKELS} ${EXTRA_ROOTSKELS}"
63 @
${INSTALLER_ENV} ${MAKE} check
66 @
${INSTALLER_ENV} ${MAKE} fetchpkgs
69 ${INSTALLER_ENV} ${MAKE} release
72 ${INSTALLER_ENV} ${MAKE} quickrel
74 installer_realquickrel
:
75 ${INSTALLER_ENV} ${MAKE} realquickrel
77 #########################################################################
79 #########################################################################
82 @if
[ ! -f
/usr
/local
/bin
/mkisofs
]; then \
83 echo
"You need to install the sysutils/cdrtools port for"; \
87 .for PKG in
${REL_PACKAGES}
88 @if
[ ! -f
${PACKAGES_LOC}/${PKG}.tgz
]; then \
89 echo
"Unable to find ${PACKAGES_LOC}/${PKG}.tgz."; \
90 echo
"(Perhaps you need to download or build it first?)"; \
92 echo
"If you are trying to build the installer, the"; \
93 echo
"required packages can be obtained from:"; \
95 echo
" http://www.bsdinstaller.org/packages/"; \
97 echo
"They can be automatically downloaded by issuing"; \
98 echo
"'make installer_fetchpkgs' from this directory."; \
103 @echo
"check: all preqs found"
106 .for PKG in
${REL_PACKAGES}
107 @if
[ ! -f
${PACKAGES_LOC}/${PKG}.tgz
]; then \
108 cd
${PACKAGES_LOC} && \
109 echo
"fetching ${PKG}..." && \
110 fetch http
://www.bsdinstaller.org
/packages
/${PKG}.tgz
; \
115 ( cd
${.CURDIR
}/..
; CCVER
=${WORLD_CCVER} make buildworld
)
118 ( cd
${.CURDIR
}/..
; CCVER
=${WORLD_CCVER} make
-DNOTOOLS
-DNOCLEAN buildworld
)
121 ( cd
${.CURDIR
}/..
; CCVER
=${KERNEL_CCVER} make buildkernel KERNCONF
=${KERNCONF} )
124 ( cd
${.CURDIR
}/..
; CCVER
=${KERNEL_CCVER} make
-DNOCLEAN buildkernel KERNCONF
=${KERNCONF} )
126 # note that we do not want to mess with any /usr/obj directories not related
127 # to buildworld, buildkernel, or nrelease, so we must supply the proper
128 # MAKEOBJDIRPREFIX for targets that are not run through the buildworld and
129 # buildkernel mechanism.
132 if
[ ! -d
${ISOROOT} ]; then mkdir
-p
${ISOROOT}; fi
133 if
[ ! -d
${NRLOBJDIR}/nrelease
]; then mkdir
-p
${NRLOBJDIR}/nrelease
; fi
134 ( cd
${.CURDIR
}/..
; make DESTDIR
=${ISOROOT} installworld
)
135 ( cd
${.CURDIR
}/..
/etc
; MAKEOBJDIRPREFIX
=${NRLOBJDIR}/nrelease make DESTDIR
=${ISOROOT} distribution
)
136 cpdup
${ISOROOT}/etc
${ISOROOT}/etc.hdd
137 ( cd
${.CURDIR
}/..
; make DESTDIR
=${ISOROOT} \
138 installkernel KERNCONF
=${KERNCONF} )
139 ln
-s kernel
${ISOROOT}/kernel.BOOTP
140 mtree
-deU
-f
${.CURDIR
}/..
/etc
/mtree
/BSD.local.
dist -p
${ISOROOT}/usr
/local
/
141 mtree
-deU
-f
${.CURDIR
}/..
/etc
/mtree
/BSD.var.
dist -p
${ISOROOT}/var
142 dev_mkdb
-f
${ISOROOT}/var
/run
/dev.db
${ISOROOT}/dev
145 .for ROOTSKEL in
${ROOTSKELS}
146 cpdup
-X cpignore
-o
${ROOTSKEL} ${ISOROOT}
148 rm -rf
`find ${ISOROOT} -type d -name CVS -print`
149 rm -rf
${ISOROOT}/usr
/local
/share
/pristine
150 pwd_mkdb
-p
-d
${ISOROOT}/etc
${ISOROOT}/etc
/master.passwd
153 rm -f
${ISOROOT}/tmp
/chrootscript
154 echo
"#!/bin/sh" > ${ISOROOT}/tmp
/chrootscript
155 .for PKG in
${REL_PACKAGES}
156 echo
"pkg_delete -f ${PKG}" >> ${ISOROOT}/tmp
/chrootscript
158 chmod a
+x
${ISOROOT}/tmp
/chrootscript
159 chroot
${ISOROOT}/ /tmp
/chrootscript || exit
0
160 rm ${ISOROOT}/tmp
/chrootscript
163 rm -f
${ISOROOT}/tmp
/chrootscript
164 echo
"#!/bin/sh" > ${ISOROOT}/tmp
/chrootscript
165 .for PKG in
${REL_PACKAGES}
166 if
[ ! -d
${ISOROOT}/var
/db
/pkg
/${PKG} ]; then \
167 cp
${PACKAGES_LOC}/${PKG}.tgz
${ISOROOT}/tmp
/${PKG}.tgz
; \
168 echo
"echo 'Installing package ${PKG}...' && \\" >> \
169 ${ISOROOT}/tmp
/chrootscript
; \
170 echo
"pkg_add /tmp/${PKG}.tgz && \\" >> \
171 ${ISOROOT}/tmp
/chrootscript
; \
174 echo
"echo 'All packages added successfully!'" >> \
175 ${ISOROOT}/tmp
/chrootscript
176 chmod a
+x
${ISOROOT}/tmp
/chrootscript
177 chroot
${ISOROOT}/ /tmp
/chrootscript
178 rm ${ISOROOT}/tmp
/chrootscript
179 .for PKG in
${REL_PACKAGES}
180 rm -f
${ISOROOT}/tmp
/${PKG}.tgz
184 ( find
-s
${ISOROOT} -path
${ISOROOT}/tmp
-or \
185 -path
${ISOROOT}/usr
/tmp
-or
-path
${ISOROOT}/var
/tmp \
186 -prune
-o
-print | sed
-e
's#^${ISOROOT}##g' | \
187 /usr
/libexec
/locate.mklocatedb \
188 -presort
>${ISOROOT}/var
/db
/locate.database
)
191 ( cd
${ISOROOT}; mkisofs
-b boot
/cdboot
-no-emul-boot \
192 -R
-J
-V DragonFly
-o
${ISOFILE} .
)
195 if
[ -d
${ISOROOT} ]; then chflags
-R noschg
${ISOROOT}; fi
196 if
[ -d
${ISOROOT} ]; then
rm -rf
${ISOROOT}/*; fi
197 if
[ -d
${NRLOBJDIR}/nrelease
]; then
rm -rf
${NRLOBJDIR}/nrelease
; fi
200 rm -rf
${OBJSYS}/${KERNCONF}
202 .
include <bsd.prog.mk
>