mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 01:26:39 -04:00
component: add SUBPACKAGES
This commit add SUBPACKAGES support to the framework. Fix users of _LICENSE_DIR Fix multi/dual license Add annotation to packages about being a subpkg Make do-depends aware of the subpackages Add PKGBASE.subpkg variable Fix actual-package-depends target Fix dependencies in sub-packages Implement LICENSE support Fix PLIST_FILES.subpkg Make DESCR.subpkg warning message shorter Add SUBPACKES to the list of OPTIONS_HELPERS Fix _strip_perms Simplify METADIR as in the original patch Fix _PLIST Fix the case when there are no subpackages Fix typo Fix _PKGDIR initialization Fix PLIST Fix typo in RE Fix METADIR Fix type in PKGFILE Fix [build|run]-depends-list targets Initial import of the subpackage framework This import is based on https://reviews.freebsd.org/D16457 PR: 275735 Differential Revision: https://reviews.freebsd.org/D40549
This commit is contained in:
parent
39e841a05a
commit
47564762a3
6 changed files with 313 additions and 124 deletions
|
@ -69,6 +69,12 @@ check_dep() {
|
|||
d=${overlay}/${2}
|
||||
f=
|
||||
case "${d}" in
|
||||
*~*/*) ;; # Ignore ~ in the path which would not be a subpkg
|
||||
*~*)
|
||||
d=${d%~*}
|
||||
;;
|
||||
esac
|
||||
case "${d}" in
|
||||
*@*/*) ;; # Ignore @ in the path which would not be a flavor
|
||||
*@*)
|
||||
f=${d##*@}
|
||||
|
|
|
@ -21,15 +21,22 @@ install_depends()
|
|||
{
|
||||
origin=$1
|
||||
target=$2
|
||||
depends_args=$3
|
||||
subpkg=$3
|
||||
depends_args=$4
|
||||
if [ -z "${dp_USE_PACKAGE_DEPENDS}" -a -z "${dp_USE_PACKAGE_DEPENDS_ONLY}" ]; then
|
||||
MAKEFLAGS="${dp_MAKEFLAGS}" ${dp_MAKE} -C ${origin} -DINSTALLS_DEPENDS ${target} ${depends_args}
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -z "${subpkg}" ]; then
|
||||
port_var_fetch "${origin}" "${depends_args}" \
|
||||
PKGFILE pkgfile \
|
||||
PKGBASE pkgbase
|
||||
else
|
||||
port_var_fetch "${origin}" "${depends_args}" \
|
||||
PKGFILE.${subpkg} pkgfile \
|
||||
PKGBASE.${subpkg} pkgbase
|
||||
fi
|
||||
|
||||
if [ -r "${pkgfile}" -a "${target}" = "${dp_DEPENDS_TARGET}" ]; then
|
||||
echo "===> Installing existing package ${pkgfile}"
|
||||
|
@ -123,12 +130,18 @@ for _line in ${dp_RAWDEPENDS} ; do
|
|||
continue
|
||||
fi
|
||||
|
||||
subpkg=
|
||||
case "${origin}" in
|
||||
*@*/*) ;; # Ignore @ in the path which would not be a flavor
|
||||
*@*)
|
||||
export FLAVOR="${origin##*@}"
|
||||
origin=${origin%@*}
|
||||
;;
|
||||
*~*/*) ;; # Ignore ~ in the path which would not be a subpackage
|
||||
*~*)
|
||||
subpkg="${origin##*~}"
|
||||
origin=${origin%~*}
|
||||
;;
|
||||
esac
|
||||
|
||||
case "${origin}" in
|
||||
|
@ -194,7 +207,7 @@ for _line in ${dp_RAWDEPENDS} ; do
|
|||
fi
|
||||
|
||||
# Now actually install the dependencies
|
||||
install_depends "${origin}" "${target}" "${depends_args}"
|
||||
install_depends "${origin}" "${target}" "${subpkg}" "${depends_args}"
|
||||
# Recheck if the installed dependency validates the pattern except for /nonexistent
|
||||
[ "${fct}" = "false" ] || ${fct} "${pattern}"
|
||||
echo "===> Returning to build of ${dp_PKGNAME}"
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
# Strip (owner,group,perm) from keywords
|
||||
_strip_perms() {
|
||||
sed -Ee 's/^@\([^)]*\)[[:space:]]+//' \
|
||||
-e 's/^(@[[:alpha:]]+)\([^)]*\)[[:space:]]+/\1 /'
|
||||
-e 's/^(@[[:alpha:]]+)\([^)]*\)[[:space:]]+/\1 /' \
|
||||
-e 's/^@@[[:alnum:]]+@@//'
|
||||
}
|
||||
|
||||
# Expand TMPPLIST to absolute paths, splitting files and dirs into separate
|
||||
|
|
|
@ -153,10 +153,13 @@ _LICENSE_LIST_PORT_VARS= PERMS NAME GROUPS
|
|||
# few more targets only.
|
||||
|
||||
_LICENSE_DIR?= ${PREFIX}/share/licenses/${PKGNAME}
|
||||
. for sp in ${_PKGS}
|
||||
_LICENSE_DIR.${sp}?= ${PREFIX}/share/licenses/${PKGNAME${_SP.${sp}}}
|
||||
_LICENSE_CATALOG.${sp}?= ${_LICENSE_DIR.${sp}}/catalog.mk
|
||||
_LICENSE_REPORT.${sp}?= ${_LICENSE_DIR.${sp}}/LICENSE
|
||||
. endfor
|
||||
_LICENSE_STORE?= ${PORTSDIR}/Templates/Licenses
|
||||
_LICENSE_CATALOG?= ${_LICENSE_DIR}/catalog.mk
|
||||
_LICENSE_CATALOG_TMP?= ${WRKDIR}/.license-catalog.mk
|
||||
_LICENSE_REPORT?= ${_LICENSE_DIR}/LICENSE
|
||||
_LICENSE_REPORT_TMP?= ${WRKDIR}/.license-report
|
||||
_LICENSE_COOKIE?= ${WRKDIR}/.license_done.${PORTNAME}.${PREFIX:S/\//_/g}
|
||||
|
||||
|
@ -771,32 +774,49 @@ ${_LICENSE_COOKIE}:
|
|||
# Package list entries, and installation
|
||||
|
||||
. if !defined(NO_LICENSES_INSTALL)
|
||||
PLIST_FILES+= ${_LICENSE_CATALOG} \
|
||||
${_LICENSE_REPORT}
|
||||
|
||||
. for sp in ${_PKGS}
|
||||
. if ${sp} == ${PKGBASE}
|
||||
PLIST_FILES+= ${_LICENSE_CATALOG.${sp}} \
|
||||
${_LICENSE_REPORT.${sp}}
|
||||
. if ${_LICENSE_COMB} == "single"
|
||||
PLIST_FILES+= ${_LICENSE_DIR}/${_LICENSE}
|
||||
PLIST_FILES+= ${_LICENSE_DIR.${sp}}/${_LICENSE}
|
||||
. else
|
||||
. for lic in ${_LICENSE}
|
||||
. if defined(_LICENSE_FILE_${lic})
|
||||
PLIST_FILES+= ${_LICENSE_DIR}/${lic}
|
||||
PLIST_FILES+= ${_LICENSE_DIR.${sp}}/${lic}
|
||||
. endif
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
install-license:
|
||||
@${MKDIR} ${STAGEDIR}${_LICENSE_DIR}
|
||||
@${INSTALL_DATA} ${_LICENSE_CATALOG_TMP} ${STAGEDIR}${_LICENSE_CATALOG}
|
||||
@${INSTALL_DATA} ${_LICENSE_REPORT_TMP} ${STAGEDIR}${_LICENSE_REPORT}
|
||||
. else
|
||||
PLIST_FILES${_SP.${sp}}+= ${_LICENSE_CATALOG.${sp}} \
|
||||
${_LICENSE_REPORT.${sp}}
|
||||
. if ${_LICENSE_COMB} == "single"
|
||||
@${INSTALL_DATA} ${_LICENSE_FILE} ${STAGEDIR}${_LICENSE_DIR}/${_LICENSE}
|
||||
PLIST_FILES${_SP.${sp}}+= ${_LICENSE_DIR.${sp}}/${_LICENSE}
|
||||
. else
|
||||
. for lic in ${_LICENSE}
|
||||
@${INSTALL_DATA} ${_LICENSE_FILE_${lic}} ${STAGEDIR}${_LICENSE_DIR}/${lic}
|
||||
. if defined(_LICENSE_FILE_${lic})
|
||||
PLIST_FILES${_SP.${sp}}+= ${_LICENSE_DIR.${sp}}/${lic}
|
||||
. endif
|
||||
. endfor
|
||||
. endif
|
||||
. endif
|
||||
|
||||
|
||||
install-license: install-license.${sp}
|
||||
install-license.${sp}:
|
||||
@${MKDIR} ${STAGEDIR}${_LICENSE_DIR.${sp}}
|
||||
@${INSTALL_DATA} ${_LICENSE_CATALOG_TMP} ${STAGEDIR}${_LICENSE_CATALOG.${sp}}
|
||||
@${INSTALL_DATA} ${_LICENSE_REPORT_TMP} ${STAGEDIR}${_LICENSE_REPORT.${sp}}
|
||||
. if ${_LICENSE_COMB} == "single"
|
||||
@${INSTALL_DATA} ${_LICENSE_FILE} ${STAGEDIR}${_LICENSE_DIR.${sp}}/${_LICENSE}
|
||||
. else
|
||||
. for lic in ${_LICENSE}
|
||||
@${INSTALL_DATA} ${_LICENSE_FILE_${lic}} ${STAGEDIR}${_LICENSE_DIR.${sp}}/${lic}
|
||||
. endfor
|
||||
. endif
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
. else # !LICENSE
|
||||
|
||||
debug-license:
|
||||
|
|
|
@ -197,8 +197,8 @@ _ALL_OPTIONS_HELPERS= ${_OPTIONS_DEPENDS:S/$/_DEPENDS/} \
|
|||
CONFIGURE_ENABLE CONFIGURE_OFF CONFIGURE_ON \
|
||||
CONFIGURE_WITH IMPLIES MESON_ARGS MESON_DISABLED \
|
||||
MESON_ENABLED MESON_FALSE MESON_OFF MESON_ON MESON_TRUE \
|
||||
PREVENTS PREVENTS_MSG QMAKE_OFF QMAKE_ON USE USE_OFF \
|
||||
VARS VARS_OFF
|
||||
PREVENTS PREVENTS_MSG QMAKE_OFF QMAKE_ON \
|
||||
SUBPACKAGES SUBPACKAGES_OFF USE USE_OFF VARS VARS_OFF
|
||||
|
||||
# The format here is target_family:priority:target-type
|
||||
_OPTIONS_TARGETS= fetch:300:pre fetch:500:do fetch:700:post \
|
||||
|
@ -455,6 +455,19 @@ ALL_OPTIONS= ${OPTIONS_DEFINE}
|
|||
_OPTIONS_${target}?=
|
||||
. endfor
|
||||
|
||||
# Handle subpackages before the rest to be able to handle options helpers
|
||||
# with subpackages
|
||||
. for opt in ${_REALLY_ALL_POSSIBLE_OPTIONS}
|
||||
. if ${PORT_OPTIONS:M${opt}}
|
||||
. if defined(${opt}_SUBPACKAGES)
|
||||
SUBPACKAGES+= ${${opt}_SUBPACKAGES}
|
||||
. endif
|
||||
. else
|
||||
. if defined(${opt}_SUBPACKAGES_OFF)
|
||||
SUBPACKAGES+= ${${opt}_SUBPACKAGES_OFF}
|
||||
. endif
|
||||
. endif
|
||||
. endfor
|
||||
. for opt in ${_REALLY_ALL_POSSIBLE_OPTIONS}
|
||||
# PLIST_SUB
|
||||
PLIST_SUB?=
|
||||
|
@ -540,6 +553,11 @@ ${flags}+= ${${opt}_${flags}}
|
|||
. if defined(${opt}_${deptype}_DEPENDS)
|
||||
${deptype}_DEPENDS+= ${${opt}_${deptype}_DEPENDS}
|
||||
. endif
|
||||
. for p in ${SUBPACKAGES}
|
||||
. if defined(${opt}_${deptype}_DEPENDS.${p})
|
||||
${deptype}_DEPENDS.{p}+= ${${opt}_${deptype}_DEPENDS.${p}}
|
||||
. endif
|
||||
. endfor
|
||||
. endfor
|
||||
. for target in ${_OPTIONS_TARGETS}
|
||||
_target= ${target:C/:.*//}
|
||||
|
@ -611,6 +629,11 @@ ${flags}+= ${${opt}_${flags}_OFF}
|
|||
. if defined(${opt}_${deptype}_DEPENDS_OFF)
|
||||
${deptype}_DEPENDS+= ${${opt}_${deptype}_DEPENDS_OFF}
|
||||
. endif
|
||||
. for p in ${SUBPACKAGES}
|
||||
. if defined(${opt}_${deptype}_DEPENDS_OFF.${p})
|
||||
${deptype}_DEPENDS.{p}+= ${${opt}_${deptype}_DEPENDS_OFF.${p}}
|
||||
. endif
|
||||
. endfor
|
||||
. endfor
|
||||
. for target in ${_OPTIONS_TARGETS}
|
||||
_target= ${target:C/:.*//}
|
||||
|
|
284
Mk/bsd.port.mk
284
Mk/bsd.port.mk
|
@ -2196,6 +2196,7 @@ PKGMESSAGE?= ${PKGDIR}/pkg-message
|
|||
_PKGMESSAGES+= ${PKGMESSAGE}
|
||||
|
||||
TMPPLIST?= ${WRKDIR}/.PLIST.mktmp
|
||||
_PLIST?= ${WRKDIR}/.PLIST
|
||||
|
||||
# backward compatibility for users
|
||||
. if defined(_PKG_TRANSITIONING_TO_NEW_EXT)
|
||||
|
@ -2229,11 +2230,6 @@ ALL_TARGET?= all
|
|||
INSTALL_TARGET?= install
|
||||
INSTALL_TARGET+= ${LATE_INSTALL_ARGS}
|
||||
|
||||
# Integrate with the license auditing framework
|
||||
. if !defined (DISABLE_LICENSES)
|
||||
.include "${PORTSDIR}/Mk/bsd.licenses.mk"
|
||||
. endif
|
||||
|
||||
# Popular master sites
|
||||
.include "${PORTSDIR}/Mk/bsd.sites.mk"
|
||||
|
||||
|
@ -2607,14 +2603,6 @@ check-categories:
|
|||
|
||||
PKGREPOSITORYSUBDIR?= All
|
||||
PKGREPOSITORY?= ${PACKAGES}/${PKGREPOSITORYSUBDIR}
|
||||
. if exists(${PACKAGES})
|
||||
PACKAGES:= ${PACKAGES:S/:/\:/g}
|
||||
_HAVE_PACKAGES= yes
|
||||
PKGFILE?= ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX}
|
||||
. else
|
||||
PKGFILE?= ${.CURDIR}/${PKGNAME}${PKG_SUFX}
|
||||
. endif
|
||||
WRKDIR_PKGFILE= ${WRKDIR}/pkg/${PKGNAME}${PKG_SUFX}
|
||||
|
||||
# The "latest version" link -- ${PKGNAME} minus everthing after the last '-'
|
||||
PKGLATESTREPOSITORY?= ${PACKAGES}/Latest
|
||||
|
@ -2627,6 +2615,75 @@ PKGOLDLATESTFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}.${PKG_COMPRESSION_FORMAT}
|
|||
PKGOLDSIGFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}.${PKG_COMPRESSION_FORMAT}.sig
|
||||
. endif
|
||||
|
||||
|
||||
_PKGS= ${PKGBASE}
|
||||
PORTS_FEATURES+= SUBPACKAGES
|
||||
. if defined(SUBPACKAGES)
|
||||
. if ${SUBPACKAGES:Mmain}
|
||||
DEV_ERROR+= "SUBPACKAGES cannot contain 'main', it is a reserved value"
|
||||
. endif
|
||||
. for sp in ${SUBPACKAGES}
|
||||
. if ${sp:C/[[:lower:][:digit:]_]//g}
|
||||
_BAD_SUBPACKAGES_NAMES+= ${sp}
|
||||
. endif
|
||||
. endfor
|
||||
. if !empty(_BAD_SUBPACKAGES_NAMES)
|
||||
DEV_ERROR+= "SUBPACKAGES cannot subpackages that are not all [a-z0-9_]: ${_BAD_SUBPACKAGES_NAMES}"
|
||||
. endif
|
||||
. endif
|
||||
. for sp in ${SUBPACKAGES}
|
||||
# If a FRAMEWORK generated package needs to override its subpackage package name
|
||||
# it can do it with this mechanism
|
||||
. if !defined(_PKGS.${sp})
|
||||
_PKGS.${sp}= ${PKGBASE}-${sp}
|
||||
. endif
|
||||
_PKGS+= ${_PKGS.${sp}}
|
||||
PKGBASE.${sp}= ${_PKGS.${sp}}
|
||||
_SP.${_PKGS.${sp}}=.${sp}
|
||||
. endfor
|
||||
|
||||
. if !defined(_DID_SUBPACKAGES_HELPERS)
|
||||
_DID_SUBPACKAGES_HELPERS= yes
|
||||
_SUBPACKAGE_HELPERS_FILE= DESCR PKGINSTALL PKGDEINSTALL PKGMESSAGE \
|
||||
PKGPREINSTALL PKGPOSTINSTALL PKGPREDEINSTALL PKGPOSTDEINSTALL \
|
||||
PKGPREUPGRADE PKGPOSTUPGRADE PKGUPGRADE
|
||||
|
||||
. for sp in ${SUBPACKAGES}
|
||||
# These overwrite the current value
|
||||
. for v in ${_SUBPACKAGE_HELPERS_FILE}
|
||||
${v}.${sp}?= ${$v}.${sp}
|
||||
. endfor
|
||||
_PKGMESSAGES.${sp}= ${PKGMESSAGE}.${sp}
|
||||
. if !exists(${DESCR.${sp}})
|
||||
DESCR.${sp}= ${DESCR}
|
||||
DEV_WARNING+= "DESCR.${sp} needs to point to an existing file."
|
||||
. endif
|
||||
COMMENT.${sp}?= ${COMMENT} (subpkg: ${sp})
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
. if exists(${PACKAGES})
|
||||
PACKAGES:= ${PACKAGES:S/:/\:/g}
|
||||
_HAVE_PACKAGES= yes
|
||||
_PKGDIR= ${PKGREPOSITORY}
|
||||
. else
|
||||
_PKGDIR= ${.CURDIR}
|
||||
. endif
|
||||
. for sp in ${_PKGS}
|
||||
PKGNAME${_SP.${sp}}= ${sp}-${PKGVERSION}
|
||||
PKGNAMES+= ${PKGNAME${_SP.${sp}}}
|
||||
PKGFILE${_SP.${sp}}= ${_PKGDIR}/${PKGNAME${_SP.${sp}}}${PKG_SUFX}
|
||||
. endfor
|
||||
_EXTRA_PACKAGE_TARGET_DEP+= ${_PKGDIR}
|
||||
. for sp in ${_PKGS}
|
||||
WRKDIR_PKGFILE${_SP.${sp}}= ${WRKDIR}/pkg/${PKGNAME${_SP.${sp}}}${PKG_SUFX}
|
||||
. endfor
|
||||
|
||||
# Integrate with the license auditing framework
|
||||
. if !defined (DISABLE_LICENSES)
|
||||
.include "${PORTSDIR}/Mk/bsd.licenses.mk"
|
||||
. endif
|
||||
|
||||
CONFIGURE_SCRIPT?= configure
|
||||
CONFIGURE_CMD?= ./${CONFIGURE_SCRIPT}
|
||||
CONFIGURE_TARGET?= ${HOSTARCH}-portbld-${OPSYS:tl}${OSREL}
|
||||
|
@ -3402,10 +3459,6 @@ do-test:
|
|||
_EXTRA_PACKAGE_TARGET_DEP+= ${PKGFILE}
|
||||
_PORTS_DIRECTORIES+= ${PKGREPOSITORY}
|
||||
|
||||
${PKGFILE}: ${WRKDIR_PKGFILE} ${PKGREPOSITORY}
|
||||
@${LN} -f ${WRKDIR_PKGFILE} ${PKGFILE} 2>/dev/null \
|
||||
|| ${CP} -f ${WRKDIR_PKGFILE} ${PKGFILE}
|
||||
|
||||
. if ${PKGORIGIN} == "ports-mgmt/pkg" || ${PKGORIGIN} == "ports-mgmt/pkg-devel"
|
||||
_EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTREPOSITORY}
|
||||
_PORTS_DIRECTORIES+= ${PKGLATESTREPOSITORY}
|
||||
|
@ -3431,14 +3484,29 @@ ${PKGOLDSIGFILE}: ${PKGLATESTREPOSITORY}
|
|||
. endif
|
||||
|
||||
# from here this will become a loop for subpackages
|
||||
${WRKDIR_PKGFILE}: ${TMPPLIST} create-manifest ${WRKDIR}/pkg
|
||||
@if ! ${SETENV} ${PKG_ENV} ${PKG_CREATE} ${PKG_CREATE_ARGS} -m ${METADIR} -p ${TMPPLIST} -o ${WRKDIR}/pkg ${PKGNAME}; then \
|
||||
. for sp in ${_PKGS}
|
||||
${_PLIST}.${sp}: ${TMPPLIST}
|
||||
@if [ "${PKGBASE}" = "${sp}" ]; then \
|
||||
${SED} "/^@comment /d; /@@/d" ${TMPPLIST} > ${.TARGET} ; \
|
||||
else \
|
||||
${SED} -n "s/@@${sp:S/${PKGBASE}-//}@@//p" ${TMPPLIST} > ${.TARGET} ; \
|
||||
fi
|
||||
|
||||
${WRKDIR_PKGFILE${_SP.${sp}}}: ${_PLIST}.${sp} create-manifest ${WRKDIR}/pkg
|
||||
@echo "===> Building ${PKGNAME${_SP.${sp}}}"
|
||||
@if ! ${SETENV} ${PKG_ENV} ${PKG_CREATE} ${PKG_CREATE_ARGS} -m ${METADIR}.${sp} -p ${_PLIST}.${sp} -o ${WRKDIR}/pkg ${PKGNAME}; then \
|
||||
cd ${.CURDIR} && eval ${MAKE} delete-package >/dev/null; \
|
||||
exit 1; \
|
||||
fi
|
||||
#
|
||||
# Temporary will be later dynamically added per subpackages
|
||||
_EXTRA_PACKAGE_TARGET_DEP+= ${WRKDIR_PKGFILE}
|
||||
|
||||
_EXTRA_PACKAGE_TARGET_DEP+= ${WRKDIR_PKGFILE${_SP.${sp}}}
|
||||
|
||||
${PKGFILE${_SP.${sp}}}: ${WRKDIR_PKGFILE${_SP.${sp}}}
|
||||
@${LN} -f ${WRKDIR_PKGFILE${_SP.${sp}}} ${PKGFILE${_SP.${sp}}} 2>/dev/null \
|
||||
|| ${CP} -f ${WRKDIR_PKGFILE${_SP.${sp}}} ${PKGFILE${_SP.${sp}}}
|
||||
|
||||
_EXTRA_PACKAGE_TARGET_DEP+= ${PKGFILE${_SP.${sp}}}
|
||||
. endfor
|
||||
# This will be the end of the loop
|
||||
|
||||
. if !target(do-package)
|
||||
|
@ -3455,14 +3523,18 @@ do-package: ${_EXTRA_PACKAGE_TARGET_DEP} ${WRKDIR}/pkg
|
|||
|
||||
. if !target(delete-package)
|
||||
delete-package:
|
||||
@${ECHO_MSG} "===> Deleting package for ${PKGNAME}"
|
||||
. for sp in ${_PKGS}
|
||||
@${ECHO_MSG} "===> Deleting package for ${sp}"
|
||||
# When staging, the package may only be in the workdir if not root
|
||||
@${RM} ${PKGFILE} ${WRKDIR_PKGFILE} 2>/dev/null || :
|
||||
@${RM} ${PKGFILE${_SP.${sp}}} ${WRKDIR_PKGFILE${_SP.${sp}}} 2>/dev/null || :
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
. if !target(delete-package-list)
|
||||
delete-package-list:
|
||||
@${ECHO_CMD} "[ -f ${PKGFILE} ] && (${ECHO_CMD} deleting ${PKGFILE}; ${RM} ${PKGFILE})"
|
||||
. for sp in ${_PKGS}
|
||||
@${ECHO_CMD} "[ -f ${PKGFILE${_SP.${sp}}} ] && (${ECHO_CMD} deleting ${PKGFILE${_SP.${sp}}}; ${RM} ${PKGFILE${_SP.${sp}}})"
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
# Used by scripts and users to install a package from local repository.
|
||||
|
@ -3474,13 +3546,16 @@ _INSTALL_PKG_ARGS= -f
|
|||
. if defined(INSTALLS_DEPENDS)
|
||||
_INSTALL_PKG_ARGS+= -A
|
||||
. endif
|
||||
install-package:
|
||||
@if [ -f "${WRKDIR}/pkg/${PKGNAME}${PKG_SUFX}" ]; then \
|
||||
_pkgfile="${WRKDIR_PKGFILE}"; \
|
||||
. for sp in ${_PKGS}
|
||||
install-package: install-package.${sp}
|
||||
install-package.${sp}:
|
||||
@if [ -f "${WRKDIR_PKGFILE${_SP.${sp}}}" ]; then \
|
||||
_pkgfile="${WRKDIR_PKGFILE${_SP.${sp}}}"; \
|
||||
else \
|
||||
_pkgfile="${PKGFILE}"; \
|
||||
_pkgfile="${PKGFILE${_SP.${sp}}}"; \
|
||||
fi; \
|
||||
${PKG_ADD} ${_INSTALL_PKG_ARGS} $${_pkgfile}
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
# Utility targets follow
|
||||
|
@ -3673,7 +3748,7 @@ install-message:
|
|||
test-message:
|
||||
@${ECHO_MSG} "===> Testing for ${PKGNAME}"
|
||||
package-message:
|
||||
@${ECHO_MSG} "===> Building package for ${PKGNAME}"
|
||||
@${ECHO_MSG} "===> Building packages for ${PKGNAME}"
|
||||
|
||||
# Empty pre-* and post-* targets
|
||||
|
||||
|
@ -3743,14 +3818,16 @@ deinstall:
|
|||
${SU_CMD} "${MAKE} ${.TARGET}"
|
||||
@${ECHO_MSG} "===> Returning to user credentials"
|
||||
. else
|
||||
@${ECHO_MSG} "===> Deinstalling for ${PKGBASE}"
|
||||
@if ${PKG_INFO} -e ${PKGBASE}; then \
|
||||
p=`${PKG_INFO} -q -O ${PKGBASE}`; \
|
||||
. for _sp in ${_PKGS}
|
||||
@${ECHO_MSG} "===> Deinstalling for ${_sp}"
|
||||
@if ${PKG_INFO} -e ${_sp}; then \
|
||||
p=`${PKG_INFO} -q -O ${_sp}`; \
|
||||
${ECHO_MSG} "===> Deinstalling $${p}"; \
|
||||
${PKG_DELETE} -f ${PKGBASE} ; \
|
||||
${PKG_DELETE} -f ${_sp} ; \
|
||||
else \
|
||||
${ECHO_MSG} "===> ${PKGBASE} not installed, skipping"; \
|
||||
${ECHO_MSG} "===> ${_sp} not installed, skipping"; \
|
||||
fi
|
||||
. endfor
|
||||
@${RM} ${INSTALL_COOKIE} ${PACKAGE_COOKIE}
|
||||
. endif
|
||||
. endif
|
||||
|
@ -3976,7 +4053,7 @@ package-name:
|
|||
repackage: pre-repackage package
|
||||
|
||||
pre-repackage:
|
||||
@${RM} ${PACKAGE_COOKIE}
|
||||
@${RM} ${PACKAGE_COOKIE} ${TMPPLIST}*
|
||||
. endif
|
||||
|
||||
# Build a package but don't check the cookie for installation, also don't
|
||||
|
@ -3994,10 +4071,13 @@ package-noinstall: package
|
|||
depends: pkg-depends extract-depends patch-depends lib-depends fetch-depends build-depends run-depends
|
||||
|
||||
. for deptype in PKG EXTRACT PATCH FETCH BUILD LIB RUN TEST
|
||||
. for sp in ${_PKGS}
|
||||
${deptype}_DEPENDS_ALL+= ${${deptype}_DEPENDS${_SP.${sp}}}
|
||||
. endfor
|
||||
${deptype:tl}-depends:
|
||||
. if defined(${deptype}_DEPENDS) && !defined(NO_DEPENDS)
|
||||
. if !empty(${deptype}_DEPENDS_ALL) && !defined(NO_DEPENDS)
|
||||
@${SETENV} \
|
||||
dp_RAWDEPENDS="${${deptype}_DEPENDS}" \
|
||||
dp_RAWDEPENDS="${${deptype}_DEPENDS_ALL}" \
|
||||
dp_DEPTYPE="${deptype}_DEPENDS" \
|
||||
dp_DEPENDS_TARGET="${DEPENDS_TARGET}" \
|
||||
dp_DEPENDS_PRECLEAN="${DEPENDS_PRECLEAN}" \
|
||||
|
@ -4026,7 +4106,7 @@ ${deptype:tl}-depends:
|
|||
|
||||
# Dependency lists: both build and runtime, recursive. Print out directory names.
|
||||
|
||||
_UNIFIED_DEPENDS=${PKG_DEPENDS} ${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS} ${TEST_DEPENDS}
|
||||
_UNIFIED_DEPENDS=${PKG_DEPENDS_ALL} ${EXTRACT_DEPENDS_ALL} ${PATCH_DEPENDS_ALL} ${FETCH_DEPENDS_ALL} ${BUILD_DEPENDS_ALL} ${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL} ${TEST_DEPENDS_ALL}
|
||||
_DEPEND_SPECIALS= ${_UNIFIED_DEPENDS:M*\:*\:*:C,^[^:]*:([^:]*):.*$,\1,}
|
||||
|
||||
. for d in ${_UNIFIED_DEPENDS:M*\:/*}
|
||||
|
@ -4079,9 +4159,9 @@ ALL-DEPENDS-LIST= ${DEPENDS-LIST} -r ${_UNIFIED_DEPENDS:Q}
|
|||
ALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -r ${_UNIFIED_DEPENDS:Q}
|
||||
DEINSTALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -r ${_UNIFIED_DEPENDS:N${PKG_DEPENDS}:Q}
|
||||
MISSING-DEPENDS-LIST= ${DEPENDS-LIST} -m ${_UNIFIED_DEPENDS:Q}
|
||||
BUILD-DEPENDS-LIST= ${DEPENDS-LIST} "${PKG_DEPENDS} ${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS}"
|
||||
RUN-DEPENDS-LIST= ${DEPENDS-LIST} "${LIB_DEPENDS} ${RUN_DEPENDS}"
|
||||
TEST-DEPENDS-LIST= ${DEPENDS-LIST} ${TEST_DEPENDS:Q}
|
||||
BUILD-DEPENDS-LIST= ${DEPENDS-LIST} "${PKG_DEPENDS_ALL} ${EXTRACT_DEPENDS_ALL} ${PATCH_DEPENDS_ALL} ${FETCH_DEPENDS_ALL} ${BUILD_DEPENDS_ALL} ${LIB_DEPENDS_ALL}"
|
||||
RUN-DEPENDS-LIST= ${DEPENDS-LIST} "${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL}"
|
||||
TEST-DEPENDS-LIST= ${DEPENDS-LIST} ${TEST_DEPENDS_ALL:Q}
|
||||
CLEAN-DEPENDS-LIST= ${DEPENDS-LIST} -wr ${_UNIFIED_DEPENDS:Q}
|
||||
CLEAN-DEPENDS-LIMITED-LIST= ${DEPENDS-LIST} -w ${_UNIFIED_DEPENDS:Q}
|
||||
|
||||
|
@ -4170,7 +4250,7 @@ fetch-required: fetch
|
|||
@${ECHO_MSG} "===> Fetching all required distfiles for ${PKGNAME} and dependencies"
|
||||
. for deptype in PKG EXTRACT PATCH FETCH BUILD RUN
|
||||
. if defined(${deptype}_DEPENDS)
|
||||
@targ=fetch; deps="${${deptype}_DEPENDS}"; ${FETCH_LIST}
|
||||
@targ=fetch; deps="${${deptype}_DEPENDS_ALL}"; ${FETCH_LIST}
|
||||
. endif
|
||||
. endfor
|
||||
. endif
|
||||
|
@ -4182,7 +4262,7 @@ fetch-required-list: fetch-list
|
|||
. if !defined(NO_DEPENDS)
|
||||
. for deptype in PKG EXTRACT PATCH FETCH BUILD RUN
|
||||
. if defined(${deptype}_DEPENDS)
|
||||
@targ=fetch-list; deps="${${deptype}_DEPENDS}"; ${FETCH_LIST}
|
||||
@targ=fetch-list; deps="${${deptype}_DEPENDS_ALL}"; ${FETCH_LIST}
|
||||
. endif
|
||||
. endfor
|
||||
. endif
|
||||
|
@ -4221,7 +4301,7 @@ package-depends-list:
|
|||
@${PACKAGE-DEPENDS-LIST}
|
||||
. endif
|
||||
|
||||
_LIB_RUN_DEPENDS= ${LIB_DEPENDS} ${RUN_DEPENDS}
|
||||
_LIB_RUN_DEPENDS= ${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL}
|
||||
PACKAGE-DEPENDS-LIST?= \
|
||||
if [ "${CHILD_DEPENDS}" ]; then \
|
||||
installed=$$(${PKG_INFO} -qO ${PKGORIGIN} 2>/dev/null || \
|
||||
|
@ -4240,6 +4320,11 @@ PACKAGE-DEPENDS-LIST?= \
|
|||
for dir in ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,}; do \
|
||||
unset flavor; \
|
||||
case $${dir} in \
|
||||
*~*) \
|
||||
dir=$${dir%~*}; \
|
||||
;; \
|
||||
esac; \
|
||||
case $${dir} in \
|
||||
*@*) \
|
||||
flavor=$${dir\#*@}; \
|
||||
dir=$${dir%@*}; \
|
||||
|
@ -4268,61 +4353,85 @@ PACKAGE-DEPENDS-LIST?= \
|
|||
fi; \
|
||||
done
|
||||
|
||||
ACTUAL-PACKAGE-DEPENDS?= \
|
||||
# FIXME: SELF_DEPENDS can only be used to depend on sub packages whose
|
||||
# package name has not been overrided by the framework, otherwize the
|
||||
# assumption made below that the package name is "PKGBASE-$$self" is broken.
|
||||
. for sp in ${_PKGS}
|
||||
ACTUAL-PACKAGE-DEPENDS${_SP.${sp}}?= \
|
||||
depfiles="" ; \
|
||||
for lib in ${LIB_DEPENDS:C/\:.*//}; do \
|
||||
for lib in ${LIB_DEPENDS${_SP.${sp}}:C/\:.*//}; do \
|
||||
depfiles="$$depfiles `${SETENV} LIB_DIRS="${LIB_DIRS}" LOCALBASE="${LOCALBASE}" ${SH} ${SCRIPTSDIR}/find-lib.sh $${lib}`" ; \
|
||||
done ; \
|
||||
${SETENV} PKG_BIN="${PKG_BIN}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS:C/(.*)\:.*/"\1"/}
|
||||
for self in ${SELF_DEPENDS${_SP.${sp}}}; do \
|
||||
if [ "$$self" = "main" ]; then \
|
||||
printf "\"%s\": {origin: \"%s\", version: \"%s\"}\n" ${PKGBASE} ${PKGORIGIN} ${PKGVERSION}; \
|
||||
else \
|
||||
printf "\"%s-%s\": {origin: \"%s\", version: \"%s\"}\n" ${PKGBASE} $$self ${PKGORIGIN} ${PKGVERSION}; \
|
||||
fi ; \
|
||||
done ; \
|
||||
${SETENV} PKG_BIN="${PKG_BIN}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS${_SP.${sp}}:C/(.*)\:.*/"\1"/}
|
||||
. endfor
|
||||
|
||||
PKG_NOTES_ENV?=
|
||||
. for note in ${PKG_NOTES}
|
||||
PKG_NOTES_ENV+= dp_PKG_NOTE_${note}=${PKG_NOTE_${note}:Q}
|
||||
. endfor
|
||||
|
||||
create-manifest:
|
||||
. for sp in ${_PKGS}
|
||||
PKG_NOTES.${sp}= ${PKG_NOTES}
|
||||
PKG_NOTES_ENV.${sp}= ${PKG_NOTES_ENV}
|
||||
. if ${sp} != ${PKGBASE}
|
||||
PKG_NOTES.${sp}+= subpackage
|
||||
PKG_NOTES_ENV.${sp}+= dp_PKG_NOTE_subpackage=${_SP.${sp}:S/^.//1}
|
||||
. endif
|
||||
create-manifest: create-manifest.${sp}
|
||||
create-manifest.${sp}:
|
||||
@${SETENV} \
|
||||
dp_SCRIPTSDIR='${SCRIPTSDIR}' \
|
||||
dp_ACTUAL_PACKAGE_DEPENDS='${ACTUAL-PACKAGE-DEPENDS}' \
|
||||
dp_ACTUAL_PACKAGE_DEPENDS='${ACTUAL-PACKAGE-DEPENDS${_SP.${sp}}}' \
|
||||
dp_CATEGORIES='${CATEGORIES:u:S/$/,/}' \
|
||||
dp_COMMENT=${COMMENT:Q} \
|
||||
dp_COMMENT=${COMMENT${_SP.${sp}}:Q} \
|
||||
dp_COMPLETE_OPTIONS_LIST='${COMPLETE_OPTIONS_LIST}' \
|
||||
dp_DEPRECATED=${DEPRECATED:Q} \
|
||||
dp_DESCR='${DESCR}' \
|
||||
dp_DESCR='${DESCR${_SP.${sp}}}' \
|
||||
dp_EXPIRATION_DATE='${EXPIRATION_DATE}' \
|
||||
dp_GROUPS='${GROUPS:u:S/$/,/}' \
|
||||
dp_LICENSE='${LICENSE:u:S/$/,/}' \
|
||||
dp_LICENSE_COMB='${LICENSE_COMB}' \
|
||||
dp_MAINTAINER='${MAINTAINER}' \
|
||||
dp_METADIR='${METADIR}' \
|
||||
dp_METADIR='${METADIR}.${sp}' \
|
||||
dp_NO_ARCH='${NO_ARCH}' \
|
||||
dp_PKGBASE='${PKGBASE}' \
|
||||
dp_PKGDEINSTALL='${PKGDEINSTALL}' \
|
||||
dp_PKGINSTALL='${PKGINSTALL}' \
|
||||
dp_PKGMESSAGES='${_PKGMESSAGES}' \
|
||||
dp_PKGBASE='${sp}' \
|
||||
dp_PKGDEINSTALL='${PKGDEINSTALL${_SP.${sp}}}' \
|
||||
dp_PKGINSTALL='${PKGINSTALL${_SP.${sp}}}' \
|
||||
dp_PKGMESSAGES='${_PKGMESSAGES${_SP.${sp}}}' \
|
||||
dp_PKGORIGIN='${PKGORIGIN}' \
|
||||
dp_PKGPOSTDEINSTALL='${PKGPOSTDEINSTALL}' \
|
||||
dp_PKGPOSTINSTALL='${PKGPOSTINSTALL}' \
|
||||
dp_PKGPREDEINSTALL='${PKGPREDEINSTALL}' \
|
||||
dp_PKGPREINSTALL='${PKGPREINSTALL}' \
|
||||
dp_PKGPOSTDEINSTALL='${PKGPOSTDEINSTALL${_SP.${sp}}}' \
|
||||
dp_PKGPOSTINSTALL='${PKGPOSTINSTALL${_SP.${sp}}}' \
|
||||
dp_PKGPREDEINSTALL='${PKGPREDEINSTALL${_SP.${sp}}}' \
|
||||
dp_PKGPREINSTALL='${PKGPREINSTALL${_SP.${sp}}}' \
|
||||
dp_PKGVERSION='${PKGVERSION}' \
|
||||
dp_PKG_BIN='${PKG_BIN}' \
|
||||
dp_PKG_IGNORE_DEPENDS='${PKG_IGNORE_DEPENDS}' \
|
||||
dp_PKG_NOTES='${PKG_NOTES}' \
|
||||
dp_PKG_NOTES='${PKG_NOTES.${sp}}' \
|
||||
dp_PORT_OPTIONS='${PORT_OPTIONS}' \
|
||||
dp_PREFIX='${PREFIX}' \
|
||||
dp_USERS='${USERS:u:S/$/,/}' \
|
||||
dp_WWW='${WWW}' \
|
||||
${PKG_NOTES_ENV} \
|
||||
${PKG_NOTES_ENV.${sp}} \
|
||||
${SH} ${SCRIPTSDIR}/create-manifest.sh
|
||||
. endfor
|
||||
|
||||
# Print out package names.
|
||||
|
||||
package-depends:
|
||||
@${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}'
|
||||
|
||||
actual-package-depends:
|
||||
@${ACTUAL-PACKAGE-DEPENDS}
|
||||
. for sp in ${_PKGS}
|
||||
actual-package-depends: actual-package-depends.${sp}
|
||||
actual-package-depends.${sp}:
|
||||
@${ACTUAL-PACKAGE-DEPENDS${_SP.${sp}}}
|
||||
. endfor
|
||||
|
||||
# Build packages for port and dependencies
|
||||
|
||||
|
@ -4369,12 +4478,12 @@ install-missing-packages:
|
|||
# first to avoid gratuitous breakage.
|
||||
|
||||
. if !target(describe)
|
||||
_EXTRACT_DEPENDS=${EXTRACT_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
|
||||
_PATCH_DEPENDS=${PATCH_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
|
||||
_FETCH_DEPENDS=${FETCH_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
|
||||
_LIB_DEPENDS=${LIB_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
|
||||
_BUILD_DEPENDS=${BUILD_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS}
|
||||
_RUN_DEPENDS=${RUN_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS}
|
||||
_EXTRACT_DEPENDS=${EXTRACT_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
|
||||
_PATCH_DEPENDS=${PATCH_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
|
||||
_FETCH_DEPENDS=${FETCH_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
|
||||
_LIB_DEPENDS=${LIB_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
|
||||
_BUILD_DEPENDS=${BUILD_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS}
|
||||
_RUN_DEPENDS=${RUN_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS}
|
||||
. if exists(${DESCR})
|
||||
_DESCR=${DESCR}
|
||||
. else
|
||||
|
@ -4559,6 +4668,13 @@ generate-plist: ${WRKDIR}
|
|||
@for file in ${PLIST_FILES}; do \
|
||||
${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} >> ${TMPPLIST}; \
|
||||
done
|
||||
. for sp in ${_PKGS}
|
||||
. if ${sp} != ${PKGBASE}
|
||||
@for file in ${PLIST_FILES${_SP.${sp}}}; do \
|
||||
${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's/^/@@${_SP.${sp}:S/^.//}@@/' >> ${TMPPLIST}; \
|
||||
done
|
||||
. endif
|
||||
. endfor
|
||||
. if !empty(PLIST)
|
||||
. for f in ${PLIST}
|
||||
@if [ -f "${f}" ]; then \
|
||||
|
@ -4572,6 +4688,13 @@ generate-plist: ${WRKDIR}
|
|||
@${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@dir ,' >> ${TMPPLIST}
|
||||
. endfor
|
||||
|
||||
. for sp in ${_PKGS}
|
||||
. if ${sp} != ${PKGBASE}
|
||||
. for dir in ${PLIST_DIRS${_SP.${sp}}}
|
||||
@${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@@${_SP.${sp}:S/^.//}@@@dir ,' >> ${TMPPLIST}
|
||||
. endfor
|
||||
. endif
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
${TMPPLIST}:
|
||||
|
@ -4725,20 +4848,20 @@ stage-qa:
|
|||
|
||||
pretty-flavors-package-names: .PHONY
|
||||
. if empty(FLAVORS)
|
||||
@${ECHO_CMD} "no flavor: ${PKGNAME}"
|
||||
@${ECHO_CMD} "no flavor: ${_PKGS}"
|
||||
. else
|
||||
. for f in ${FLAVORS}
|
||||
@${ECHO_CMD} -n "${f}: "
|
||||
@cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -V PKGNAME
|
||||
@cd ${.CURDIR} && ${SETENV} -i FLAVOR=${f} ${MAKE} -B -V _PKGS
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
flavors-package-names: .PHONY
|
||||
. if empty(FLAVORS)
|
||||
@${ECHO_CMD} "${PKGNAME}"
|
||||
@${ECHO_CMD} "${_PKGS}"
|
||||
. else
|
||||
. for f in ${FLAVORS}
|
||||
@cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -V PKGNAME
|
||||
@cd ${.CURDIR} && ${SETENV} -i FLAVOR=${f} ${MAKE} -B -V _PKGS | ${XARGS} -n 1
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
|
@ -4749,19 +4872,22 @@ STAGE_ARGS= -i ${STAGEDIR}
|
|||
STAGE_ARGS= -N
|
||||
. endif
|
||||
|
||||
fake-pkg:
|
||||
. for sp in ${_PKGS}
|
||||
fake-pkg: fake-pkg.${sp}
|
||||
fake-pkg.${sp}: ${_PLIST}.${sp}
|
||||
. if defined(INSTALLS_DEPENDS)
|
||||
. if !defined(NO_PKG_REGISTER)
|
||||
@${ECHO_MSG} "===> Registering installation for ${PKGNAME} as automatic"
|
||||
. endif
|
||||
@${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} -d ${STAGE_ARGS} -m ${METADIR} -f ${TMPPLIST}
|
||||
@${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} -d ${STAGE_ARGS} -m ${METADIR}.${sp} -f ${_PLIST}.${sp}
|
||||
. else
|
||||
. if !defined(NO_PKG_REGISTER)
|
||||
@${ECHO_MSG} "===> Registering installation for ${PKGNAME}"
|
||||
. endif
|
||||
@${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} ${STAGE_ARGS} -m ${METADIR} -f ${TMPPLIST}
|
||||
@${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} ${STAGE_ARGS} -m ${METADIR}.${sp} -f ${_PLIST}.${sp}
|
||||
. endif
|
||||
@${RM} -r ${METADIR}
|
||||
@${RM} -r ${METADIR}.${sp}
|
||||
. endfor
|
||||
. endif
|
||||
|
||||
# Depend is generally meaningless for arbitrary ports, but if someone wants
|
||||
|
|
Loading…
Add table
Reference in a new issue