1999-08-28 01:35:59 +00:00
|
|
|
# $FreeBSD$
|
1994-09-23 08:28:25 +00:00
|
|
|
#
|
2011-03-14 13:47:17 +00:00
|
|
|
# Makefile for building releases and release media.
|
2014-04-01 22:46:46 +00:00
|
|
|
#
|
2011-03-14 13:47:17 +00:00
|
|
|
# User-driven targets:
|
2013-07-22 12:07:57 +00:00
|
|
|
# cdrom: Builds release CD-ROM media (disc1.iso)
|
2013-11-27 03:05:24 +00:00
|
|
|
# dvdrom: Builds release DVD-ROM media (dvd1.iso)
|
2013-07-21 05:23:34 +00:00
|
|
|
# memstick: Builds memory stick image (memstick.img)
|
2013-11-07 18:53:55 +00:00
|
|
|
# mini-memstick: Builds minimal memory stick image (mini-memstick.img)
|
2011-03-14 13:47:17 +00:00
|
|
|
# ftp: Sets up FTP distribution area (ftp)
|
|
|
|
# release: Build all media and FTP distribution area
|
2011-04-11 14:30:45 +00:00
|
|
|
# install: Copies all release media into ${DESTDIR}
|
2011-03-14 13:47:17 +00:00
|
|
|
#
|
|
|
|
# Variables affecting the build process:
|
|
|
|
# WORLDDIR: location of src tree -- must have built world and default kernel
|
2014-04-01 22:46:46 +00:00
|
|
|
# (by default, the directory above this one)
|
2011-03-14 13:47:17 +00:00
|
|
|
# PORTSDIR: location of ports tree to distribute (default: /usr/ports)
|
|
|
|
# DOCDIR: location of doc tree (default: /usr/doc)
|
2013-11-30 17:07:53 +00:00
|
|
|
# NOPKG: if set, do not distribute third-party packages
|
2011-03-14 13:47:17 +00:00
|
|
|
# NOPORTS: if set, do not distribute ports tree
|
|
|
|
# NOSRC: if set, do not distribute source tree
|
|
|
|
# NODOC: if set, do not generate release documentation
|
2013-12-02 18:47:57 +00:00
|
|
|
# WITH_DVD: if set, generate dvd1.iso
|
2014-04-02 16:53:07 +00:00
|
|
|
# WITH_COMPRESSED_IMAGES: if set, compress installation images with xz(1)
|
2014-04-01 22:41:26 +00:00
|
|
|
# (uncompressed images are not removed)
|
Initial commit to include virtual machine images as part
of the FreeBSD release builds.
This adds a make(1) environment variable requirement,
WITH_VMIMAGES, which triggers the virtual machine image
targets when not defined to an empty value.
Relevant user-driven variables include:
o VMFORMATS: The virtual machine image formats to create.
Valid formats are provided by running 'mkimg --formats'
o VMSIZE: The size of the resulting virtual machine
image. Typical compression is roughly 140Mb, regardless
of the target size (10GB, 15GB, 20GB, 40GB sizes have been
tested with the same result).
o VMBASE: The prefix of the virtual machine disk images.
The VMBASE make(1) environment variable is suffixed with
each format in VMFORMATS for each individual disk image, as
well as '.img' for the source UFS filesystem passed to
mkimg(1).
This also includes a new script, mk-vmimage.sh, based on how
the VM images for 10.0-RELEASE, 9.3-RELEASE, and 10.1-RELEASE
were created (mk-vmimage.sh in ^/user/gjb/thermite/).
With the order in which the stages need to occur, as well as
sanity-checking error cases, it makes much more sense to
execute a shell script called from make(1), using env(1) to
set specific parameters for the target image than it does to
do this in make(1) directly.
Sponsored by: The FreeBSD Foundation
2014-09-28 01:45:20 +00:00
|
|
|
# WITH_VMIMAGES: if set, build virtual machine images with the release
|
2014-04-01 22:46:46 +00:00
|
|
|
# TARGET/TARGET_ARCH: architecture of built release
|
2001-02-19 14:23:49 +00:00
|
|
|
#
|
2009-08-14 20:35:42 +00:00
|
|
|
|
2011-03-14 13:47:17 +00:00
|
|
|
WORLDDIR?= ${.CURDIR}/..
|
|
|
|
PORTSDIR?= /usr/ports
|
|
|
|
DOCDIR?= /usr/doc
|
|
|
|
RELNOTES_LANG?= en_US.ISO8859-1
|
2014-04-03 12:04:05 +00:00
|
|
|
XZCMD?= /usr/bin/xz
|
2000-07-20 03:07:29 +00:00
|
|
|
|
2013-12-01 15:06:30 +00:00
|
|
|
.if !defined(TARGET) || empty(TARGET)
|
|
|
|
TARGET= ${MACHINE}
|
|
|
|
.endif
|
|
|
|
.if !defined(TARGET_ARCH) || empty(TARGET_ARCH)
|
2011-05-18 17:39:28 +00:00
|
|
|
.if ${TARGET} == ${MACHINE}
|
2013-12-01 15:06:30 +00:00
|
|
|
TARGET_ARCH= ${MACHINE_ARCH}
|
2002-02-03 07:00:37 +00:00
|
|
|
.else
|
2013-12-01 15:06:30 +00:00
|
|
|
TARGET_ARCH= ${TARGET}
|
|
|
|
.endif
|
2002-02-03 07:00:37 +00:00
|
|
|
.endif
|
2011-03-14 13:47:17 +00:00
|
|
|
IMAKE= ${MAKE} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET}
|
2012-03-08 01:47:12 +00:00
|
|
|
DISTDIR= dist
|
2000-06-04 04:41:41 +00:00
|
|
|
|
2013-02-03 10:26:24 +00:00
|
|
|
# Define OSRELEASE by using newvars.sh
|
|
|
|
.if !defined(OSRELEASE) || empty(OSRELEASE)
|
|
|
|
.for _V in TYPE BRANCH REVISION
|
|
|
|
${_V}!= eval $$(awk '/^${_V}=/{print}' ${.CURDIR}/../sys/conf/newvers.sh); echo $$${_V}
|
|
|
|
.endfor
|
|
|
|
.for _V in ${TARGET_ARCH}
|
|
|
|
.if !empty(TARGET:M${_V})
|
|
|
|
OSRELEASE= ${TYPE}-${REVISION}-${BRANCH}-${TARGET}
|
|
|
|
.else
|
|
|
|
OSRELEASE= ${TYPE}-${REVISION}-${BRANCH}-${TARGET}-${TARGET_ARCH}
|
|
|
|
.endif
|
|
|
|
.endfor
|
|
|
|
.endif
|
|
|
|
|
2011-03-14 13:47:17 +00:00
|
|
|
.if !exists(${DOCDIR})
|
|
|
|
NODOC= true
|
2005-06-16 18:16:14 +00:00
|
|
|
.endif
|
2011-03-14 13:47:17 +00:00
|
|
|
.if !exists(${PORTSDIR})
|
|
|
|
NOPORTS= true
|
2010-07-13 21:19:59 +00:00
|
|
|
.endif
|
|
|
|
|
2014-04-01 22:46:46 +00:00
|
|
|
EXTRA_PACKAGES=
|
2003-08-02 18:21:02 +00:00
|
|
|
.if !defined(NOPORTS)
|
2011-03-14 13:47:17 +00:00
|
|
|
EXTRA_PACKAGES+= ports.txz
|
2003-08-02 18:21:02 +00:00
|
|
|
.endif
|
1997-06-24 23:08:18 +00:00
|
|
|
.if !defined(NOSRC)
|
2011-03-14 13:47:17 +00:00
|
|
|
EXTRA_PACKAGES+= src.txz
|
1997-06-24 23:08:18 +00:00
|
|
|
.endif
|
2001-05-30 17:05:15 +00:00
|
|
|
.if !defined(NODOC)
|
2011-03-14 13:47:17 +00:00
|
|
|
EXTRA_PACKAGES+= reldoc
|
2002-11-04 00:50:01 +00:00
|
|
|
.endif
|
2003-07-25 08:54:41 +00:00
|
|
|
|
2011-03-14 13:47:17 +00:00
|
|
|
RELEASE_TARGETS= ftp
|
2012-03-08 01:47:12 +00:00
|
|
|
IMAGES=
|
2011-03-14 13:47:17 +00:00
|
|
|
.if exists(${.CURDIR}/${TARGET}/mkisoimages.sh)
|
|
|
|
RELEASE_TARGETS+= cdrom
|
2013-07-22 12:07:57 +00:00
|
|
|
IMAGES+= disc1.iso bootonly.iso
|
2013-12-05 00:56:03 +00:00
|
|
|
. if defined(WITH_DVD) && !empty(WITH_DVD)
|
2013-11-18 16:25:56 +00:00
|
|
|
RELEASE_TARGETS+= dvdrom
|
|
|
|
IMAGES+= dvd1.iso
|
|
|
|
. endif
|
2002-10-21 14:21:08 +00:00
|
|
|
.endif
|
2011-03-14 13:47:17 +00:00
|
|
|
.if exists(${.CURDIR}/${TARGET}/make-memstick.sh)
|
2013-07-21 05:23:34 +00:00
|
|
|
RELEASE_TARGETS+= memstick.img
|
2013-11-07 18:53:55 +00:00
|
|
|
RELEASE_TARGETS+= mini-memstick.img
|
2013-07-21 05:23:34 +00:00
|
|
|
IMAGES+= memstick.img
|
2013-11-07 18:53:55 +00:00
|
|
|
IMAGES+= mini-memstick.img
|
2002-11-01 20:53:50 +00:00
|
|
|
.endif
|
Overhaul our boot floppy generation system so that it scales better and
requires minimal care and feeding for future releases.
- Consolidate multitude of floppy related constants down to a normal
FLOPPY set for 1.44 floppies and on PC98 a SMALLFLOPPY set for 1.2
floppies. Also, cleanup the i386 arch section by not duplicating
constants that are the same on both machine types (i386 and pc98).
- Update the ZIPNSPLIT macro to generate a file chunks that will actually
fit onto 1.44 floppies formatted with UFS1. Unfortunately, split(1)
seems to be somewhat buggy, so the files generated are slightly larger
than the argument passed to split.
- Split the release.10 target into 3 targers: floppies.1, floppies.2 and
floppies.3 that are added to EXTRAS only if NOFLOPPIES is defined.
floppies.1 builds the install floppies, floppies.2 builds the fixit
floppy, and floppies.3 generates the md5 sums and READMEs for the
floppies/ directory.
- Drop the by now largely obsolete and less useful boot.flp picture. This
was more useful when the mfsroot lived inside the kernel rather than
being loaded from a separate file by the loader.
- Only build a single mfsroot containing no modules that is used for all
installation methods.
- Use split-file.sh to split up a gzipped GENERIC kernel into however many
floppies it takes for the boot kernel. Currently, a stock 5.2 GENERIC
kernel including WITNESS, INVARIANTS, DDB, and other assorted bloat fits
onto 2 additional floppies besides the boot floppy with some room to
spare.
- If SPLIT_MFSROOT is defined, the mfsroot.gz file is similar split into
however many floppies are needed. Currently it is not defined as the
mfsroot.gz fits onto the current boot.flp with room to spare.
- Add a 'makeFloppySet' target which builds a floppy set for a file that
was split using split-file.sh.
- Rename the doMFSKERN target to 'buildBootFloppy' as that more closely
matches what it does now. We no longer build a custom BOOTMFS kernel for
each boot floppy.
- We no longer build a 2.88 boot.flp image to use with emulated CD booting.
The non-emulated cdboot works for almost everyone who boots off of CD and
if it doesn't work on a particular machine, the user can always boot from
the 1.44 floppy images.
- We no longer build a driver floppy or stick kernel modules in the mfsroot
since we now use a stock kernel when booting from floppy.
2004-01-26 19:58:38 +00:00
|
|
|
|
Initial commit to include virtual machine images as part
of the FreeBSD release builds.
This adds a make(1) environment variable requirement,
WITH_VMIMAGES, which triggers the virtual machine image
targets when not defined to an empty value.
Relevant user-driven variables include:
o VMFORMATS: The virtual machine image formats to create.
Valid formats are provided by running 'mkimg --formats'
o VMSIZE: The size of the resulting virtual machine
image. Typical compression is roughly 140Mb, regardless
of the target size (10GB, 15GB, 20GB, 40GB sizes have been
tested with the same result).
o VMBASE: The prefix of the virtual machine disk images.
The VMBASE make(1) environment variable is suffixed with
each format in VMFORMATS for each individual disk image, as
well as '.img' for the source UFS filesystem passed to
mkimg(1).
This also includes a new script, mk-vmimage.sh, based on how
the VM images for 10.0-RELEASE, 9.3-RELEASE, and 10.1-RELEASE
were created (mk-vmimage.sh in ^/user/gjb/thermite/).
With the order in which the stages need to occur, as well as
sanity-checking error cases, it makes much more sense to
execute a shell script called from make(1), using env(1) to
set specific parameters for the target image than it does to
do this in make(1) directly.
Sponsored by: The FreeBSD Foundation
2014-09-28 01:45:20 +00:00
|
|
|
VMTARGETS= vm-base vm-image
|
|
|
|
VMFORMATS?= vhd vmdk qcow2 raw
|
|
|
|
VMSIZE?= 20G # size in Gb
|
|
|
|
VMBASE?= vm # name of the filesystem image
|
|
|
|
|
2013-12-01 15:24:35 +00:00
|
|
|
CLEANFILES= packagesystem *.txz MANIFEST system ${IMAGES}
|
2014-04-01 22:54:54 +00:00
|
|
|
.if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES)
|
|
|
|
. for I in ${IMAGES}
|
2014-04-02 16:53:07 +00:00
|
|
|
CLEANFILES+= ${I}.xz
|
2014-04-01 22:54:54 +00:00
|
|
|
. endfor
|
|
|
|
.endif
|
2014-06-10 15:20:41 +00:00
|
|
|
.if defined(WITH_DVD) && !empty(WITH_DVD)
|
2014-06-10 15:19:28 +00:00
|
|
|
CLEANFILES+= pkg-stage
|
2014-06-10 15:20:41 +00:00
|
|
|
.endif
|
Initial commit to include virtual machine images as part
of the FreeBSD release builds.
This adds a make(1) environment variable requirement,
WITH_VMIMAGES, which triggers the virtual machine image
targets when not defined to an empty value.
Relevant user-driven variables include:
o VMFORMATS: The virtual machine image formats to create.
Valid formats are provided by running 'mkimg --formats'
o VMSIZE: The size of the resulting virtual machine
image. Typical compression is roughly 140Mb, regardless
of the target size (10GB, 15GB, 20GB, 40GB sizes have been
tested with the same result).
o VMBASE: The prefix of the virtual machine disk images.
The VMBASE make(1) environment variable is suffixed with
each format in VMFORMATS for each individual disk image, as
well as '.img' for the source UFS filesystem passed to
mkimg(1).
This also includes a new script, mk-vmimage.sh, based on how
the VM images for 10.0-RELEASE, 9.3-RELEASE, and 10.1-RELEASE
were created (mk-vmimage.sh in ^/user/gjb/thermite/).
With the order in which the stages need to occur, as well as
sanity-checking error cases, it makes much more sense to
execute a shell script called from make(1), using env(1) to
set specific parameters for the target image than it does to
do this in make(1) directly.
Sponsored by: The FreeBSD Foundation
2014-09-28 01:45:20 +00:00
|
|
|
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
|
|
|
|
CLEANFILES+= ${VMBASE}.img
|
|
|
|
. for FORMAT in ${VMFORMATS}
|
2014-09-28 01:53:02 +00:00
|
|
|
CLEANFILES+= ${VMBASE}.${FORMAT}
|
Initial commit to include virtual machine images as part
of the FreeBSD release builds.
This adds a make(1) environment variable requirement,
WITH_VMIMAGES, which triggers the virtual machine image
targets when not defined to an empty value.
Relevant user-driven variables include:
o VMFORMATS: The virtual machine image formats to create.
Valid formats are provided by running 'mkimg --formats'
o VMSIZE: The size of the resulting virtual machine
image. Typical compression is roughly 140Mb, regardless
of the target size (10GB, 15GB, 20GB, 40GB sizes have been
tested with the same result).
o VMBASE: The prefix of the virtual machine disk images.
The VMBASE make(1) environment variable is suffixed with
each format in VMFORMATS for each individual disk image, as
well as '.img' for the source UFS filesystem passed to
mkimg(1).
This also includes a new script, mk-vmimage.sh, based on how
the VM images for 10.0-RELEASE, 9.3-RELEASE, and 10.1-RELEASE
were created (mk-vmimage.sh in ^/user/gjb/thermite/).
With the order in which the stages need to occur, as well as
sanity-checking error cases, it makes much more sense to
execute a shell script called from make(1), using env(1) to
set specific parameters for the target image than it does to
do this in make(1) directly.
Sponsored by: The FreeBSD Foundation
2014-09-28 01:45:20 +00:00
|
|
|
. endfor
|
|
|
|
.endif
|
2013-12-01 15:24:35 +00:00
|
|
|
CLEANDIRS= dist ftp release bootonly dvd
|
Initial commit to include virtual machine images as part
of the FreeBSD release builds.
This adds a make(1) environment variable requirement,
WITH_VMIMAGES, which triggers the virtual machine image
targets when not defined to an empty value.
Relevant user-driven variables include:
o VMFORMATS: The virtual machine image formats to create.
Valid formats are provided by running 'mkimg --formats'
o VMSIZE: The size of the resulting virtual machine
image. Typical compression is roughly 140Mb, regardless
of the target size (10GB, 15GB, 20GB, 40GB sizes have been
tested with the same result).
o VMBASE: The prefix of the virtual machine disk images.
The VMBASE make(1) environment variable is suffixed with
each format in VMFORMATS for each individual disk image, as
well as '.img' for the source UFS filesystem passed to
mkimg(1).
This also includes a new script, mk-vmimage.sh, based on how
the VM images for 10.0-RELEASE, 9.3-RELEASE, and 10.1-RELEASE
were created (mk-vmimage.sh in ^/user/gjb/thermite/).
With the order in which the stages need to occur, as well as
sanity-checking error cases, it makes much more sense to
execute a shell script called from make(1), using env(1) to
set specific parameters for the target image than it does to
do this in make(1) directly.
Sponsored by: The FreeBSD Foundation
2014-09-28 01:45:20 +00:00
|
|
|
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
|
|
|
|
CLEANDIRS+= ${VMTARGETS}
|
|
|
|
.endif
|
2013-12-01 15:24:35 +00:00
|
|
|
beforeclean:
|
|
|
|
chflags -R noschg .
|
2011-03-14 13:47:17 +00:00
|
|
|
.include <bsd.obj.mk>
|
2013-12-01 15:24:35 +00:00
|
|
|
clean: beforeclean
|
2005-03-02 22:46:07 +00:00
|
|
|
|
2011-03-14 13:47:17 +00:00
|
|
|
base.txz:
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p ${DISTDIR}
|
|
|
|
cd ${WORLDDIR} && ${IMAKE} distributeworld DISTDIR=${.OBJDIR}/${DISTDIR}
|
2011-03-14 13:47:17 +00:00
|
|
|
# Set up mergemaster root database
|
2011-08-18 16:54:04 +00:00
|
|
|
sh ${.CURDIR}/scripts/mm-mtree.sh -m ${WORLDDIR} -F \
|
2012-03-08 01:47:12 +00:00
|
|
|
"TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET}" -D "${.OBJDIR}/${DISTDIR}/base"
|
2013-12-22 16:12:47 +00:00
|
|
|
etcupdate extract -B -M "TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET}" \
|
2014-02-17 12:29:17 +00:00
|
|
|
-s ${WORLDDIR} -d "${.OBJDIR}/${DISTDIR}/base/var/db/etcupdate"
|
2011-07-09 23:01:54 +00:00
|
|
|
# Package all components
|
2012-03-08 01:47:12 +00:00
|
|
|
cd ${WORLDDIR} && ${IMAKE} packageworld DISTDIR=${.OBJDIR}/${DISTDIR}
|
|
|
|
mv ${DISTDIR}/*.txz .
|
2011-03-14 13:47:17 +00:00
|
|
|
|
|
|
|
kernel.txz:
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p ${DISTDIR}
|
|
|
|
cd ${WORLDDIR} && ${IMAKE} distributekernel packagekernel DISTDIR=${.OBJDIR}/${DISTDIR}
|
|
|
|
mv ${DISTDIR}/kernel*.txz .
|
2011-03-14 13:47:17 +00:00
|
|
|
|
|
|
|
src.txz:
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p ${DISTDIR}/usr
|
2011-03-14 13:47:17 +00:00
|
|
|
ln -fs ${WORLDDIR} ${DISTDIR}/usr/src
|
2012-11-11 21:52:18 +00:00
|
|
|
cd ${DISTDIR} && tar cLvJf ${.OBJDIR}/src.txz --exclude .svn --exclude .zfs \
|
2014-02-26 00:52:01 +00:00
|
|
|
--exclude .git --exclude @ --exclude usr/src/release/dist usr/src
|
2011-03-14 13:47:17 +00:00
|
|
|
|
|
|
|
ports.txz:
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p ${DISTDIR}/usr
|
2011-03-14 13:47:17 +00:00
|
|
|
ln -fs ${PORTSDIR} ${DISTDIR}/usr/ports
|
|
|
|
cd ${DISTDIR} && tar cLvJf ${.OBJDIR}/ports.txz \
|
2014-02-26 00:52:01 +00:00
|
|
|
--exclude .git --exclude .svn \
|
2011-03-14 13:47:17 +00:00
|
|
|
--exclude usr/ports/distfiles --exclude usr/ports/packages \
|
|
|
|
--exclude 'usr/ports/INDEX*' --exclude work usr/ports
|
|
|
|
|
|
|
|
reldoc:
|
|
|
|
cd ${.CURDIR}/doc && ${MAKE} all install clean 'FORMATS=html txt' \
|
|
|
|
INSTALL_COMPRESSED='' URLS_ABSOLUTE=YES DOCDIR=${.OBJDIR}/rdoc
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p reldoc
|
2011-03-14 13:47:17 +00:00
|
|
|
.for i in hardware readme relnotes errata
|
2013-06-02 11:44:23 +00:00
|
|
|
ln -f rdoc/${RELNOTES_LANG}/${i}/article.txt reldoc/${i:tu}.TXT
|
|
|
|
ln -f rdoc/${RELNOTES_LANG}/${i}/article.html reldoc/${i:tu}.HTM
|
2011-03-14 13:47:17 +00:00
|
|
|
.endfor
|
2012-03-08 01:47:12 +00:00
|
|
|
cp rdoc/${RELNOTES_LANG}/readme/docbook.css reldoc
|
2011-03-14 13:47:17 +00:00
|
|
|
|
|
|
|
system: packagesystem
|
|
|
|
# Install system
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p release
|
2011-06-15 23:38:15 +00:00
|
|
|
cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \
|
2014-06-14 01:03:24 +00:00
|
|
|
DESTDIR=${.OBJDIR}/release MK_RESCUE=no MK_KERNEL_SYMBOLS=no \
|
Merge ^/projects/release-debugdist into ^/head:
r262491, r262493, r262516, r267345, r267397:
r262491:
Add DEBUG_DISTRIBUTIONS, and set it to include base and
EXTRA_DISTRIBUTIONS, excluding 'doc', since the documentation
distribution does not have corresponding debug information.
Use DEBUG_DISTRIBUTIONS in the 'distributeworld installworld'
and 'packageworld' targets, to reduce the number of occurances
of excluding distributions that do not have .debug files.
r262493:
In release/Makefile, explicitly set WITHOUT_DEBUG_FILES=1
for dvdrom and cdrom targets. (Later reverted.)
Exclude the *.debug.txz distributions from dvdrom and
cdrom images, but include them for ftp distribution.
r262516:
Rename ${dist}.debug.txz to ${dist}-dbg.txz to prevent the
following output:
eval: ${base....}: Bad substitution
eval: ${doc....}: Bad substitution
eval: ${games....}: Bad substitution
eval: ${lib32....}: Bad substitution
This also follows other naming conventions seen in the
wild.
r267345:
Explicitly set MK_DEBUG_FILES=no, which overrides the
WITH_DEBUG_FILES=1 and WITHOUT_DEBUG_FILES=1 collisions
previously experienced.
This change allows us to create the {base,kernel}_debug.txz
distributions without accidentally installing the *.debug
files on the medium itself.
r267397:
Remove evaluations of MK_DEBUG_FILES where not needed.
If DEBUG_DISTRIBUTIONS is empty, which is true if
MK_DEBUG_FILES evaluates to 'no' above, the loop does
nothing.
MFC after: 1 month
Tested on: head@r267801
Reviewed by: brooks [1], emaste, imp [1]
[1] earlier version
Sponsored by: The FreeBSD Foundation
2014-07-01 19:04:04 +00:00
|
|
|
MK_PROFILE=no MK_SENDMAIL=no MK_TESTS=no MK_LIB32=no \
|
|
|
|
MK_DEBUG_FILES=no
|
2011-03-14 13:47:17 +00:00
|
|
|
# Copy distfiles
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p release/usr/freebsd-dist
|
Merge ^/projects/release-debugdist into ^/head:
r262491, r262493, r262516, r267345, r267397:
r262491:
Add DEBUG_DISTRIBUTIONS, and set it to include base and
EXTRA_DISTRIBUTIONS, excluding 'doc', since the documentation
distribution does not have corresponding debug information.
Use DEBUG_DISTRIBUTIONS in the 'distributeworld installworld'
and 'packageworld' targets, to reduce the number of occurances
of excluding distributions that do not have .debug files.
r262493:
In release/Makefile, explicitly set WITHOUT_DEBUG_FILES=1
for dvdrom and cdrom targets. (Later reverted.)
Exclude the *.debug.txz distributions from dvdrom and
cdrom images, but include them for ftp distribution.
r262516:
Rename ${dist}.debug.txz to ${dist}-dbg.txz to prevent the
following output:
eval: ${base....}: Bad substitution
eval: ${doc....}: Bad substitution
eval: ${games....}: Bad substitution
eval: ${lib32....}: Bad substitution
This also follows other naming conventions seen in the
wild.
r267345:
Explicitly set MK_DEBUG_FILES=no, which overrides the
WITH_DEBUG_FILES=1 and WITHOUT_DEBUG_FILES=1 collisions
previously experienced.
This change allows us to create the {base,kernel}_debug.txz
distributions without accidentally installing the *.debug
files on the medium itself.
r267397:
Remove evaluations of MK_DEBUG_FILES where not needed.
If DEBUG_DISTRIBUTIONS is empty, which is true if
MK_DEBUG_FILES evaluates to 'no' above, the loop does
nothing.
MFC after: 1 month
Tested on: head@r267801
Reviewed by: brooks [1], emaste, imp [1]
[1] earlier version
Sponsored by: The FreeBSD Foundation
2014-07-01 19:04:04 +00:00
|
|
|
for dist in MANIFEST $$(ls *.txz | grep -v -- '-dbg'); \
|
|
|
|
do cp $${dist} release/usr/freebsd-dist; \
|
|
|
|
done
|
2011-03-14 13:47:17 +00:00
|
|
|
# Copy documentation, if generated
|
2006-11-16 23:09:35 +00:00
|
|
|
.if !defined(NODOC)
|
2012-03-08 01:47:12 +00:00
|
|
|
cp reldoc/* release
|
2003-03-17 05:46:10 +00:00
|
|
|
.endif
|
2011-03-14 13:47:17 +00:00
|
|
|
# Set up installation environment
|
2013-02-03 10:26:24 +00:00
|
|
|
ln -fs /tmp/bsdinstall_etc/resolv.conf release/etc/resolv.conf
|
2012-03-08 01:47:12 +00:00
|
|
|
echo sendmail_enable=\"NONE\" > release/etc/rc.conf
|
|
|
|
echo hostid_enable=\"NO\" >> release/etc/rc.conf
|
2014-04-27 16:40:40 +00:00
|
|
|
echo debug.witness.trace=0 >> release/etc/sysctl.conf
|
2012-03-08 01:47:12 +00:00
|
|
|
cp ${.CURDIR}/rc.local release/etc
|
|
|
|
touch ${.TARGET}
|
2001-07-23 09:01:46 +00:00
|
|
|
|
2011-03-27 23:46:12 +00:00
|
|
|
bootonly: packagesystem
|
|
|
|
# Install system
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p bootonly
|
2011-03-27 23:46:12 +00:00
|
|
|
cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \
|
2014-06-14 01:03:24 +00:00
|
|
|
DESTDIR=${.OBJDIR}/bootonly MK_AMD=no MK_AT=no \
|
|
|
|
MK_GAMES=no MK_GROFF=no \
|
|
|
|
MK_INSTALLLIB=no MK_LIB32=no MK_MAIL=no \
|
|
|
|
MK_NCP=no MK_TOOLCHAIN=no MK_PROFILE=no \
|
|
|
|
MK_INSTALLIB=no MK_RESCUE=no MK_DICT=no \
|
Merge ^/projects/release-debugdist into ^/head:
r262491, r262493, r262516, r267345, r267397:
r262491:
Add DEBUG_DISTRIBUTIONS, and set it to include base and
EXTRA_DISTRIBUTIONS, excluding 'doc', since the documentation
distribution does not have corresponding debug information.
Use DEBUG_DISTRIBUTIONS in the 'distributeworld installworld'
and 'packageworld' targets, to reduce the number of occurances
of excluding distributions that do not have .debug files.
r262493:
In release/Makefile, explicitly set WITHOUT_DEBUG_FILES=1
for dvdrom and cdrom targets. (Later reverted.)
Exclude the *.debug.txz distributions from dvdrom and
cdrom images, but include them for ftp distribution.
r262516:
Rename ${dist}.debug.txz to ${dist}-dbg.txz to prevent the
following output:
eval: ${base....}: Bad substitution
eval: ${doc....}: Bad substitution
eval: ${games....}: Bad substitution
eval: ${lib32....}: Bad substitution
This also follows other naming conventions seen in the
wild.
r267345:
Explicitly set MK_DEBUG_FILES=no, which overrides the
WITH_DEBUG_FILES=1 and WITHOUT_DEBUG_FILES=1 collisions
previously experienced.
This change allows us to create the {base,kernel}_debug.txz
distributions without accidentally installing the *.debug
files on the medium itself.
r267397:
Remove evaluations of MK_DEBUG_FILES where not needed.
If DEBUG_DISTRIBUTIONS is empty, which is true if
MK_DEBUG_FILES evaluates to 'no' above, the loop does
nothing.
MFC after: 1 month
Tested on: head@r267801
Reviewed by: brooks [1], emaste, imp [1]
[1] earlier version
Sponsored by: The FreeBSD Foundation
2014-07-01 19:04:04 +00:00
|
|
|
MK_KERNEL_SYMBOLS=no MK_TESTS=no MK_DEBUG_FILES=no
|
2011-03-27 23:46:12 +00:00
|
|
|
# Copy manifest only (no distfiles) to get checksums
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p bootonly/usr/freebsd-dist
|
|
|
|
cp MANIFEST bootonly/usr/freebsd-dist
|
2011-03-27 23:46:12 +00:00
|
|
|
# Copy documentation, if generated
|
|
|
|
.if !defined(NODOC)
|
2012-03-08 01:47:12 +00:00
|
|
|
cp reldoc/* bootonly
|
2011-03-27 23:46:12 +00:00
|
|
|
.endif
|
|
|
|
# Set up installation environment
|
2013-02-03 10:26:24 +00:00
|
|
|
ln -fs /tmp/bsdinstall_etc/resolv.conf bootonly/etc/resolv.conf
|
2012-03-08 01:47:12 +00:00
|
|
|
echo sendmail_enable=\"NONE\" > bootonly/etc/rc.conf
|
|
|
|
echo hostid_enable=\"NO\" >> bootonly/etc/rc.conf
|
2014-04-27 16:40:40 +00:00
|
|
|
echo debug.witness.trace=0 >> bootonly/etc/sysctl.conf
|
2012-03-08 01:47:12 +00:00
|
|
|
cp ${.CURDIR}/rc.local bootonly/etc
|
2011-03-27 23:46:12 +00:00
|
|
|
|
2013-11-18 16:25:56 +00:00
|
|
|
dvd:
|
|
|
|
# Install system
|
|
|
|
mkdir -p ${.TARGET}
|
|
|
|
cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \
|
2014-06-14 01:03:24 +00:00
|
|
|
DESTDIR=${.OBJDIR}/${.TARGET} MK_RESCUE=no MK_KERNEL_SYMBOLS=no \
|
Merge ^/projects/release-debugdist into ^/head:
r262491, r262493, r262516, r267345, r267397:
r262491:
Add DEBUG_DISTRIBUTIONS, and set it to include base and
EXTRA_DISTRIBUTIONS, excluding 'doc', since the documentation
distribution does not have corresponding debug information.
Use DEBUG_DISTRIBUTIONS in the 'distributeworld installworld'
and 'packageworld' targets, to reduce the number of occurances
of excluding distributions that do not have .debug files.
r262493:
In release/Makefile, explicitly set WITHOUT_DEBUG_FILES=1
for dvdrom and cdrom targets. (Later reverted.)
Exclude the *.debug.txz distributions from dvdrom and
cdrom images, but include them for ftp distribution.
r262516:
Rename ${dist}.debug.txz to ${dist}-dbg.txz to prevent the
following output:
eval: ${base....}: Bad substitution
eval: ${doc....}: Bad substitution
eval: ${games....}: Bad substitution
eval: ${lib32....}: Bad substitution
This also follows other naming conventions seen in the
wild.
r267345:
Explicitly set MK_DEBUG_FILES=no, which overrides the
WITH_DEBUG_FILES=1 and WITHOUT_DEBUG_FILES=1 collisions
previously experienced.
This change allows us to create the {base,kernel}_debug.txz
distributions without accidentally installing the *.debug
files on the medium itself.
r267397:
Remove evaluations of MK_DEBUG_FILES where not needed.
If DEBUG_DISTRIBUTIONS is empty, which is true if
MK_DEBUG_FILES evaluates to 'no' above, the loop does
nothing.
MFC after: 1 month
Tested on: head@r267801
Reviewed by: brooks [1], emaste, imp [1]
[1] earlier version
Sponsored by: The FreeBSD Foundation
2014-07-01 19:04:04 +00:00
|
|
|
MK_TESTS=no MK_DEBUG_FILES=no
|
2013-11-18 16:25:56 +00:00
|
|
|
# Copy distfiles
|
|
|
|
mkdir -p ${.TARGET}/usr/freebsd-dist
|
Merge ^/projects/release-debugdist into ^/head:
r262491, r262493, r262516, r267345, r267397:
r262491:
Add DEBUG_DISTRIBUTIONS, and set it to include base and
EXTRA_DISTRIBUTIONS, excluding 'doc', since the documentation
distribution does not have corresponding debug information.
Use DEBUG_DISTRIBUTIONS in the 'distributeworld installworld'
and 'packageworld' targets, to reduce the number of occurances
of excluding distributions that do not have .debug files.
r262493:
In release/Makefile, explicitly set WITHOUT_DEBUG_FILES=1
for dvdrom and cdrom targets. (Later reverted.)
Exclude the *.debug.txz distributions from dvdrom and
cdrom images, but include them for ftp distribution.
r262516:
Rename ${dist}.debug.txz to ${dist}-dbg.txz to prevent the
following output:
eval: ${base....}: Bad substitution
eval: ${doc....}: Bad substitution
eval: ${games....}: Bad substitution
eval: ${lib32....}: Bad substitution
This also follows other naming conventions seen in the
wild.
r267345:
Explicitly set MK_DEBUG_FILES=no, which overrides the
WITH_DEBUG_FILES=1 and WITHOUT_DEBUG_FILES=1 collisions
previously experienced.
This change allows us to create the {base,kernel}_debug.txz
distributions without accidentally installing the *.debug
files on the medium itself.
r267397:
Remove evaluations of MK_DEBUG_FILES where not needed.
If DEBUG_DISTRIBUTIONS is empty, which is true if
MK_DEBUG_FILES evaluates to 'no' above, the loop does
nothing.
MFC after: 1 month
Tested on: head@r267801
Reviewed by: brooks [1], emaste, imp [1]
[1] earlier version
Sponsored by: The FreeBSD Foundation
2014-07-01 19:04:04 +00:00
|
|
|
for dist in MANIFEST $$(ls *.txz | grep -v -- '-dbg'); \
|
|
|
|
do cp $${dist} ${.TARGET}/usr/freebsd-dist; \
|
|
|
|
done
|
2013-11-18 16:25:56 +00:00
|
|
|
# Copy documentation, if generated
|
|
|
|
.if !defined(NODOC)
|
|
|
|
cp reldoc/* ${.TARGET}
|
|
|
|
.endif
|
|
|
|
# Set up installation environment
|
|
|
|
ln -fs /tmp/bsdinstall_etc/resolv.conf ${.TARGET}/etc/resolv.conf
|
|
|
|
echo sendmail_enable=\"NONE\" > ${.TARGET}/etc/rc.conf
|
|
|
|
echo hostid_enable=\"NO\" >> ${.TARGET}/etc/rc.conf
|
2014-04-27 16:40:40 +00:00
|
|
|
echo debug.witness.trace=0 >> ${.TARGET}/etc/sysctl.conf
|
2013-11-18 16:25:56 +00:00
|
|
|
cp ${.CURDIR}/rc.local ${.TARGET}/etc
|
|
|
|
touch ${.TARGET}
|
|
|
|
|
2013-07-22 12:07:57 +00:00
|
|
|
release.iso: disc1.iso
|
|
|
|
disc1.iso: system
|
2012-03-08 01:47:12 +00:00
|
|
|
sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${.TARGET} release
|
1997-06-22 17:21:59 +00:00
|
|
|
|
2013-11-18 16:25:56 +00:00
|
|
|
dvd1.iso: dvd pkg-stage
|
|
|
|
sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${.TARGET} dvd
|
|
|
|
|
2011-03-27 23:46:12 +00:00
|
|
|
bootonly.iso: bootonly
|
2012-03-08 01:47:12 +00:00
|
|
|
sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${.TARGET} bootonly
|
2011-03-27 23:46:12 +00:00
|
|
|
|
2013-11-07 18:59:06 +00:00
|
|
|
memstick: memstick.img
|
2013-07-21 05:23:34 +00:00
|
|
|
memstick.img: system
|
2012-03-08 01:47:12 +00:00
|
|
|
sh ${.CURDIR}/${TARGET}/make-memstick.sh release ${.TARGET}
|
2001-04-27 21:28:02 +00:00
|
|
|
|
2013-11-07 18:53:55 +00:00
|
|
|
mini-memstick: mini-memstick.img
|
|
|
|
mini-memstick.img: system
|
|
|
|
sh ${.CURDIR}/${TARGET}/make-memstick.sh bootonly ${.TARGET}
|
|
|
|
|
2011-03-14 13:47:17 +00:00
|
|
|
packagesystem: base.txz kernel.txz ${EXTRA_PACKAGES}
|
2012-03-08 01:47:12 +00:00
|
|
|
sh ${.CURDIR}/scripts/make-manifest.sh *.txz > MANIFEST
|
2011-04-11 14:30:45 +00:00
|
|
|
touch ${.TARGET}
|
1995-02-26 01:35:32 +00:00
|
|
|
|
2013-11-18 16:25:56 +00:00
|
|
|
pkg-stage:
|
2014-01-16 16:12:09 +00:00
|
|
|
.if !defined(NOPKG)
|
|
|
|
env REPOS_DIR=${.CURDIR}/pkg_repos/ \
|
|
|
|
sh ${.CURDIR}/scripts/pkg-stage.sh
|
2013-12-15 20:38:07 +00:00
|
|
|
mkdir -p ${.OBJDIR}/dvd/packages/repos/
|
|
|
|
cp ${.CURDIR}/scripts/FreeBSD_install_cdrom.conf \
|
|
|
|
${.OBJDIR}/dvd/packages/repos/
|
2013-11-18 16:25:56 +00:00
|
|
|
.endif
|
2013-12-15 20:38:07 +00:00
|
|
|
touch ${.TARGET}
|
2013-11-18 16:25:56 +00:00
|
|
|
|
2013-07-22 12:07:57 +00:00
|
|
|
cdrom: disc1.iso bootonly.iso
|
2013-11-18 16:25:56 +00:00
|
|
|
dvdrom: dvd1.iso
|
2011-03-14 13:47:17 +00:00
|
|
|
ftp: packagesystem
|
2011-04-11 14:30:45 +00:00
|
|
|
rm -rf ftp
|
2012-03-08 01:47:12 +00:00
|
|
|
mkdir -p ftp
|
2011-04-11 14:30:45 +00:00
|
|
|
cp *.txz MANIFEST ftp
|
Overhaul our boot floppy generation system so that it scales better and
requires minimal care and feeding for future releases.
- Consolidate multitude of floppy related constants down to a normal
FLOPPY set for 1.44 floppies and on PC98 a SMALLFLOPPY set for 1.2
floppies. Also, cleanup the i386 arch section by not duplicating
constants that are the same on both machine types (i386 and pc98).
- Update the ZIPNSPLIT macro to generate a file chunks that will actually
fit onto 1.44 floppies formatted with UFS1. Unfortunately, split(1)
seems to be somewhat buggy, so the files generated are slightly larger
than the argument passed to split.
- Split the release.10 target into 3 targers: floppies.1, floppies.2 and
floppies.3 that are added to EXTRAS only if NOFLOPPIES is defined.
floppies.1 builds the install floppies, floppies.2 builds the fixit
floppy, and floppies.3 generates the md5 sums and READMEs for the
floppies/ directory.
- Drop the by now largely obsolete and less useful boot.flp picture. This
was more useful when the mfsroot lived inside the kernel rather than
being loaded from a separate file by the loader.
- Only build a single mfsroot containing no modules that is used for all
installation methods.
- Use split-file.sh to split up a gzipped GENERIC kernel into however many
floppies it takes for the boot kernel. Currently, a stock 5.2 GENERIC
kernel including WITNESS, INVARIANTS, DDB, and other assorted bloat fits
onto 2 additional floppies besides the boot floppy with some room to
spare.
- If SPLIT_MFSROOT is defined, the mfsroot.gz file is similar split into
however many floppies are needed. Currently it is not defined as the
mfsroot.gz fits onto the current boot.flp with room to spare.
- Add a 'makeFloppySet' target which builds a floppy set for a file that
was split using split-file.sh.
- Rename the doMFSKERN target to 'buildBootFloppy' as that more closely
matches what it does now. We no longer build a custom BOOTMFS kernel for
each boot floppy.
- We no longer build a 2.88 boot.flp image to use with emulated CD booting.
The non-emulated cdboot works for almost everyone who boots off of CD and
if it doesn't work on a particular machine, the user can always boot from
the 1.44 floppy images.
- We no longer build a driver floppy or stick kernel modules in the mfsroot
since we now use a stock kernel when booting from floppy.
2004-01-26 19:58:38 +00:00
|
|
|
|
2011-05-18 17:39:28 +00:00
|
|
|
release:
|
|
|
|
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj
|
|
|
|
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${RELEASE_TARGETS}
|
2014-09-28 17:53:10 +00:00
|
|
|
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
|
|
|
|
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${VMTARGETS}
|
|
|
|
.endif
|
Overhaul our boot floppy generation system so that it scales better and
requires minimal care and feeding for future releases.
- Consolidate multitude of floppy related constants down to a normal
FLOPPY set for 1.44 floppies and on PC98 a SMALLFLOPPY set for 1.2
floppies. Also, cleanup the i386 arch section by not duplicating
constants that are the same on both machine types (i386 and pc98).
- Update the ZIPNSPLIT macro to generate a file chunks that will actually
fit onto 1.44 floppies formatted with UFS1. Unfortunately, split(1)
seems to be somewhat buggy, so the files generated are slightly larger
than the argument passed to split.
- Split the release.10 target into 3 targers: floppies.1, floppies.2 and
floppies.3 that are added to EXTRAS only if NOFLOPPIES is defined.
floppies.1 builds the install floppies, floppies.2 builds the fixit
floppy, and floppies.3 generates the md5 sums and READMEs for the
floppies/ directory.
- Drop the by now largely obsolete and less useful boot.flp picture. This
was more useful when the mfsroot lived inside the kernel rather than
being loaded from a separate file by the loader.
- Only build a single mfsroot containing no modules that is used for all
installation methods.
- Use split-file.sh to split up a gzipped GENERIC kernel into however many
floppies it takes for the boot kernel. Currently, a stock 5.2 GENERIC
kernel including WITNESS, INVARIANTS, DDB, and other assorted bloat fits
onto 2 additional floppies besides the boot floppy with some room to
spare.
- If SPLIT_MFSROOT is defined, the mfsroot.gz file is similar split into
however many floppies are needed. Currently it is not defined as the
mfsroot.gz fits onto the current boot.flp with room to spare.
- Add a 'makeFloppySet' target which builds a floppy set for a file that
was split using split-file.sh.
- Rename the doMFSKERN target to 'buildBootFloppy' as that more closely
matches what it does now. We no longer build a custom BOOTMFS kernel for
each boot floppy.
- We no longer build a 2.88 boot.flp image to use with emulated CD booting.
The non-emulated cdboot works for almost everyone who boots off of CD and
if it doesn't work on a particular machine, the user can always boot from
the 1.44 floppy images.
- We no longer build a driver floppy or stick kernel modules in the mfsroot
since we now use a stock kernel when booting from floppy.
2004-01-26 19:58:38 +00:00
|
|
|
|
2011-04-11 14:30:45 +00:00
|
|
|
install:
|
2012-03-08 01:47:12 +00:00
|
|
|
.if defined(DESTDIR) && !empty(DESTDIR)
|
|
|
|
mkdir -p ${DESTDIR}
|
|
|
|
.endif
|
2013-02-03 10:26:24 +00:00
|
|
|
cp -a ftp ${DESTDIR}/
|
|
|
|
.for I in ${IMAGES}
|
|
|
|
cp -p ${I} ${DESTDIR}/${OSRELEASE}-${I}
|
2014-04-01 22:52:27 +00:00
|
|
|
. if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES)
|
2014-04-03 12:04:05 +00:00
|
|
|
${XZCMD} -k ${DESTDIR}/${OSRELEASE}-${I}
|
2014-04-01 22:41:26 +00:00
|
|
|
. endif
|
2013-02-03 10:26:24 +00:00
|
|
|
.endfor
|
|
|
|
cd ${DESTDIR} && sha256 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA256
|
|
|
|
cd ${DESTDIR} && md5 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.MD5
|
Initial commit to include virtual machine images as part
of the FreeBSD release builds.
This adds a make(1) environment variable requirement,
WITH_VMIMAGES, which triggers the virtual machine image
targets when not defined to an empty value.
Relevant user-driven variables include:
o VMFORMATS: The virtual machine image formats to create.
Valid formats are provided by running 'mkimg --formats'
o VMSIZE: The size of the resulting virtual machine
image. Typical compression is roughly 140Mb, regardless
of the target size (10GB, 15GB, 20GB, 40GB sizes have been
tested with the same result).
o VMBASE: The prefix of the virtual machine disk images.
The VMBASE make(1) environment variable is suffixed with
each format in VMFORMATS for each individual disk image, as
well as '.img' for the source UFS filesystem passed to
mkimg(1).
This also includes a new script, mk-vmimage.sh, based on how
the VM images for 10.0-RELEASE, 9.3-RELEASE, and 10.1-RELEASE
were created (mk-vmimage.sh in ^/user/gjb/thermite/).
With the order in which the stages need to occur, as well as
sanity-checking error cases, it makes much more sense to
execute a shell script called from make(1), using env(1) to
set specific parameters for the target image than it does to
do this in make(1) directly.
Sponsored by: The FreeBSD Foundation
2014-09-28 01:45:20 +00:00
|
|
|
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
|
|
|
|
mkdir -p ${DESTDIR}/vmimages
|
|
|
|
. for FORMAT in ${VMFORMATS}
|
|
|
|
cp -p ${VMBASE}.${FORMAT} \
|
|
|
|
${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT}
|
|
|
|
. endfor
|
|
|
|
. if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES)
|
|
|
|
# This is very time consuming, so defer it after the images are moved to
|
|
|
|
# the DESTDIR.
|
|
|
|
. for FORMAT in ${VMFORMATS}
|
|
|
|
# Don't keep the originals. There is a copy in ${.OBJDIR} if needed.
|
|
|
|
${XZCMD} ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT}
|
|
|
|
. endfor
|
|
|
|
. endif
|
|
|
|
cd ${DESTDIR}/vmimages && sha256 ${OSRELEASE}* > \
|
|
|
|
${DESTDIR}/vmimages/CHECKSUM.SHA256
|
|
|
|
cd ${DESTDIR}/vmimages && md5 ${OSRELEASE}* > \
|
|
|
|
${DESTDIR}/vmimages/CHECKSUM.MD5
|
|
|
|
.endif
|
|
|
|
|
|
|
|
vm-base:
|
|
|
|
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
|
2014-10-01 19:25:02 +00:00
|
|
|
. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh)
|
2014-10-01 19:13:42 +00:00
|
|
|
env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
|
|
|
|
${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
|
|
|
|
${VMBASE}.img ${WORLDDIR} ${.OBJDIR}/${.TARGET} ${VMSIZE}
|
2014-10-01 19:25:02 +00:00
|
|
|
. endif
|
Initial commit to include virtual machine images as part
of the FreeBSD release builds.
This adds a make(1) environment variable requirement,
WITH_VMIMAGES, which triggers the virtual machine image
targets when not defined to an empty value.
Relevant user-driven variables include:
o VMFORMATS: The virtual machine image formats to create.
Valid formats are provided by running 'mkimg --formats'
o VMSIZE: The size of the resulting virtual machine
image. Typical compression is roughly 140Mb, regardless
of the target size (10GB, 15GB, 20GB, 40GB sizes have been
tested with the same result).
o VMBASE: The prefix of the virtual machine disk images.
The VMBASE make(1) environment variable is suffixed with
each format in VMFORMATS for each individual disk image, as
well as '.img' for the source UFS filesystem passed to
mkimg(1).
This also includes a new script, mk-vmimage.sh, based on how
the VM images for 10.0-RELEASE, 9.3-RELEASE, and 10.1-RELEASE
were created (mk-vmimage.sh in ^/user/gjb/thermite/).
With the order in which the stages need to occur, as well as
sanity-checking error cases, it makes much more sense to
execute a shell script called from make(1), using env(1) to
set specific parameters for the target image than it does to
do this in make(1) directly.
Sponsored by: The FreeBSD Foundation
2014-09-28 01:45:20 +00:00
|
|
|
.endif
|
|
|
|
touch ${.TARGET}
|
|
|
|
|
|
|
|
vm-image: vm-base
|
|
|
|
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
|
2014-10-01 19:25:02 +00:00
|
|
|
. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh)
|
|
|
|
. for FORMAT in ${VMFORMATS}
|
2014-10-01 19:13:42 +00:00
|
|
|
env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
|
|
|
|
${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
|
|
|
|
${VMBASE}.img ${FORMAT} ${VMBASE}.${FORMAT}
|
2014-10-01 19:25:02 +00:00
|
|
|
. endfor
|
|
|
|
. endif
|
Initial commit to include virtual machine images as part
of the FreeBSD release builds.
This adds a make(1) environment variable requirement,
WITH_VMIMAGES, which triggers the virtual machine image
targets when not defined to an empty value.
Relevant user-driven variables include:
o VMFORMATS: The virtual machine image formats to create.
Valid formats are provided by running 'mkimg --formats'
o VMSIZE: The size of the resulting virtual machine
image. Typical compression is roughly 140Mb, regardless
of the target size (10GB, 15GB, 20GB, 40GB sizes have been
tested with the same result).
o VMBASE: The prefix of the virtual machine disk images.
The VMBASE make(1) environment variable is suffixed with
each format in VMFORMATS for each individual disk image, as
well as '.img' for the source UFS filesystem passed to
mkimg(1).
This also includes a new script, mk-vmimage.sh, based on how
the VM images for 10.0-RELEASE, 9.3-RELEASE, and 10.1-RELEASE
were created (mk-vmimage.sh in ^/user/gjb/thermite/).
With the order in which the stages need to occur, as well as
sanity-checking error cases, it makes much more sense to
execute a shell script called from make(1), using env(1) to
set specific parameters for the target image than it does to
do this in make(1) directly.
Sponsored by: The FreeBSD Foundation
2014-09-28 01:45:20 +00:00
|
|
|
.endif
|
|
|
|
touch ${.TARGET}
|