aboutsummaryrefslogtreecommitdiff
path: root/Makefile.inc1
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.inc1')
-rw-r--r--Makefile.inc1489
1 files changed, 324 insertions, 165 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index af9e4736a65a..9518d4034afc 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -198,13 +198,18 @@ _GCC_BROKEN=boot code linker script issues.
.endif
.if ${.MAKE.OS} != "FreeBSD"
-CROSSBUILD_HOST=${.MAKE.OS}
+CROSSBUILD_HOST=${.MAKE.OS} # Unset for native FreeBSD builds
.if ${.MAKE.OS} != "Linux" && ${.MAKE.OS} != "Darwin"
.warning Unsupported crossbuild system: ${.MAKE.OS}. Build will probably fail!
.endif
+.endif
# We need to force NO_ROOT/DB_FROM_SRC builds when building on other operating
# systems since the BSD.foo.dist specs contain users and groups that do not
-# exist by default on a Linux/MacOS system.
+# exist by default on a Linux/MacOS system. The distribute* and package*
+# targets used for install media legacy distribution sets also always use and
+# require NO_ROOT mode.
+.if defined(CROSSBUILD_HOST) || make(distributeworld) || make(packageworld) || \
+ make(distributekernel) || make(packagekernel)
NO_ROOT:= 1
DB_FROM_SRC:= 1
.export NO_ROOT
@@ -429,8 +434,12 @@ SUBDIR+=cddl
.endif
SUBDIR+=gnu include
.if ${MK_KERBEROS} != "no"
+.if ${MK_MITKRB5} != "no"
+SUBDIR+=krb5
+.else
SUBDIR+=kerberos5
.endif
+.endif
.if ${MK_RESCUE} != "no"
SUBDIR+=rescue
.endif
@@ -462,7 +471,7 @@ SUBDIR+= ${_DIR}
# by calling 'makedb' in share/man. This is only relevant for
# install/distribute so they build the whatis file after every manpage is
# installed.
-.if make(installworld) || make(install)
+.if make(installworld) || make(install) || make(distributeworld) || make(distribute)
SUBDIR+=.WAIT
.endif
SUBDIR+=etc
@@ -514,25 +523,6 @@ BUILDENV_SHELL?=/bin/sh
.endif
.if !defined(_MKSHOWCONFIG)
-.if !defined(VCS_REVISION) || empty(VCS_REVISION)
-.if !defined(SVNVERSION_CMD) || empty(SVNVERSION_CMD)
-. for _D in ${PATH:S,:, ,g}
-. if exists(${_D}/svnversion)
-SVNVERSION_CMD?=${_D}/svnversion
-. endif
-. if exists(${_D}/svnliteversion)
-SVNVERSION_CMD?=${_D}/svnliteversion
-. endif
-. endfor
-.endif
-.if defined(SVNVERSION_CMD) && !empty(SVNVERSION_CMD)
-_VCS_REVISION?= $$(eval ${SVNVERSION_CMD} ${SRCDIR})
-. if !empty(_VCS_REVISION)
-VCS_REVISION= $$(echo r${_VCS_REVISION})
-.export VCS_REVISION
-. endif
-.endif
-.endif
.if !defined(GIT_CMD) || empty(GIT_CMD)
. for _P in /usr/bin /usr/local/bin
@@ -581,10 +571,10 @@ BRANCH_EXT= ${MAJOR_REVISION}.snap
EXTRA_REVISION= .snap${_TIMENOW}
.elif ${_BRANCH:MALPHA*}
BRANCH_EXT= alpha
-EXTRA_REVISION= .${_BRANCH:C/ALPHA([0-9]+).*/\1/}.${_TIMENOW}
+EXTRA_REVISION= .a${_BRANCH:C/ALPHA([0-9]+).*/\1/}.${_TIMENOW}
.elif ${_BRANCH:MBETA*}
BRANCH_EXT= beta
-EXTRA_REVISION= .${_BRANCH:C/BETA([0-9]+).*/\1/}.${_TIMENOW}
+EXTRA_REVISION= .b${_BRANCH:C/BETA([0-9]+).*/\1/}.${_TIMENOW}
.elif ${_BRANCH:MRC*}
BRANCH_EXT= rc
EXTRA_REVISION= .rc${_BRANCH:C/RC([0-9]+).*/\1/}.${_TIMENOW}
@@ -594,9 +584,19 @@ EXTRA_REVISION= p${_BRANCH:C/.*-p([0-9]+$)/\1/}
.if !defined(PKG_VERSION)
PKG_VERSION:= ${_PKG_REVISION}${EXTRA_REVISION:C/[[:space:]]//g}
.endif
+
.endif # !defined(_MKSHOWCONFIG)
+PKG_NAME_PREFIX?= FreeBSD
+PKG_MAINTAINER?= re@FreeBSD.org
+PKG_WWW?= https://www.FreeBSD.org
+PKG_WORKERS_COUNT?= 1
+
.if make(*package*)
+.export PKG_NAME_PREFIX
+.export PKG_MAINTAINER
+.export PKG_WWW
+
.if !defined(PKG_TIMESTAMP)
.if !empty(GIT_CMD) && exists(${GIT_CMD}) && exists(${SRCDIR}/.git)
SOURCE_DATE_EPOCH!= ${GIT_CMD} -C ${SRCDIR} show -s --format=%ct HEAD
@@ -607,14 +607,6 @@ SOURCE_DATE_EPOCH= ${TIMEEPOCHNOW:gmtime}
.else
SOURCE_DATE_EPOCH= ${PKG_TIMESTAMP}
.endif
-PKG_WORKERS_COUNT?= 1
-
-PKG_NAME_PREFIX?= FreeBSD
-PKG_MAINTAINER?= re@FreeBSD.org
-PKG_WWW?= https://www.FreeBSD.org
-.export PKG_NAME_PREFIX
-.export PKG_MAINTAINER
-.export PKG_WWW
.endif
.if !defined(_MKSHOWCONFIG)
@@ -640,7 +632,10 @@ XPATH= ${WORLDTMP}/bin:${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin
# When building we want to find the cross tools before the host tools in ${BPATH}.
# We also need to add UNIVERSE_TOOLCHAIN_PATH so that we can find the shared
# toolchain files (clang, lld, etc.) during make universe/tinderbox
-STRICTTMPPATH= ${XPATH}:${BPATH}:${UNIVERSE_TOOLCHAIN_PATH}
+STRICTTMPPATH= ${XPATH}:${BPATH}
+.if defined(UNIVERSE_TOOLCHAIN_PATH)
+STRICTTMPPATH:=${STRICTTMPPATH}:${UNIVERSE_TOOLCHAIN_PATH}
+.endif
# We should not be using tools from /usr/bin accidentally since this could cause
# the build to break on other systems that don't have that tool. For now we
# still allow using the old behaviour (inheriting $PATH) if
@@ -767,7 +762,6 @@ BSARGS= DESTDIR= \
BOOTSTRAPPING=${BOOTSTRAPPING_OSRELDATE} \
BWPHASE=${.TARGET:C,^_,,} \
-DNO_CPU_CFLAGS \
- -DNO_LINT \
-DNO_PIC \
-DNO_SHARED \
MK_ASAN=no \
@@ -800,7 +794,6 @@ TMAKE= \
BOOTSTRAPPING=${BOOTSTRAPPING_OSRELDATE} \
BWPHASE=${.TARGET:C,^_,,} \
-DNO_CPU_CFLAGS \
- -DNO_LINT \
MK_ASAN=no \
MK_CTF=no \
MK_CLANG_EXTRAS=no \
@@ -817,6 +810,7 @@ TMAKE= \
# TOOLS_PREFIX set in BMAKE
XMAKE= ${BMAKE} \
TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
+ MK_CLANG=${MK_CLANG_BOOTSTRAP} \
MK_LLDB=no \
MK_LLVM_BINUTILS=no \
MK_TESTS=no
@@ -837,7 +831,6 @@ KTMAKE= ${TIME_ENV} \
MAKEOBJDIRPREFIX= \
BOOTSTRAPPING=${BOOTSTRAPPING_OSRELDATE} \
-DNO_CPU_CFLAGS \
- -DNO_LINT \
-DNO_PIC \
-DNO_SHARED \
MK_CTF=no \
@@ -1049,7 +1042,7 @@ DESTDIR_MTREE= ${DISTR_MTREECMD} ${DESTDIR_MTREEFLAGS}
METALOG_SORT_CMD= env -i LC_COLLATE=C sort
# kernel stage
-KMAKEENV= ${WMAKEENV:NSYSROOT=*}
+KMAKEENV= ${WMAKEENV}
KMAKE= ${TIME_ENV} ${KMAKEENV} ${MAKE} ${.MAKEFLAGS} ${KERNEL_FLAGS} KERNEL=${INSTKERNNAME}
#
@@ -1081,7 +1074,7 @@ _cleanobj_fast_depend_hack: .PHONY
@echo ">>> Deleting stale dependencies...";
MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH} \
ALL_libcompats=${_ALL_libcompats:Q} \
- sh ${.CURDIR}/tools/build/depend-cleanup.sh ${OBJTOP}
+ sh ${.CURDIR}/tools/build/depend-cleanup.sh ${OBJTOP} ${SRCTOP}
_cleanworldtmp: .PHONY
.if ${MK_CLEAN} == "yes"
@@ -1174,7 +1167,8 @@ _cleanobj:
${_+_}cd ${.CURDIR}; ${LIB${LIBCOMPAT}WMAKE} _NO_INCLUDE_COMPILERMK=t -f Makefile.inc1 ${CLEANDIR}
.endfor
.else
- ${_+_}cd ${.CURDIR}; ${WMAKE} _NO_INCLUDE_COMPILERMK=t _cleanobj_fast_depend_hack
+ ${_+_}cd ${.CURDIR}; env CLEANMK="_NO_INCLUDE_COMPILERMK=t ${CLEANDIR}" \
+ MAKE=${MAKE} ${WMAKE} _cleanobj_fast_depend_hack
.endif # ${MK_CLEAN} == "yes"
_obj:
@echo
@@ -1222,7 +1216,7 @@ _libraries:
@echo ">>> stage 4.2: building libraries"
@echo "--------------------------------------------------------------"
${_+_}cd ${.CURDIR}; \
- ${WMAKE} -DNO_FSCHG MK_HTML=no -DNO_LINT MK_MAN=no \
+ ${WMAKE} -DNO_FSCHG MK_HTML=no MK_MAN=no \
MK_TESTS=no MK_TESTS_SUPPORT=${MK_TESTS_SUPPORT} \
libraries
everything: .PHONY
@@ -1360,6 +1354,28 @@ __installcheck_DESTDIR: .PHONY
.endif
.endif
+#
+# Don't allow installworld or installkernel on a pkgbase system. This avoids
+# accidentally updating a pkgbase system with install{world,kernel}, causing
+# the installed system to become out of date with the package database.
+#
+# Skip the check if DESTDIR is defined on the assumption the user knows what
+# they're doing. This means the check can be disabled for the running system
+# using DESTDIR=/.
+#
+.if !make(distributeworld) && !defined(DESTDIR)
+_installcheck_world: __installcheck_PKG
+_installcheck_kernel: __installcheck_PKG
+__installcheck_PKG: .PHONY
+.if exists(${LOCALBASE}/sbin/pkg-static)
+ @if ${LOCALBASE}/sbin/pkg-static info -e ${PKG_NAME_PREFIX}-runtime; then \
+ echo >&2 "ERROR: This target should not be used on a system installed from packages." ; \
+ echo >&2 " To override this check, set DESTDIR=/."; \
+ false; \
+ fi
+.endif
+.endif
+
.if !defined(DB_FROM_SRC)
#
# Check for missing UIDs/GIDs.
@@ -1414,7 +1430,7 @@ _sysctl=sysctl
.endif
ITOOLS= [ awk cap_mkdb cat chflags chmod chown cmp cp \
- date echo egrep find grep id install ${_install-info} \
+ date echo egrep find grep id install \
ln make mkdir mtree mv pwd_mkdb \
rm sed services_mkdb sh sort strip ${_sysctl} test time true uname wc
@@ -1539,14 +1555,10 @@ distributeworld installworld stageworld: _installcheck_world .PHONY
.endif # make(distributeworld)
${_+_}cd ${.CURDIR}; ${IMAKE} re${.TARGET:S/world$//}; \
${IMAKEENV} rm -rf ${INSTALLTMP}
-.if !make(packageworld) && ${MK_CAROOT} != "no"
- @if which openssl>/dev/null; then \
- PATH=${TMPPATH:Q}:${PATH:Q} \
- LOCALBASE=${LOCALBASE:Q} \
- sh ${SRCTOP}/usr.sbin/certctl/certctl.sh ${CERTCTLFLAGS} rehash; \
- else \
- echo "No openssl on the host, not rehashing certificates target -- /etc/ssl may not be populated."; \
- fi
+.if !make(packageworld) && ${MK_CAROOT} != "no" && ${MK_OPENSSL} != "no"
+ PATH=${TMPPATH:Q}:${PATH:Q} \
+ LOCALBASE=${LOCALBASE:Q} \
+ certctl ${CERTCTLFLAGS} rehash
.endif
.if make(distributeworld)
.for dist in ${EXTRA_DISTRIBUTIONS}
@@ -1673,8 +1685,8 @@ buildetc: .MAKE .PHONY
${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 _legacy
${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 _bootstrap-tools \
MK_CROSS_COMPILER=no MK_TOOLCHAIN=no
- ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 _obj \
- SUBDIR_OVERRIDE=etc
+ ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 _obj
+ ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 buildconfig
${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 everything \
SUBDIR_OVERRIDE=etc
@@ -1937,7 +1949,6 @@ distributekernel distributekernel.debug: .PHONY
.endif
packagekernel: .PHONY
-.if defined(NO_ROOT)
.if !defined(NO_INSTALLKERNEL)
cd ${DESTDIR}/${DISTDIR}/kernel; \
${TAR_CMD} cvf - --exclude '*.debug' \
@@ -1964,30 +1975,6 @@ packagekernel: .PHONY
.endif
.endfor
.endif
-.else
-.if !defined(NO_INSTALLKERNEL)
- cd ${DESTDIR}/${DISTDIR}/kernel; \
- ${TAR_CMD} cvf - --exclude '*.debug' . | \
- ${XZ_CMD} > ${PACKAGEDIR}/kernel.txz
-.endif
-.if ${MK_DEBUG_FILES} != "no"
- cd ${DESTDIR}/${DISTDIR}/kernel; \
- ${TAR_CMD} cvf - --include '*/*/*.debug' $$(eval find .) | \
- ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel-dbg.txz
-.endif
-.if ${BUILDKERNELS:[#]} > 1 && ${NO_INSTALLEXTRAKERNELS} != "yes"
-.for _kernel in ${BUILDKERNELS:[2..-1]}
- cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
- ${TAR_CMD} cvf - --exclude '*.debug' . | \
- ${XZ_CMD} > ${PACKAGEDIR}/kernel.${_kernel}.txz
-.if ${MK_DEBUG_FILES} != "no"
- cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
- ${TAR_CMD} cvf - --include '*/*/*.debug' $$(eval find .) | \
- ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}-dbg.txz
-.endif
-.endfor
-.endif
-.endif
stagekernel: .PHONY
${_+_}${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} DISTDIR=. distributekernel
@@ -2000,6 +1987,7 @@ REPODIR?= ${OBJROOT}repo
PKG_FORMAT?= tzst
PKG_LEVEL?= -1
PKG_CLEVEL?= ${"${PKG_FORMAT:Mtar}" != "":?:-l ${PKG_LEVEL}}
+PKG_CTHREADS?= 0
PKG_REPO_SIGNING_KEY?= # empty
PKG_OUTPUT_DIR?= ${PKG_VERSION}
PKG_ABI_FILE?= ${WSTAGEDIR}/usr/bin/uname
@@ -2015,19 +2003,23 @@ PKG_ABI!= ${PKG_CMD} -o ABI_FILE=${PKG_ABI_FILE} config ABI
_pkgbootstrap: .PHONY
.if make(*package*) && !exists(${LOCALBASE}/sbin/pkg)
+.if defined(BOOTSTRAP_PKG_FROM_PORTS)
+ env - UNAME_r=${UNAME_r} PATH=$$PATH \
+ make -C ${PORTSDIR}/ports-mgmt/pkg \
+ I_DONT_CARE_IF_MY_BUILDS_TARGET_THE_WRONG_RELEASE=1 \
+ BATCH=1 WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles \
+ all install clean
+.else
@env ASSUME_ALWAYS_YES=YES pkg bootstrap
.endif
+.endif
PKG_BIN_VERSION!=${PKG_CMD} --version </dev/null 2>/dev/null |\
- awk -F. '/^[0-9.]+$$/ {print $$1 * 10000 + $$2 * 100 + $$3}'
-.if ${PKG_BIN_VERSION} < 11700
-PKG_EXT= ${PKG_FORMAT}
-.else
+ awk -F. '/^[0-9.]+(-.*)?$$/ {print $$1 * 10000 + $$2 * 100 + $$3}'
PKG_EXT= pkg
-.endif
-.if !defined(PKG_VERSION_FROM) && make(real-update-packages)
-.if exists(${PKG_ABI_FILE}) && exists(${REPODIR}/${PKG_ABI})
+.if !defined(PKG_VERSION_FROM) && make(real-update-packages) && \
+ exists(${PKG_ABI_FILE}) && exists(${REPODIR}/${PKG_ABI}/latest)
PKG_VERSION_FROM!=/usr/bin/readlink ${REPODIR}/${PKG_ABI}/latest
PKG_VERSION_FROM_DIR= ${REPODIR}/${PKG_ABI}/${PKG_VERSION_FROM}
# Determine the name of the branch base on the version
@@ -2050,11 +2042,6 @@ BRANCH_EXT_FROM= rc
.elif ${PKG_VERSION_FROM:M*.a*}
BRANCH_EXT_FROM= alpha
.endif
-.else
-PKG_VERSION_FROM=
-PKG_VERSION_FROM_DIR=
-BRANCH_EXT_FROM=
-.endif
.endif
PKGMAKEARGS+= PKG_VERSION=${PKG_VERSION} \
@@ -2066,21 +2053,23 @@ packages: .PHONY
update-packages: .PHONY
${_+_}${MAKE} -C ${.CURDIR} ${PKGMAKEARGS} real-update-packages
-package-pkg: .PHONY
+package-pkg: _pkgbootstrap _repodir .PHONY
+.if defined(INCLUDE_PKG_IN_PKGBASE_REPO)
+.if exists(${PORTSDIR})
rm -rf /tmp/ports.${TARGET} || :
- env ${WMAKEENV:Q} SRCDIR=${.CURDIR} PORTSDIR=${PORTSDIR} REVISION=${_REVISION} \
+ env ${WMAKEENV} SRCDIR=${.CURDIR} PORTSDIR=${PORTSDIR} REVISION=${_REVISION} \
PKG_CMD=${PKG_CMD} PKG_VERSION=${PKG_VERSION} REPODIR=${REPODIR} \
WSTAGEDIR=${WSTAGEDIR} \
- OSVERSION="${SRCRELDATE}" \
+ OSVERSION="${SRCRELDATE}" LOCALBASE=${LOCALBASE} \
sh ${.CURDIR}/release/scripts/make-pkg-package.sh
+.endif
+.endif
real-packages: stage-packages create-packages sign-packages .PHONY
real-update-packages: stage-packages .PHONY
${_+_}${MAKE} -C ${.CURDIR} PKG_VERSION=${PKG_VERSION} create-packages
-.if empty(PKG_VERSION_FROM_DIR)
- @echo "==> Bootstrapping repository, not checking for new packages"
-.else
+.if defined(PKG_VERSION_FROM_DIR)
@echo "==> Checking for new packages (comparing ${PKG_VERSION} to ${PKG_VERSION_FROM})"
@for pkg in ${PKG_VERSION_FROM_DIR}/${PKG_NAME_PREFIX}-*; do \
pkgname=$$(pkg query -F $${pkg} '%n' | sed 's/${PKG_NAME_PREFIX}-\(.*\)/\1/') ; \
@@ -2098,9 +2087,10 @@ real-update-packages: stage-packages .PHONY
echo "==> New package $${newpkgname}" ; \
fi ; \
done
+.else
+ @echo "==> Bootstrapping repository, not checking for new packages"
.endif
- ${_+_}@cd ${.CURDIR}; \
- ${MAKE} -f Makefile.inc1 PKG_VERSION=${PKG_VERSION} sign-packages
+ ${_+_}${MAKE} -C ${.CURDIR} -f Makefile.inc1 PKG_VERSION=${PKG_VERSION} sign-packages
stage-packages-world: .PHONY
@mkdir -p ${WSTAGEDIR}
@@ -2126,6 +2116,15 @@ create-packages-world: _pkgbootstrap _repodir .PHONY
DESTDIR=${WSTAGEDIR} \
PKG_VERSION=${PKG_VERSION} create-world-packages
+.ORDER: create-packages-world create-packages-sets
+.ORDER: create-packages-kernel create-packages-sets
+.ORDER: create-packages-source create-packages-sets
+create-packages-sets: _pkgbootstrap _repodir .PHONY
+ ${_+_}@cd ${.CURDIR}; \
+ ${MAKE} -f Makefile.inc1 \
+ DESTDIR=${WSTAGEDIR} \
+ PKG_VERSION=${PKG_VERSION} create-sets-packages
+
create-packages-kernel: _pkgbootstrap _repodir .PHONY
${_+_}@cd ${.CURDIR}; \
${MAKE} -f Makefile.inc1 \
@@ -2138,13 +2137,17 @@ create-packages-kernel-repo: .PHONY create-packages-kernel sign-packages
create-packages-world-repo: .PHONY create-packages-world sign-packages
+create-packages-sets-repo: .PHONY create-packages-sets sign-packages
+
create-packages-source: _pkgbootstrap _repodir .PHONY
${_+_}@cd ${.CURDIR}; \
${MAKE} -f Makefile.inc1 \
DESTDIR=${SSTAGEDIR} \
- PKG_VERSION=${PKG_VERSION} create-source-packages
+ PKG_VERSION=${PKG_VERSION} \
+ SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \
+ create-source-packages
-create-packages: .PHONY create-packages-world create-packages-kernel create-packages-source
+create-packages: .PHONY create-packages-world create-packages-kernel create-packages-source package-pkg create-packages-sets
create-source-src-package: _pkgbootstrap .PHONY
rm -f ${SSTAGEDIR}/src.plist 2>/dev/null || :
@@ -2157,16 +2160,15 @@ create-source-src-package: _pkgbootstrap .PHONY
PKGNAME "src" \
PKGGENNAME "src" \
VERSION "${PKG_VERSION}" \
- DESC "FreeBSD Kernel Sources" \
- COMMENT "FreeBSD Userland Sources" \
PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \
PKG_MAINTAINER "${PKG_MAINTAINER}" \
PKG_WWW "${PKG_WWW}" \
+ UCLFILES "${SRCDIR}/release/packages/ucl" \
${SRCDIR}/release/packages/template.ucl \
${SSTAGEDIR}/src.ucl
${PKG_CMD} -o ABI=${PKG_ABI} \
-o OSVERSION="${SRCRELDATE}" \
- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
-M ${SSTAGEDIR}/src.ucl \
-p ${SSTAGEDIR}/src.plist \
-r ${SRCDIR} \
@@ -2182,18 +2184,17 @@ create-source-src-sys-package: _pkgbootstrap .PHONY
> ${SSTAGEDIR}/src-sys.plist
${SRCDIR}/release/packages/generate-ucl.lua \
PKGNAME "src-sys" \
- PKGGENNAME "src" \
+ PKGGENNAME "src-sys" \
VERSION "${PKG_VERSION}" \
- DESC "FreeBSD Kernel Sources" \
- COMMENT "FreeBSD Kernel Sources" \
PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \
PKG_MAINTAINER "${PKG_MAINTAINER}" \
PKG_WWW "${PKG_WWW}" \
+ UCLFILES "${SRCDIR}/release/packages/ucl" \
${SRCDIR}/release/packages/template.ucl \
${SSTAGEDIR}/src-sys.ucl
${PKG_CMD} -o ABI=${PKG_ABI} \
-o OSVERSION="${SRCRELDATE}" \
- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
-M ${SSTAGEDIR}/src-sys.ucl \
-p ${SSTAGEDIR}/src-sys.plist \
-r ${SRCDIR} \
@@ -2231,34 +2232,49 @@ create-world-package-${pkgname}: .PHONY
/^name/ { printf("===> Creating %s-", $$2); next } \
/^version/ { print $$2; next } \
' ${WSTAGEDIR}/${pkgname}.ucl
- @if [ "${pkgname}" == "runtime" ]; then \
- sed -i '' -e "s/%VCS_REVISION%/${VCS_REVISION}/" ${WSTAGEDIR}/${pkgname}.ucl ; \
- fi
${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \
-o OSVERSION="${SRCRELDATE}" \
- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
-M ${WSTAGEDIR}/${pkgname}.ucl \
-p ${WSTAGEDIR}/${pkgname}.plist \
-r ${WSTAGEDIR} \
-o ${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR}
.endfor
+create-sets-packages-jobs: .PHONY create-sets-packages
+create-sets-packages: .PHONY
+ @echo "==> Creating set metapackages."
+ sh "${SRCDIR}/release/packages/create-sets.sh" "${SRCDIR}" \
+ "${WSTAGEDIR}" "${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR}" \
+ VERSION "${PKG_VERSION}" \
+ PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \
+ PKG_MAINTAINER "${PKG_MAINTAINER}" \
+ PKG_WWW "${PKG_WWW}"
+ @for manifest in ${WSTAGEDIR}/set-*.ucl; do \
+ echo "--> Processing manifest: $$manifest"; \
+ ${PKG_CMD} -o ABI=${PKG_ABI} -o OSVERSION="${SRCRELDATE}" \
+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
+ -M $$manifest \
+ -o "${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR}" \
+ || exit 1; \
+ done
+
_default_flavor= -default
.if make(*package*) && exists(${KSTAGEDIR}/kernel.meta)
. if ${MK_DEBUG_FILES} != "no"
_debug=-dbg
. endif
-create-dtb-package:
+create-dtb-package: .PHONY
@if [ -f ${KSTAGEDIR}/${DISTDIR}/dtb.plist ]; then \
${SRCDIR}/release/packages/generate-ucl.lua \
PKGNAME "dtb" \
+ PKGGENNAME "dtb" \
VERSION "${PKG_VERSION}" \
- COMMENT "FreeBSD Devicetree Blobs" \
- DESC "FreeBSD Devicetree Blobs" \
PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \
PKG_MAINTAINER "${PKG_MAINTAINER}" \
PKG_WWW "${PKG_WWW}" \
+ UCLFILES "${SRCDIR}/release/packages/ucl" \
${SRCDIR}/release/packages/template.ucl \
${KSTAGEDIR}/${DISTDIR}/dtb.ucl ; \
awk -F\" ' \
@@ -2267,16 +2283,19 @@ create-dtb-package:
${KSTAGEDIR}/${DISTDIR}/dtb.ucl ; \
${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \
-o OSVERSION="${SRCRELDATE}" \
- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
-M ${KSTAGEDIR}/${DISTDIR}/dtb.ucl \
-p ${KSTAGEDIR}/${DISTDIR}/dtb.plist \
-r ${KSTAGEDIR}/${DISTDIR} \
-o ${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR} ; \
fi
-create-kernel-packages: .PHONY
+create-kernel-packages: .PHONY create-kernel-flavored-packages create-dtb-package
+create-kernel-flavored-packages: .PHONY
+.ORDER: create-kernel-flavored-packages create-dtb-package
+
. for flavor in "" ${_debug}
-create-kernel-packages: create-kernel-packages-flavor${flavor:C,^""$,${_default_flavor},} create-dtb-package
+create-kernel-flavored-packages: create-kernel-packages-flavor${flavor:C,^""$,${_default_flavor},}
create-kernel-packages-flavor${flavor:C,^""$,${_default_flavor},}: _pkgbootstrap .PHONY
@cd ${KSTAGEDIR}/${DISTDIR} ; \
${METALOG_SORT_CMD} ${KSTAGEDIR}/kernel.meta | \
@@ -2284,13 +2303,15 @@ create-kernel-packages-flavor${flavor:C,^""$,${_default_flavor},}: _pkgbootstrap
-v kernel=yes -v _kernconf=${INSTALLKERNEL} ; \
${SRCDIR}/release/packages/generate-ucl.lua \
PKGNAME "kernel-${INSTALLKERNEL:tl}${flavor}" \
+ PKGGENNAME "kernel" \
VERSION "${PKG_VERSION}" \
KERNELDIR "kernel" \
- COMMENT "FreeBSD ${INSTALLKERNEL} kernel ${flavor}" \
- DESC "FreeBSD ${INSTALLKERNEL} kernel ${flavor}" \
+ KERNEL_NAME "${INSTALLKERNEL}" \
+ KERNEL_FLAVOR "${flavor}" \
PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \
PKG_MAINTAINER "${PKG_MAINTAINER}" \
PKG_WWW "${PKG_WWW}" \
+ UCLFILES "${SRCDIR}/release/packages/ucl" \
${SRCDIR}/release/packages/template.ucl \
${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl ; \
awk -F\" ' \
@@ -2299,12 +2320,15 @@ create-kernel-packages-flavor${flavor:C,^""$,${_default_flavor},}: _pkgbootstrap
${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl ; \
${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \
-o OSVERSION="${SRCRELDATE}" \
- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
-M ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl \
-p ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.plist \
-r ${KSTAGEDIR}/${DISTDIR} \
-o ${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR}
. endfor
+.else
+create-kernel-packages: .PHONY
+
.endif
.if ${BUILDKERNELS:[#]} > 1 && ${NO_INSTALLEXTRAKERNELS} != "yes"
. for _kernel in ${BUILDKERNELS:[2..-1]}
@@ -2323,14 +2347,14 @@ create-kernel-packages-extra-flavor${flavor:C,^""$,${_default_flavor},}-${_kerne
PKGNAME "kernel-${_kernel:tl}${flavor}" \
PKGGENNAME "kernel" \
FORCEINCLUDE "kernel${flavor}" \
- UCLFILES "${SRCDIR}/release/packages/" \
VERSION "${PKG_VERSION}" \
+ KERNEL_NAME "${_kernel:tl}" \
+ KERNEL_FLAVOR "${flavor}" \
KERNELDIR "kernel.${_kernel}" \
- DESC "FreeBSD ${_kernel} kernel ${flavor}" \
- COMMENT "FreeBSD ${_kernel} kernel ${flavor}" \
PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \
PKG_MAINTAINER "${PKG_MAINTAINER}" \
PKG_WWW "${PKG_WWW}" \
+ UCLFILES "${SRCDIR}/release/packages/ucl" \
${SRCDIR}/release/packages/template.ucl \
${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl ; \
awk -F\" ' \
@@ -2339,7 +2363,7 @@ create-kernel-packages-extra-flavor${flavor:C,^""$,${_default_flavor},}-${_kerne
${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl ; \
${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \
-o OSVERSION="${SRCRELDATE}" \
- create -f ${PKG_FORMAT} ${PKG_CLEVEL} \
+ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
-M ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl \
-p ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.plist \
-r ${KSTAGEDIR}/kernel.${_kernel} \
@@ -2351,13 +2375,13 @@ create-kernel-packages-extra-flavor${flavor:C,^""$,${_default_flavor},}-${_kerne
sign-packages: .PHONY
${_+_}@cd ${.CURDIR}; \
- ${MAKE} -f Makefile.inc1 PKG_VERSION=${PKG_VERSION} real-sign-packages
+ ${MAKE} -f Makefile.inc1 \
+ PKG_VERSION=${PKG_VERSION} \
+ SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \
+ real-sign-packages
real-sign-packages: _pkgbootstrap .PHONY
printf "version = 2;\n" > ${WSTAGEDIR}/meta
-.if ${PKG_BIN_VERSION} < 11700
- printf "packing_format = \"${PKG_FORMAT}\";\n" >> ${WSTAGEDIR}/meta
-.endif
@${PKG_CMD} -o ABI=${PKG_ABI} -o OSVERSION="${SRCRELDATE}" \
-o WORKERS_COUNT=${PKG_WORKERS_COUNT} repo \
-m ${WSTAGEDIR}/meta \
@@ -2531,6 +2555,10 @@ ${_bt}-usr.sbin/kldxref: ${_bt_libelf_depend} ${_bt_libkldelf_depend}
.if ${BOOTSTRAPPING} < 1300059
${_bt}-libexec/flua: ${_bt}-lib/liblua
_flua= lib/liblua libexec/flua
+.if ${BOOTSTRAPPING} == 0
+_flua+= lib/libmd lib/libucl lib/libyaml
+${_bt}-libexec/flua: ${_bt}-lib/libmd ${_bt}-lib/libucl ${_bt}-lib/libyaml
+.endif # BOOTSTRAPPING == 0
.endif
# r245440 mtree -N support added
@@ -2645,6 +2673,20 @@ ${_bt}-usr.bin/mkcsmapper: ${_bt}-usr.bin/yacc ${_bt_lex_depend}
.endif
.if ${MK_KERBEROS} != "no"
+.if ${MK_MITKRB5} != "no"
+_kerberos5_bootstrap_tools= \
+ krb5/util/build-tools \
+ krb5/util/compile_et \
+ krb5/util/support \
+ krb5/util/et \
+ krb5/util/ss \
+ krb5/util/profile \
+ krb5/util/verto
+# krb5/include \
+# krb5/lib/crypto \
+# krb5/lib/krb5 \
+# krb5/lib/gssapi
+.else
_kerberos5_bootstrap_tools= \
kerberos5/tools/make-roken \
kerberos5/lib/libroken \
@@ -2653,6 +2695,7 @@ _kerberos5_bootstrap_tools= \
kerberos5/tools/slc \
usr.bin/compile_et
+.endif
.ORDER: ${_kerberos5_bootstrap_tools:C/^/${_bt}-/g}
.for _tool in ${_kerberos5_bootstrap_tools}
${_bt}-${_tool}: ${_bt}-usr.bin/yacc ${_bt_lex_depend}
@@ -2721,6 +2764,18 @@ _basic_bootstrap_tools+=sbin/md5
_basic_bootstrap_tools+=usr.sbin/tzsetup
.endif
+# certctl is needed as an install tool. libcrypto is rather heavy, so we'll
+# build that alongside it only for platforms that don't expose headers for
+# OpenSSL, like macOS, or when building on releases with OpenSSL 1.x.
+.if ${MK_CAROOT} != "no" && ${MK_OPENSSL} != "no"
+.if ${.MAKE.OS} == "Darwin" || \
+ (${.MAKE.OS} == "FreeBSD" && ${BOOTSTRAPPING} < 1400000)
+_bootstrap_libcrypto=secure/lib/libcrypto
+${_bt}-usr.sbin/certctl: ${_bt}-secure/lib/libcrypto
+.endif
+_certctl=usr.sbin/certctl
+.endif
+
.if defined(BOOTSTRAP_ALL_TOOLS)
_other_bootstrap_tools+=${_basic_bootstrap_tools}
.for _subdir _links in ${_basic_bootstrap_tools_multilink}
@@ -2765,11 +2820,11 @@ ${_bt}-links: .PHONY
.for _tool in ${_bootstrap_tools_links}
${_bt}-link-${_tool}: .PHONY
@rm -f "${WORLDTMP}/legacy/bin/${_tool}"; \
- source_path=`which ${_tool}`; \
+ source_path=`which ${_tool} || true`; \
if [ ! -e "$${source_path}" ] ; then \
echo "Cannot find host tool '${_tool}'"; false; \
fi; \
- cp -pf "$${source_path}" "${WORLDTMP}/legacy/bin/${_tool}"
+ install -p "$${source_path}" "${WORLDTMP}/legacy/bin/${_tool}"
${_bt}-links: ${_bt}-link-${_tool}
.endfor
@@ -2784,6 +2839,8 @@ bootstrap-tools: ${_bt}-links .PHONY
${_strfile} \
usr.bin/dtc \
${_cat} \
+ ${_bootstrap_libcrypto} \
+ ${_certctl} \
${_kbdcontrol} \
${_elftoolchain_libs} \
${_libkldelf} \
@@ -2813,6 +2870,15 @@ bootstrap-tools: ${_bt}-links .PHONY
${_mkesdb} \
${_zic} \
${LOCAL_BSTOOL_DIRS}
+# We don't enforce any particular uniqueness of targets in the above list; it
+# may be the case that different bootstrap tools may have shared dependencies
+# at different BOOTSTRAPPING points, so we don't object to them using their own
+# conditionals and duplicating them into their ${_foo} variable to ease future
+# maintenance if we purge some entries. These target names are purposefully
+# unique and this is the only place that should be generating commands for them,
+# but the target may have been defined earlier to express dependencies -- thus,
+# we specifically want commands() here.
+.if !commands(${_bt}-${_tool})
${_bt}-${_tool}: ${_bt}-links .PHONY .MAKE
${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \
cd ${.CURDIR}/${_tool}; \
@@ -2822,8 +2888,8 @@ ${_bt}-${_tool}: ${_bt}-links .PHONY .MAKE
fi; \
${MAKE} DIRPRFX=${_tool}/ all; \
${MAKE} DIRPRFX=${_tool}/ DESTDIR=${WORLDTMP}/legacy install
-
bootstrap-tools: ${_bt}-${_tool}
+.endif
.endfor
.if target(${_bt}-lib/libmd)
# If we are bootstrapping libmd (e.g. when building on macOS/Linux) add the
@@ -2910,14 +2976,14 @@ _dtrace_tools= cddl/lib/libctf cddl/lib/libspl cddl/usr.bin/ctfconvert \
.endif
.if ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no"
-# Some bespoke tools from or based on ELF Tool Chain. objcopy (elfcopy) is
-# included because llvm-objcopy is currently not capable of translating ELF to
-# PE32+, which is required for EFI boot programs.
+# Some bespoke tools from or based on ELF Tool Chain. elfcopy is included
+# because llvm-objcopy is currently not capable of translating ELF to PE32+,
+# which is required for EFI boot programs.
_elftctools= lib/libelftc \
lib/libpe \
+ usr.bin/elfcopy \
usr.bin/elfctl \
- usr.bin/elfdump \
- usr.bin/objcopy
+ usr.bin/elfdump
# If we're given an XNM we don't need to build standard binary utilities.
.if ${XNM:M/*} == ""
_elftctools+= usr.bin/nm \
@@ -2930,7 +2996,7 @@ _elftctools+= usr.bin/addr2line
.endif
.if ${MK_CLANG_BOOTSTRAP} != "no"
-_clang= usr.bin/clang
+_clang= usr.bin/clang/clang
.endif
.if ${MK_LLD_BOOTSTRAP} != "no"
_lld= usr.bin/clang/lld
@@ -3011,7 +3077,7 @@ NXBDIRS+= \
usr.bin/cmp \
usr.bin/diff \
usr.bin/dirname \
- usr.bin/objcopy \
+ usr.bin/elfcopy \
usr.bin/env \
usr.bin/fetch \
usr.bin/find \
@@ -3219,6 +3285,8 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \
${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \
${_kerberos5_lib_libroken} \
${_kerberos5_lib_libwind} \
+ ${_krb5_util_et} \
+ ${_krb5_util_profile} \
lib/libbz2 ${_libcom_err} lib/libcrypt \
lib/libc++ \
lib/libelf lib/libexpat \
@@ -3231,17 +3299,27 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \
${_lib_casper} \
lib/ncurses/tinfo \
lib/ncurses/ncurses \
+ lib/libedit \
+ ${_krb5_util_ss} \
+ ${_krb5_util_support} \
+ ${_krb5_util_verto} \
+ ${_krb5_lib_krb5} \
+ ${_krb5_lib_crypto} \
+ ${_krb5_lib_gssapikrb5} \
+ ${_krb5_lib_gssrpc} \
+ ${_krb5_lib_kdb5} \
+ ${_krb5_lib_krad} \
+ ${_krb5_lib_kadm5srvmit} \
+ ${_krb5_lib_kadm5clntmit} \
lib/libpam/libpam lib/libthr \
${_lib_libradius} lib/libsbuf lib/libtacplus \
lib/libgeom \
${_lib_librt} \
${_cddl_lib_libumem} ${_cddl_lib_libnvpair} \
- ${_cddl_lib_libuutil} \
${_cddl_lib_libavl} \
${_cddl_lib_libicp} \
${_cddl_lib_libicp_rescue} \
${_cddl_lib_libspl} \
- ${_cddl_lib_libtpool} \
${_cddl_lib_libzfs_core} ${_cddl_lib_libzfs} \
${_cddl_lib_libzutil} \
${_cddl_lib_libctf} ${_cddl_lib_libzfsbootenv} \
@@ -3270,16 +3348,20 @@ _lib_libradius= lib/libradius
lib/ncurses/ncurses__L: lib/ncurses/tinfo__L
+lib/libedit__L: lib/ncurses/ncurses__L
+
.if ${MK_OFED} != "no"
_prebuild_libs+= \
lib/ofed/libibverbs \
lib/ofed/libibmad \
lib/ofed/libibumad \
lib/ofed/complib \
+ lib/ofed/libbnxtre \
lib/ofed/libmlx5
lib/ofed/libibmad__L: lib/ofed/libibumad__L
lib/ofed/complib__L: lib/libthr__L
+lib/ofed/libbnxtre__L: lib/ofed/libibverbs__L lib/libthr__L
lib/ofed/libmlx5__L: lib/ofed/libibverbs__L lib/libthr__L
.endif
@@ -3310,32 +3392,27 @@ lib/libxo__L: lib/libutil__L
_cddl_lib_libumem= cddl/lib/libumem
_cddl_lib_libnvpair= cddl/lib/libnvpair
_cddl_lib_libavl= cddl/lib/libavl
-_cddl_lib_libuutil= cddl/lib/libuutil
_cddl_lib_libspl= cddl/lib/libspl
cddl/lib/libavl__L: cddl/lib/libspl__L
cddl/lib/libnvpair__L: cddl/lib/libspl__L
-cddl/lib/libuutil__L: cddl/lib/libavl__L cddl/lib/libspl__L
.if ${MK_ZFS} != "no"
_lib_librt= lib/librt
_cddl_lib_libicp= cddl/lib/libicp
_cddl_lib_libicp_rescue= cddl/lib/libicp_rescue
-_cddl_lib_libtpool= cddl/lib/libtpool
_cddl_lib_libzutil= cddl/lib/libzutil
_cddl_lib_libzfs_core= cddl/lib/libzfs_core
_cddl_lib_libzfs= cddl/lib/libzfs
_cddl_lib_libzfsbootenv= cddl/lib/libzfsbootenv
-cddl/lib/libtpool__L: cddl/lib/libspl__L
-
-cddl/lib/libzutil__L: cddl/lib/libavl__L lib/libgeom__L lib/msun__L cddl/lib/libtpool__L
+cddl/lib/libzutil__L: cddl/lib/libavl__L lib/libgeom__L lib/msun__L
cddl/lib/libzfs_core__L: cddl/lib/libnvpair__L cddl/lib/libspl__L cddl/lib/libzutil__L
cddl/lib/libzfs__L: cddl/lib/libzfs_core__L lib/msun__L lib/libutil__L lib/librt__L
cddl/lib/libzfs__L: lib/libthr__L lib/libmd__L lib/libz__L cddl/lib/libumem__L
-cddl/lib/libzfs__L: cddl/lib/libuutil__L cddl/lib/libavl__L lib/libgeom__L
+cddl/lib/libzfs__L: cddl/lib/libavl__L lib/libgeom__L
cddl/lib/libzfs__L: cddl/lib/libnvpair__L cddl/lib/libzutil__L
cddl/lib/libzfs__L: secure/lib/libcrypto__L
@@ -3369,17 +3446,45 @@ secure/lib/libssh__L: lib/libz__L secure/lib/libcrypto__L lib/libcrypt__L
.if ${MK_LDNS} != "no"
secure/lib/libssh__L: lib/libldns__L
.endif
-.if ${MK_GSSAPI} != "no" && ${MK_KERBEROS_SUPPORT} != "no"
+
+.if ${MK_KERBEROS_SUPPORT} != "no"
+.if ${MK_MITKRB5} != "no"
+secure/lib/libssh__L: krb5/lib/gssapi__L krb5/lib/krb5__L \
+ krb5/lib/crypto__L krb5/util/et__L lib/libmd__L krb5/util/support__L
+.else
secure/lib/libssh__L: lib/libgssapi__L kerberos5/lib/libkrb5__L \
kerberos5/lib/libhx509__L kerberos5/lib/libasn1__L lib/libcom_err__L \
lib/libmd__L kerberos5/lib/libroken__L
.endif
.endif
.endif
+.endif
_secure_lib= secure/lib
.endif
.if ${MK_KERBEROS} != "no"
+.if ${MK_MITKRB5} != "no"
+krb5/util/et__L: krb5/util/support__L
+krb5/util/profile__L: krb5/util/et__L krb5/util/support__L
+krb5/lib/crypto__L: krb5/util/et__L krb5/util/support__L \
+ secure/lib/libcrypto__L
+krb5/lib/gssapi__L: krb5/lib/krb5__L krb5/lib/crypto__L krb5/util/et__L \
+ krb5/util/support__L
+krb5/lib/kadm5clnt__L: krb5/util/profile__L krb5/lib/rpc__L \
+ krb5/lib/gssapi__L krb5/lib/krb5__L krb5/lib/crypto__L \
+ krb5/util/support__L krb5/util/et__L
+krb5/lib/kadm5srv__L: krb5/util/profile__L krb5/lib/rpc__L \
+ krb5/lib/gssapi__L krb5/lib/kdb__L krb5/lib/krb5 krb5/lib/crypto__L \
+ krb5/util/support__L krb5/util/et__L
+krb5/lib/kdb__L: krb5/util/profile__L krb5/lib/rpc__L krb5/lib/krb5__L \
+ krb5/lib/crypto__L krb5/util/et__L krb5/util/support__L krb5/lib/gssapi__L
+krb5/lib/krad__L: krb5/lib/krb5__L krb5/lib/crypto__L krb5/util/et__L \
+ krb5/util/support__L krb5/util/verto__L
+krb5/lib/krb5__L: krb5/util/profile__L krb5/lib/crypto__L krb5/util/et__L \
+ krb5/util/support__L
+krb5/lib/rpc__L: krb5/lib/gssapi__L krb5/lib/krb5__L krb5/lib/crypto__L \
+ krb5/util/et__L krb5/util/support__L
+.else
kerberos5/lib/libasn1__L: lib/libcom_err__L kerberos5/lib/libroken__L
kerberos5/lib/libhdb__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L \
@@ -3397,14 +3502,37 @@ kerberos5/lib/libwind__L: kerberos5/lib/libroken__L lib/libcom_err__L
kerberos5/lib/libheimbase__L: lib/libthr__L
kerberos5/lib/libheimipcc__L: kerberos5/lib/libroken__L kerberos5/lib/libheimbase__L lib/libthr__L
.endif
+.endif
lib/libsqlite3__L: lib/libthr__L
-.if ${MK_GSSAPI} != "no"
+.if ${MK_KERBEROS} != "no" && ${MK_MITKRB5} == "no"
_lib_libgssapi= lib/libgssapi
.endif
.if ${MK_KERBEROS} != "no"
+.if ${MK_MITKRB5} != "no"
+_krb5_util= krb5/util
+_krb5_util_build_tools= krb5/util/build-tools
+_krb5_util_compileet= krb5/util/compile_et
+_krb5_util_et= krb5/util/et
+_krb5_util_profile= krb5/util/profile
+_krb5_util_ss= krb5/util/ss
+_krb5_util_support= krb5/util/support
+_krb5_util_verto= krb5/util/verto
+_krb5_lib= krb5/lib
+_krb5_lib_krb5= krb5/lib/krb5
+_krb5_lib_kdb5= krb5/lib/kdb
+_krb5_lib_crypto= krb5/lib/crypto
+_krb5_lib_gssapikrb5= krb5/lib/gssapi
+_krb5_lib_gssrpc= krb5/lib/rpc
+_krb5_lib_apputils= krb5/lib/apputils
+_krb5_lib_kadm5clntmit= krb5/lib/kadm5clnt
+_krb5_lib_kadm5srvmit= krb5/lib/kadm5srv
+_krb5_lib_kadm_common= krb5/lib/kadm_common
+_krb5_lib_kproputil= krb5/lib/kprop_util
+_krb5_lib_krad= krb5/lib/krad
+.else
_kerberos5_lib= kerberos5/lib
_kerberos5_lib_libasn1= kerberos5/lib/libasn1
_kerberos5_lib_libhdb= kerberos5/lib/libhdb
@@ -3418,6 +3546,7 @@ _kerberos5_lib_libheimipcc= kerberos5/lib/libheimipcc
_kerberos5_lib_libwind= kerberos5/lib/libwind
_libcom_err= lib/libcom_err
.endif
+.endif
.if ${MK_NIS} != "no"
_lib_libypclnt= lib/libypclnt
@@ -3529,16 +3658,32 @@ delete-old-files: .PHONY
fi; \
done; \
done
-# Remove catpages without corresponding manpages.
+# Remove compressed copies of uncompressed manpages
+.if ${MK_MANCOMPRESS} != "yes"
+ @exec 3<&0; \
+ find ${DESTDIR}/usr/share/man ${DESTDIR}/usr/share/openssl/man ! -type d ! -name \*.gz 2>/dev/null | \
+ while read manpage; do \
+ if [ -e "$${manpage}.gz" ]; then \
+ rm ${RM_I} $${manpage}.gz <&3; \
+ fi; \
+ done
+# Remove uncompressed copies of compressed manpages
+.else
+ @exec 3<&0; \
+ find ${DESTDIR}/usr/share/man ${DESTDIR}/usr/share/openssl/man ! -type d ! -name \*.gz 2>/dev/null | \
+ while read manpage; do \
+ if [ -e "$${manpage}.gz" ]; then \
+ rm ${RM_I} $${manpage} <&3; \
+ fi; \
+ done
+.endif
+.if !empty(MAN_ARCH) && ${MAN_ARCH} != "all"
@exec 3<&0; \
- find ${DESTDIR}/usr/share/man/cat* ! -type d 2>/dev/null | sort | \
- sed -ep -e's:${DESTDIR}/usr/share/man/cat:${DESTDIR}/usr/share/man/man:' | \
- while read catpage; do \
- read manpage; \
- if [ ! -e "$${manpage}" ]; then \
- rm ${RM_I} $${catpage} <&3; \
- fi; \
+ find -E /usr/share/man/man4/ -mindepth 1 -type d ! -regex '.*/(${MAN_ARCH:C/[[:space:]]+/|/gW})' | \
+ while read dir; do \
+ find $$dir ! -type d -exec rm ${RM_I} {} + <&3; \
done
+.endif
@echo ">>> Old files removed"
check-old-files: .PHONY
@@ -3555,15 +3700,29 @@ check-old-files: .PHONY
fi; \
done; \
done
-# Check for catpages without corresponding manpages.
- @find ${DESTDIR}/usr/share/man/cat* ! -type d 2>/dev/null | \
- sed -ep -e's:${DESTDIR}/usr/share/man/cat:${DESTDIR}/usr/share/man/man:' | \
- while read catpage; do \
- read manpage; \
- if [ ! -e "$${manpage}" ]; then \
- echo $${catpage}; \
- fi; \
+# Check for compressed copies of uncompressed manpages
+.if ${MK_MANCOMPRESS} != "yes"
+ @find ${DESTDIR}/usr/share/man ${DESTDIR}/usr/share/openssl/man ! -type d ! -name \*.gz 2>/dev/null | \
+ while read manpage; do \
+ if [ -e "$${manpage}.gz" ]; then \
+ echo $${manpage}.gz; \
+ fi; \
+ done | sort
+# Check for uncompressed copies of compressed manpages
+.else
+ @find ${DESTDIR}/usr/share/man ${DESTDIR}/usr/share/openssl/man ! -type d ! -name \*.gz 2>/dev/null | \
+ while read manpage; do \
+ if [ -e "$${manpage}.gz" ]; then \
+ echo $${manpage}; \
+ fi; \
done | sort
+.endif
+.if !empty(MAN_ARCH) && ${MAN_ARCH} != "all"
+ @find -E /usr/share/man/man4/ -mindepth 1 -type d ! -regex '.*/(${MAN_ARCH:C/[[:space:]]+/|/gW})' | \
+ while read dir; do \
+ find $$dir ! -type d; \
+ done | sort
+.endif
list-old-libs: .PHONY
@cd ${.CURDIR}; \
@@ -3613,7 +3772,7 @@ check-old-libs: .PHONY
list-old-dirs: .PHONY
@cd ${.CURDIR}; \
${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
- -V OLD_DIRS | sed -E 's/[[:space:]]+/\n/g' | sort -r
+ -V "OLD_DIRS:ts\n" | sort -r
delete-old-dirs: .PHONY
@echo ">>> Removing old directories"
@@ -3741,7 +3900,7 @@ XDEV_CPUTYPE?=${CPUTYPE}
XDEV_CPUTYPE?=${TARGET_CPUTYPE}
.endif
-NOFUN=-DNO_FSCHG MK_HTML=no -DNO_LINT \
+NOFUN=-DNO_FSCHG MK_HTML=no \
MK_MAN=no MK_NLS=no \
MK_KERBEROS=no MK_RESCUE=no MK_TESTS=no MK_WERROR=no \
TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \