Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F97980923
D41705.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D41705.diff
View Options
diff --git a/release/Makefile b/release/Makefile
--- a/release/Makefile
+++ b/release/Makefile
@@ -7,13 +7,15 @@
# memstick: Builds memory stick image (memstick.img)
# mini-memstick: Builds minimal memory stick image (mini-memstick.img)
# ftp: Sets up FTP distribution area (ftp)
-# release: Invokes real-release, vm-release, and cloudware-release targets
+# release: Invokes real-release, vm-release, cloudware-release, and mfsbsd-release targets
# real-release: Build all media and FTP distribution area
# vm-release: Build all virtual machine image targets
# cloudware-release: Build all cloud hosting provider targets
-# install: Invokes the release-install and vm-install targets
+# mfsbsd-release: Build all mfsBSD image targets
+# install: Invokes the release-install, vm-install, and mfsbsd-install targets
# release-install: Copies all release installation media into ${DESTDIR}
# vm-install: Copies all virtual machine images into ${DESTDIR}
+# mfsbsd-install: Copies all mfsBSD images into ${DESTDIR}
#
# Variables affecting the build process:
# WORLDDIR: location of src tree -- must have built world and default kernel
@@ -30,6 +32,7 @@
# WITH_COMPRESSED_VMIMAGES: if set, compress virtual machine disk images
# with xz(1) (extremely time consuming)
# WITH_CLOUDWARE: if set, build cloud hosting disk images with the release
+# WITH_MFSBSD: if set, build mfsBSD images with the release
# TARGET/TARGET_ARCH: architecture of built release
#
@@ -113,7 +116,7 @@
beforeclean:
chflags -R noschg .
.include <bsd.obj.mk>
-clean: beforeclean
+clean: beforeclean mfsbsd-clean
base.txz:
mkdir -p ${DISTDIR}
@@ -312,7 +315,7 @@
mkdir -p ftp
cp *.txz MANIFEST ftp
-release: real-release vm-release cloudware-release
+release: real-release vm-release cloudware-release mfsbsd-release
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} release-done
true
@@ -323,7 +326,7 @@
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${RELEASE_TARGETS}
-install: release-install vm-install
+install: release-install vm-install mfsbsd-install
release-install:
.if defined(DESTDIR) && !empty(DESTDIR)
@@ -343,3 +346,4 @@
.include "${.CURDIR}/Makefile.inc1"
.include "${.CURDIR}/Makefile.vm"
+.include "${.CURDIR}/Makefile.mfsbsd"
diff --git a/release/Makefile.mfsbsd b/release/Makefile.mfsbsd
new file mode 100644
--- /dev/null
+++ b/release/Makefile.mfsbsd
@@ -0,0 +1,122 @@
+#
+# $FreeBSD$
+#
+#
+# Makefile for building mfsBSD images.
+#
+
+MFSBSD_TYPES?= mfsbsd-se
+MFSBSD_FORMATS?= img iso
+MFSBSD-SEIMG_DESC= Special edition mfsBSD .img file including base.txz and kernel.txz
+MFSBSD-SEISO_DESC= Special edition mfsBSD .iso file including base.txz and kernel.txz
+
+#
+# Paths
+#
+MFSBSD_DIR?= ${WORLDDIR}/contrib/mfsbsd
+MFSBSD_SRCDIR?= /usr/src
+MFSBSD_TMPDIR?= ${.OBJDIR}/../contrib/mfsbsd_tmp
+MFSBSD_WRKDIR?= ${MFSBSD_TMPDIR}/work
+MFSBSD_DISTDIR!= make -C ${MFSBSD_DIR} -V _DESTDIR WRKDIR=${MFSBSD_WRKDIR}
+MFSBSD_ROOTDIR!= make -C ${MFSBSD_DIR} -V _ROOTDIR WRKDIR=${MFSBSD_WRKDIR}
+MFSBSD_MKINCLUDEDIR?= /usr/share/mk
+
+#
+# Build defaults
+#
+MFSBSD_JOBS!= sysctl -n hw.ncpu
+MFSBSD_KERNCONF?= GENERIC
+MFSBSD_PKGSTATIC?= /usr/local/sbin/pkg-static
+
+.if defined(WITH_MFSBSD) && !empty(WITH_MFSBSD)
+CLEANDIRS+= ${MFSBSD_TMPDIR}
+. for TYPE in ${MFSBSD_TYPES}
+. for FORMAT in ${MFSBSD_FORMATS}
+CLEANFILES+= ${TYPE}.${FORMAT}
+. endfor
+. endfor
+.endif
+
+mfsbsd-base: mfsbsd-image
+
+mfsbsd-image:
+.if defined(WITH_MFSBSD) && !empty(WITH_MFSBSD)
+. for TYPE in ${MFSBSD_TYPES}
+. for FORMAT in ${MFSBSD_FORMATS}
+ ${IMAKE} ${.MAKEFLAGS} -C ${.CURDIR} ${TYPE}.${FORMAT}
+. endfor
+. endfor
+.endif
+
+mfsbsd-se.img: mfsbsd-before-build mfsbsd-build mfsbsd-build-install
+ cd ${MFSBSD_TMPDIR} && ${IMAKE} -m ${MFSBSD_MKINCLUDEDIR} \
+ ${.MAKEFLAGS} MAKEJOBS=${MFSBSD_JOBS} WRKDIR=${MFSBSD_WRKDIR} \
+ SE=1 IMAGE=${.TARGET} BASE=${.OBJDIR} image
+ install -m 0644 ${MFSBSD_TMPDIR}/${.TARGET} .
+
+mfsbsd-se.iso: mfsbsd-before-build mfsbsd-build mfsbsd-build-install
+ cd ${MFSBSD_TMPDIR} && ${IMAKE} -m ${MFSBSD_MKINCLUDEDIR} \
+ ${.MAKEFLAGS} MAKEJOBS=${MFSBSD_JOBS} WRKDIR=${MFSBSD_WRKDIR} \
+ SE=1 ISOIMAGE=${.TARGET} BASE=${.OBJDIR} iso
+ install -m 0644 ${MFSBSD_TMPDIR}/${.TARGET} .
+
+mfsbsd-before-build: ${MFSBSD_WRKDIR}/.tmp_done
+${MFSBSD_WRKDIR}/.tmp_done:
+# Copy mfsBSD source files to the temporary folder. This is necessary to
+# prevent mfsBSD build process from writing to the src contrib directory.
+ mkdir -p ${MFSBSD_WRKDIR}
+ cp -rpf ${MFSBSD_DIR}/. ${MFSBSD_TMPDIR}/
+ touch ${MFSBSD_WRKDIR}/.tmp_done
+.if !exists(${MFSBSD_PKGSTATIC})
+# If pkg-static is not present at the device, mfsBSD build process
+# cannot proceed further. Thus, creating .packages_done bypasses
+# that specific part of the build process that requires pkg-static.
+ touch ${MFSBSD_WRKDIR}/.packages_done
+.endif
+
+mfsbsd-build: ${MFSBSD_WRKDIR}/.build_done
+${MFSBSD_WRKDIR}/.build_done:
+ cd ${MFSBSD_SRCDIR} && ${IMAKE} \
+ ${.MAKEFLAGS} -j${MFSBSD_JOBS} buildworld buildkernel
+ touch ${MFSBSD_WRKDIR}/.build_done
+
+mfsbsd-build-install: ${MFSBSD_WRKDIR}/.install_done
+${MFSBSD_WRKDIR}/.install_done:
+ ${IMAKE} ${.MAKEFLAGS} -C ${.CURDIR} obj bootonly
+ cd ${MFSBSD_TMPDIR} && ${IMAKE} \
+ ${.MAKEFLAGS} MAKEJOBS=${MFSBSD_JOBS} WRKDIR=${MFSBSD_WRKDIR} \
+ KERNCONF=${MFSBSD_KERNCONF} \
+ SE=1 BASE=${.OBJDIR} install
+
+list-mfsbsd:
+ @${ECHO}
+ @${ECHO} "Supported mfsBSD image targets:"
+.for TYPE in ${MFSBSD_TYPES}
+. for FORMAT in ${MFSBSD_FORMATS}
+ @${ECHO} " ${TYPE}.${FORMAT}: ${${TYPE:tu}${FORMAT:tu}_DESC}"
+. endfor
+.endfor
+
+mfsbsd-install:
+.if defined(WITH_MFSBSD) && !empty(WITH_MFSBSD)
+ mkdir -p ${DESTDIR}/mfsbsdimages
+. for TYPE in ${MFSBSD_TYPES}
+. for FORMAT in ${MFSBSD_FORMATS}
+ install -m 0644 ${TYPE}.${FORMAT} \
+ ${DESTDIR}/mfsbsdimages/${OSRELEASE}-${TYPE}.${FORMAT}
+. endfor
+. endfor
+ cd ${DESTDIR}/mfsbsdimages && sha512 ${OSRELEASE}* > \
+ ${DESTDIR}/mfsbsdimages/CHECKSUM.SHA512
+ cd ${DESTDIR}/mfsbsdimages && sha256 ${OSRELEASE}* > \
+ ${DESTDIR}/mfsbsdimages/CHECKSUM.SHA256
+.endif
+
+mfsbsd-release:
+.if defined(WITH_MFSBSD) && !empty(WITH_MFSBSD)
+ ${IMAKE} -C ${.CURDIR} ${.MAKEFLAGS} mfsbsd-image
+.endif
+
+mfsbsd-clean:
+ cd ${MFSBSD_DIR} && env MAKEOBJDIR=${MFSBSD_TMPDIR} \
+ ${IMAKE} ${.MAKEFLAGS} WRKDIR=${MFSBSD_WRKDIR} clean-all
diff --git a/release/release.conf.sample b/release/release.conf.sample
--- a/release/release.conf.sample
+++ b/release/release.conf.sample
@@ -114,3 +114,10 @@
## If WITH_CLOUDWARE is set to a non-empty value, this is a list of providers
## to create disk images.
#CLOUDWARE="EC2 GCE OCI VAGRANT-VIRTUALBOX VAGRANT-VMWARE"
+
+## Set to a non-empty value to build mfsBSD images as part of the release build.
+#WITH_MFSBSD=
+
+## If WITH_MFSBSD is set to a non-empty value, this is a list of mfsBSD
+## image formats to create.
+#MFSBSD_FORMATS="img iso"
diff --git a/release/release.sh b/release/release.sh
--- a/release/release.sh
+++ b/release/release.sh
@@ -118,6 +118,9 @@
# cloud providers as part of the release.
WITH_CLOUDWARE=
+ # Set to non-empty value to build mfsBSD images as part of the release.
+ WITH_MFSBSD=
+
return 0
} # env_setup()
@@ -193,7 +196,8 @@
RELEASE_RMAKEFLAGS="${ARCH_FLAGS} \
KERNCONF=\"${KERNEL}\" ${CONF_FILES} ${SRCPORTS} \
WITH_DVD=${WITH_DVD} WITH_VMIMAGES=${WITH_VMIMAGES} \
- WITH_CLOUDWARE=${WITH_CLOUDWARE} XZ_THREADS=${XZ_THREADS}"
+ WITH_CLOUDWARE=${WITH_CLOUDWARE} WITH_MFSBSD=${WITH_MFSBSD} \
+ XZ_THREADS=${XZ_THREADS}"
return 0
} # env_check()
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Oct 2, 10:26 PM (21 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
13323379
Default Alt Text
D41705.diff (7 KB)
Attached To
Mode
D41705: release: Integrate mfsBSD image build targets into the release tool set
Attached
Detach File
Event Timeline
Log In to Comment