diff options
Diffstat (limited to 'Makefile.inc1')
| -rw-r--r-- | Makefile.inc1 | 489 |
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} \ |
