Changeset View
Changeset View
Standalone View
Standalone View
Mk/bsd.port.mk
Show First 20 Lines • Show All 2,190 Lines • ▼ Show 20 Lines | |||||
PLIST?= ${PKGDIR}/pkg-plist | PLIST?= ${PKGDIR}/pkg-plist | ||||
PKGHELP?= ${PKGDIR}/pkg-help | PKGHELP?= ${PKGDIR}/pkg-help | ||||
PKGINSTALL?= ${PKGDIR}/pkg-install | PKGINSTALL?= ${PKGDIR}/pkg-install | ||||
PKGDEINSTALL?= ${PKGDIR}/pkg-deinstall | PKGDEINSTALL?= ${PKGDIR}/pkg-deinstall | ||||
PKGMESSAGE?= ${PKGDIR}/pkg-message | PKGMESSAGE?= ${PKGDIR}/pkg-message | ||||
_PKGMESSAGES+= ${PKGMESSAGE} | _PKGMESSAGES+= ${PKGMESSAGE} | ||||
TMPPLIST?= ${WRKDIR}/.PLIST.mktmp | TMPPLIST?= ${WRKDIR}/.PLIST.mktmp | ||||
_PLIST?= ${WRKDIR}/.PLIST | |||||
# backward compatibility for users | # backward compatibility for users | ||||
. if defined(_PKG_TRANSITIONING_TO_NEW_EXT) | . if defined(_PKG_TRANSITIONING_TO_NEW_EXT) | ||||
. if defined(PKG_NOCOMPRESS) | . if defined(PKG_NOCOMPRESS) | ||||
PKG_SUFX?= .tar | PKG_SUFX?= .tar | ||||
. else | . else | ||||
PKG_SUFX?= .txz | PKG_SUFX?= .txz | ||||
. endif | . endif | ||||
Show All 17 Lines | |||||
# where pkg(8) stores its data | # where pkg(8) stores its data | ||||
PKG_DBDIR?= /var/db/pkg | PKG_DBDIR?= /var/db/pkg | ||||
ALL_TARGET?= all | ALL_TARGET?= all | ||||
INSTALL_TARGET?= install | INSTALL_TARGET?= install | ||||
INSTALL_TARGET+= ${LATE_INSTALL_ARGS} | 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 | # Popular master sites | ||||
.include "${PORTSDIR}/Mk/bsd.sites.mk" | .include "${PORTSDIR}/Mk/bsd.sites.mk" | ||||
# Empty declaration to avoid "variable MASTER_SITES recursive" error | # Empty declaration to avoid "variable MASTER_SITES recursive" error | ||||
MASTER_SITES?= | MASTER_SITES?= | ||||
PATCH_SITES?= | PATCH_SITES?= | ||||
_MASTER_SITES_DEFAULT?= | _MASTER_SITES_DEFAULT?= | ||||
_PATCH_SITES_DEFAULT?= | _PATCH_SITES_DEFAULT?= | ||||
▲ Show 20 Lines • Show All 357 Lines • ▼ Show 20 Lines | . if empty(VALID_CATEGORIES:M${cat}) | ||||
@${ECHO_MSG} "${PKGNAME}: Makefile error: category ${cat} not in list of valid categories."; \ | @${ECHO_MSG} "${PKGNAME}: Makefile error: category ${cat} not in list of valid categories."; \ | ||||
${FALSE}; | ${FALSE}; | ||||
. endif | . endif | ||||
. endfor | . endfor | ||||
. endif | . endif | ||||
PKGREPOSITORYSUBDIR?= All | PKGREPOSITORYSUBDIR?= All | ||||
PKGREPOSITORY?= ${PACKAGES}/${PKGREPOSITORYSUBDIR} | 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 '-' | # The "latest version" link -- ${PKGNAME} minus everthing after the last '-' | ||||
PKGLATESTREPOSITORY?= ${PACKAGES}/Latest | PKGLATESTREPOSITORY?= ${PACKAGES}/Latest | ||||
PKGBASE?= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} | PKGBASE?= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} | ||||
PKGLATESTFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}${PKG_SUFX} | PKGLATESTFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}${PKG_SUFX} | ||||
. if ${PKG_COMPRESSION_FORMAT} == txz | . if ${PKG_COMPRESSION_FORMAT} == txz | ||||
PKGOLDLATESTFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}.${PKG_COMPRESSION_FORMAT} | PKGOLDLATESTFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}.${PKG_COMPRESSION_FORMAT} | ||||
# Temporary workaround to be deleted once every supported version of FreeBSD | # Temporary workaround to be deleted once every supported version of FreeBSD | ||||
# have a bootstrap which handles the pkg extension. | # have a bootstrap which handles the pkg extension. | ||||
PKGOLDSIGFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}.${PKG_COMPRESSION_FORMAT}.sig | PKGOLDSIGFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}.${PKG_COMPRESSION_FORMAT}.sig | ||||
. endif | . 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_SCRIPT?= configure | ||||
CONFIGURE_CMD?= ./${CONFIGURE_SCRIPT} | CONFIGURE_CMD?= ./${CONFIGURE_SCRIPT} | ||||
CONFIGURE_TARGET?= ${HOSTARCH}-portbld-${OPSYS:tl}${OSREL} | CONFIGURE_TARGET?= ${HOSTARCH}-portbld-${OPSYS:tl}${OSREL} | ||||
CONFIGURE_TARGET:= ${CONFIGURE_TARGET:S/--build=//} | CONFIGURE_TARGET:= ${CONFIGURE_TARGET:S/--build=//} | ||||
CONFIGURE_LOG?= config.log | CONFIGURE_LOG?= config.log | ||||
# A default message to print if do-configure fails. | # A default message to print if do-configure fails. | ||||
CONFIGURE_FAIL_MESSAGE?= "Please report the problem to ${MAINTAINER} [maintainer] and attach the \"${CONFIGURE_WRKSRC}/${CONFIGURE_LOG}\" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a ${PKG_INFO} -Ea)." | CONFIGURE_FAIL_MESSAGE?= "Please report the problem to ${MAINTAINER} [maintainer] and attach the \"${CONFIGURE_WRKSRC}/${CONFIGURE_LOG}\" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a ${PKG_INFO} -Ea)." | ||||
▲ Show 20 Lines • Show All 759 Lines • ▼ Show 20 Lines | |||||
. endif | . endif | ||||
# Package | # Package | ||||
. if defined(_HAVE_PACKAGES) | . if defined(_HAVE_PACKAGES) | ||||
_EXTRA_PACKAGE_TARGET_DEP+= ${PKGFILE} | _EXTRA_PACKAGE_TARGET_DEP+= ${PKGFILE} | ||||
_PORTS_DIRECTORIES+= ${PKGREPOSITORY} | _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" | . if ${PKGORIGIN} == "ports-mgmt/pkg" || ${PKGORIGIN} == "ports-mgmt/pkg-devel" | ||||
_EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTREPOSITORY} | _EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTREPOSITORY} | ||||
_PORTS_DIRECTORIES+= ${PKGLATESTREPOSITORY} | _PORTS_DIRECTORIES+= ${PKGLATESTREPOSITORY} | ||||
_EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTFILE} | _EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTFILE} | ||||
${PKGLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY} | ${PKGLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY} | ||||
${INSTALL} -l rs ${PKGFILE} ${PKGLATESTFILE} | ${INSTALL} -l rs ${PKGFILE} ${PKGLATESTFILE} | ||||
Show All 9 Lines | |||||
${PKGOLDSIGFILE}: ${PKGLATESTREPOSITORY} | ${PKGOLDSIGFILE}: ${PKGLATESTREPOSITORY} | ||||
${INSTALL} -l rs pkg.pkg.sig ${PKGOLDSIGFILE} | ${INSTALL} -l rs pkg.pkg.sig ${PKGOLDSIGFILE} | ||||
. endif | . endif | ||||
. endif | . endif | ||||
. endif | . endif | ||||
# from here this will become a loop for subpackages | # from here this will become a loop for subpackages | ||||
${WRKDIR_PKGFILE}: ${TMPPLIST} create-manifest ${WRKDIR}/pkg | . for sp in ${_PKGS} | ||||
@if ! ${SETENV} ${PKG_ENV} ${PKG_CREATE} ${PKG_CREATE_ARGS} -m ${METADIR} -p ${TMPPLIST} -o ${WRKDIR}/pkg ${PKGNAME}; then \ | ${_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; \ | cd ${.CURDIR} && eval ${MAKE} delete-package >/dev/null; \ | ||||
exit 1; \ | exit 1; \ | ||||
fi | fi | ||||
# | |||||
# Temporary will be later dynamically added per subpackages | _EXTRA_PACKAGE_TARGET_DEP+= ${WRKDIR_PKGFILE${_SP.${sp}}} | ||||
_EXTRA_PACKAGE_TARGET_DEP+= ${WRKDIR_PKGFILE} | |||||
${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 | # This will be the end of the loop | ||||
. if !target(do-package) | . if !target(do-package) | ||||
PKG_CREATE_ARGS+= -f ${PKG_COMPRESSION_FORMAT} | PKG_CREATE_ARGS+= -f ${PKG_COMPRESSION_FORMAT} | ||||
. if defined(PKG_COMPRESSION_LEVEL) | . if defined(PKG_COMPRESSION_LEVEL) | ||||
PKG_CREATE_ARGS+= -l ${PKG_COMPRESSION_LEVEL} | PKG_CREATE_ARGS+= -l ${PKG_COMPRESSION_LEVEL} | ||||
. endif | . endif | ||||
PKG_CREATE_ARGS+= -r ${STAGEDIR} | PKG_CREATE_ARGS+= -r ${STAGEDIR} | ||||
. if defined(PKG_CREATE_VERBOSE) | . if defined(PKG_CREATE_VERBOSE) | ||||
PKG_CREATE_ARGS+= -v | PKG_CREATE_ARGS+= -v | ||||
. endif | . endif | ||||
do-package: ${_EXTRA_PACKAGE_TARGET_DEP} ${WRKDIR}/pkg | do-package: ${_EXTRA_PACKAGE_TARGET_DEP} ${WRKDIR}/pkg | ||||
. endif | . endif | ||||
. if !target(delete-package) | . if !target(delete-package) | ||||
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 | # 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 | . endif | ||||
. if !target(delete-package-list) | . if !target(delete-package-list) | ||||
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 | . endif | ||||
# Used by scripts and users to install a package from local repository. | # Used by scripts and users to install a package from local repository. | ||||
# Poudriere -i uses this, please keep. | # Poudriere -i uses this, please keep. | ||||
. if !target(install-package) | . if !target(install-package) | ||||
. if defined(FORCE_PKG_REGISTER) | . if defined(FORCE_PKG_REGISTER) | ||||
_INSTALL_PKG_ARGS= -f | _INSTALL_PKG_ARGS= -f | ||||
. endif | . endif | ||||
. if defined(INSTALLS_DEPENDS) | . if defined(INSTALLS_DEPENDS) | ||||
_INSTALL_PKG_ARGS+= -A | _INSTALL_PKG_ARGS+= -A | ||||
. endif | . endif | ||||
install-package: | . for sp in ${_PKGS} | ||||
@if [ -f "${WRKDIR}/pkg/${PKGNAME}${PKG_SUFX}" ]; then \ | install-package: install-package.${sp} | ||||
_pkgfile="${WRKDIR_PKGFILE}"; \ | install-package.${sp}: | ||||
@if [ -f "${WRKDIR_PKGFILE${_SP.${sp}}}" ]; then \ | |||||
_pkgfile="${WRKDIR_PKGFILE${_SP.${sp}}}"; \ | |||||
else \ | else \ | ||||
_pkgfile="${PKGFILE}"; \ | _pkgfile="${PKGFILE${_SP.${sp}}}"; \ | ||||
fi; \ | fi; \ | ||||
${PKG_ADD} ${_INSTALL_PKG_ARGS} $${_pkgfile} | ${PKG_ADD} ${_INSTALL_PKG_ARGS} $${_pkgfile} | ||||
. endfor | |||||
. endif | . endif | ||||
# Utility targets follow | # Utility targets follow | ||||
. if !target(check-already-installed) | . if !target(check-already-installed) | ||||
. if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER) | . if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER) | ||||
check-already-installed: | check-already-installed: | ||||
@${ECHO_MSG} "===> Checking if ${PKGBASE} is already installed"; \ | @${ECHO_MSG} "===> Checking if ${PKGBASE} is already installed"; \ | ||||
▲ Show 20 Lines • Show All 176 Lines • ▼ Show 20 Lines | build-message: | ||||
@${ECHO_MSG} "===> Building for ${PKGNAME}" | @${ECHO_MSG} "===> Building for ${PKGNAME}" | ||||
stage-message: | stage-message: | ||||
@${ECHO_MSG} "===> Staging for ${PKGNAME}" | @${ECHO_MSG} "===> Staging for ${PKGNAME}" | ||||
install-message: | install-message: | ||||
@${ECHO_MSG} "===> Installing for ${PKGNAME}" | @${ECHO_MSG} "===> Installing for ${PKGNAME}" | ||||
test-message: | test-message: | ||||
@${ECHO_MSG} "===> Testing for ${PKGNAME}" | @${ECHO_MSG} "===> Testing for ${PKGNAME}" | ||||
package-message: | package-message: | ||||
@${ECHO_MSG} "===> Building package for ${PKGNAME}" | @${ECHO_MSG} "===> Building packages for ${PKGNAME}" | ||||
# Empty pre-* and post-* targets | # Empty pre-* and post-* targets | ||||
. if exists(${SCRIPTDIR}) | . if exists(${SCRIPTDIR}) | ||||
. for stage in pre post | . for stage in pre post | ||||
. for name in pkg check-sanity fetch extract patch configure build stage install package | . for name in pkg check-sanity fetch extract patch configure build stage install package | ||||
. if !target(${stage}-${name}-script) | . if !target(${stage}-${name}-script) | ||||
▲ Show 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | |||||
. if !target(deinstall) | . if !target(deinstall) | ||||
deinstall: | deinstall: | ||||
. if defined(UID) && ${UID} != 0 && !defined(INSTALL_AS_USER) | . if defined(UID) && ${UID} != 0 && !defined(INSTALL_AS_USER) | ||||
@${ECHO_MSG} "===> Switching to root credentials for '${.TARGET}' target" | @${ECHO_MSG} "===> Switching to root credentials for '${.TARGET}' target" | ||||
@cd ${.CURDIR} && \ | @cd ${.CURDIR} && \ | ||||
${SU_CMD} "${MAKE} ${.TARGET}" | ${SU_CMD} "${MAKE} ${.TARGET}" | ||||
@${ECHO_MSG} "===> Returning to user credentials" | @${ECHO_MSG} "===> Returning to user credentials" | ||||
. else | . else | ||||
@${ECHO_MSG} "===> Deinstalling for ${PKGBASE}" | . for _sp in ${_PKGS} | ||||
@if ${PKG_INFO} -e ${PKGBASE}; then \ | @${ECHO_MSG} "===> Deinstalling for ${_sp}" | ||||
p=`${PKG_INFO} -q -O ${PKGBASE}`; \ | @if ${PKG_INFO} -e ${_sp}; then \ | ||||
p=`${PKG_INFO} -q -O ${_sp}`; \ | |||||
${ECHO_MSG} "===> Deinstalling $${p}"; \ | ${ECHO_MSG} "===> Deinstalling $${p}"; \ | ||||
${PKG_DELETE} -f ${PKGBASE} ; \ | ${PKG_DELETE} -f ${_sp} ; \ | ||||
else \ | else \ | ||||
${ECHO_MSG} "===> ${PKGBASE} not installed, skipping"; \ | ${ECHO_MSG} "===> ${_sp} not installed, skipping"; \ | ||||
fi | fi | ||||
. endfor | |||||
@${RM} ${INSTALL_COOKIE} ${PACKAGE_COOKIE} | @${RM} ${INSTALL_COOKIE} ${PACKAGE_COOKIE} | ||||
. endif | . endif | ||||
. endif | . endif | ||||
# Deinstall-all | # Deinstall-all | ||||
# | # | ||||
# Special target to remove installation of all ports of the same origin | # Special target to remove installation of all ports of the same origin | ||||
▲ Show 20 Lines • Show All 209 Lines • ▼ Show 20 Lines | |||||
. endif | . endif | ||||
# Build a package but don't check the package cookie | # Build a package but don't check the package cookie | ||||
. if !target(repackage) | . if !target(repackage) | ||||
repackage: pre-repackage package | repackage: pre-repackage package | ||||
pre-repackage: | pre-repackage: | ||||
@${RM} ${PACKAGE_COOKIE} | @${RM} ${PACKAGE_COOKIE} ${TMPPLIST}* | ||||
. endif | . endif | ||||
# Build a package but don't check the cookie for installation, also don't | # Build a package but don't check the cookie for installation, also don't | ||||
# install package cookie | # install package cookie | ||||
. if !target(package-noinstall) | . if !target(package-noinstall) | ||||
package-noinstall: package | package-noinstall: package | ||||
. endif | . endif | ||||
################################################################ | ################################################################ | ||||
# Dependency checking | # Dependency checking | ||||
################################################################ | ################################################################ | ||||
. if !target(depends) | . if !target(depends) | ||||
depends: pkg-depends extract-depends patch-depends lib-depends fetch-depends build-depends run-depends | 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 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: | ${deptype:tl}-depends: | ||||
. if defined(${deptype}_DEPENDS) && !defined(NO_DEPENDS) | . if !empty(${deptype}_DEPENDS_ALL) && !defined(NO_DEPENDS) | ||||
@${SETENV} \ | @${SETENV} \ | ||||
dp_RAWDEPENDS="${${deptype}_DEPENDS}" \ | dp_RAWDEPENDS="${${deptype}_DEPENDS_ALL}" \ | ||||
dp_DEPTYPE="${deptype}_DEPENDS" \ | dp_DEPTYPE="${deptype}_DEPENDS" \ | ||||
dp_DEPENDS_TARGET="${DEPENDS_TARGET}" \ | dp_DEPENDS_TARGET="${DEPENDS_TARGET}" \ | ||||
dp_DEPENDS_PRECLEAN="${DEPENDS_PRECLEAN}" \ | dp_DEPENDS_PRECLEAN="${DEPENDS_PRECLEAN}" \ | ||||
dp_DEPENDS_CLEAN="${DEPENDS_CLEAN}" \ | dp_DEPENDS_CLEAN="${DEPENDS_CLEAN}" \ | ||||
dp_DEPENDS_ARGS="${DEPENDS_ARGS}" \ | dp_DEPENDS_ARGS="${DEPENDS_ARGS}" \ | ||||
dp_USE_PACKAGE_DEPENDS="${USE_PACKAGE_DEPENDS}" \ | dp_USE_PACKAGE_DEPENDS="${USE_PACKAGE_DEPENDS}" \ | ||||
dp_USE_PACKAGE_DEPENDS_ONLY="${USE_PACKAGE_DEPENDS_ONLY}" \ | dp_USE_PACKAGE_DEPENDS_ONLY="${USE_PACKAGE_DEPENDS_ONLY}" \ | ||||
dp_PKG_ADD="${PKG_ADD}" \ | dp_PKG_ADD="${PKG_ADD}" \ | ||||
Show All 12 Lines | @${SETENV} \ | ||||
${SH} ${SCRIPTSDIR}/do-depends.sh | ${SH} ${SCRIPTSDIR}/do-depends.sh | ||||
. endif | . endif | ||||
. endfor | . endfor | ||||
. endif | . endif | ||||
# Dependency lists: both build and runtime, recursive. Print out directory names. | # 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,} | _DEPEND_SPECIALS= ${_UNIFIED_DEPENDS:M*\:*\:*:C,^[^:]*:([^:]*):.*$,\1,} | ||||
. for d in ${_UNIFIED_DEPENDS:M*\:/*} | . for d in ${_UNIFIED_DEPENDS:M*\:/*} | ||||
_PORTSDIR_STR= $${PORTSDIR}/ | _PORTSDIR_STR= $${PORTSDIR}/ | ||||
DEV_WARNING+= "It looks like the ${d} depends line has an absolute port origin, make sure to remove \$${_PORTSDIR_STR} from it." | DEV_WARNING+= "It looks like the ${d} depends line has an absolute port origin, make sure to remove \$${_PORTSDIR_STR} from it." | ||||
. endfor | . endfor | ||||
all-depends-list: | all-depends-list: | ||||
Show All 36 Lines | ${SETENV} \ | ||||
dp_OVERLAYS="${OVERLAYS}" \ | dp_OVERLAYS="${OVERLAYS}" \ | ||||
${SH} ${SCRIPTSDIR}/depends-list.sh \ | ${SH} ${SCRIPTSDIR}/depends-list.sh \ | ||||
${DEPENDS_SHOW_FLAVOR:D-f} | ${DEPENDS_SHOW_FLAVOR:D-f} | ||||
ALL-DEPENDS-LIST= ${DEPENDS-LIST} -r ${_UNIFIED_DEPENDS:Q} | ALL-DEPENDS-LIST= ${DEPENDS-LIST} -r ${_UNIFIED_DEPENDS:Q} | ||||
ALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -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} | DEINSTALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -r ${_UNIFIED_DEPENDS:N${PKG_DEPENDS}:Q} | ||||
MISSING-DEPENDS-LIST= ${DEPENDS-LIST} -m ${_UNIFIED_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}" | 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} ${RUN_DEPENDS}" | RUN-DEPENDS-LIST= ${DEPENDS-LIST} "${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL}" | ||||
TEST-DEPENDS-LIST= ${DEPENDS-LIST} ${TEST_DEPENDS:Q} | TEST-DEPENDS-LIST= ${DEPENDS-LIST} ${TEST_DEPENDS_ALL:Q} | ||||
CLEAN-DEPENDS-LIST= ${DEPENDS-LIST} -wr ${_UNIFIED_DEPENDS:Q} | CLEAN-DEPENDS-LIST= ${DEPENDS-LIST} -wr ${_UNIFIED_DEPENDS:Q} | ||||
CLEAN-DEPENDS-LIMITED-LIST= ${DEPENDS-LIST} -w ${_UNIFIED_DEPENDS:Q} | CLEAN-DEPENDS-LIMITED-LIST= ${DEPENDS-LIST} -w ${_UNIFIED_DEPENDS:Q} | ||||
. if !target(clean-depends) | . if !target(clean-depends) | ||||
clean-depends: | clean-depends: | ||||
@for dir in $$(${CLEAN-DEPENDS-LIST}); do \ | @for dir in $$(${CLEAN-DEPENDS-LIST}); do \ | ||||
(cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \ | (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \ | ||||
done | done | ||||
▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | |||||
. if !target(fetch-required) | . if !target(fetch-required) | ||||
fetch-required: fetch | fetch-required: fetch | ||||
. if defined(NO_DEPENDS) | . if defined(NO_DEPENDS) | ||||
@${ECHO_MSG} "===> NO_DEPENDS is set, not fetching any other distfiles for ${PKGNAME}" | @${ECHO_MSG} "===> NO_DEPENDS is set, not fetching any other distfiles for ${PKGNAME}" | ||||
. else | . else | ||||
@${ECHO_MSG} "===> Fetching all required distfiles for ${PKGNAME} and dependencies" | @${ECHO_MSG} "===> Fetching all required distfiles for ${PKGNAME} and dependencies" | ||||
. for deptype in PKG EXTRACT PATCH FETCH BUILD RUN | . for deptype in PKG EXTRACT PATCH FETCH BUILD RUN | ||||
. if defined(${deptype}_DEPENDS) | . if defined(${deptype}_DEPENDS) | ||||
@targ=fetch; deps="${${deptype}_DEPENDS}"; ${FETCH_LIST} | @targ=fetch; deps="${${deptype}_DEPENDS_ALL}"; ${FETCH_LIST} | ||||
. endif | . endif | ||||
. endfor | . endfor | ||||
. endif | . endif | ||||
. endif | . endif | ||||
. if !target(fetch-required-list) | . if !target(fetch-required-list) | ||||
fetch-required-list: fetch-list | fetch-required-list: fetch-list | ||||
. if !defined(NO_DEPENDS) | . if !defined(NO_DEPENDS) | ||||
. for deptype in PKG EXTRACT PATCH FETCH BUILD RUN | . for deptype in PKG EXTRACT PATCH FETCH BUILD RUN | ||||
. if defined(${deptype}_DEPENDS) | . if defined(${deptype}_DEPENDS) | ||||
@targ=fetch-list; deps="${${deptype}_DEPENDS}"; ${FETCH_LIST} | @targ=fetch-list; deps="${${deptype}_DEPENDS_ALL}"; ${FETCH_LIST} | ||||
. endif | . endif | ||||
. endfor | . endfor | ||||
. endif | . endif | ||||
. endif | . endif | ||||
. if !target(checksum-recursive) | . if !target(checksum-recursive) | ||||
checksum-recursive: | checksum-recursive: | ||||
@${ECHO_MSG} "===> Fetching and checking checksums for ${PKGNAME} and dependencies" | @${ECHO_MSG} "===> Fetching and checking checksums for ${PKGNAME} and dependencies" | ||||
Show All 22 Lines | |||||
# Package (recursive runtime) dependency list. Print out both directory names | # Package (recursive runtime) dependency list. Print out both directory names | ||||
# and package names. | # and package names. | ||||
package-depends-list: | package-depends-list: | ||||
. if defined(CHILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) | . if defined(CHILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) | ||||
@${PACKAGE-DEPENDS-LIST} | @${PACKAGE-DEPENDS-LIST} | ||||
. endif | . endif | ||||
_LIB_RUN_DEPENDS= ${LIB_DEPENDS} ${RUN_DEPENDS} | _LIB_RUN_DEPENDS= ${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL} | ||||
PACKAGE-DEPENDS-LIST?= \ | PACKAGE-DEPENDS-LIST?= \ | ||||
if [ "${CHILD_DEPENDS}" ]; then \ | if [ "${CHILD_DEPENDS}" ]; then \ | ||||
installed=$$(${PKG_INFO} -qO ${PKGORIGIN} 2>/dev/null || \ | installed=$$(${PKG_INFO} -qO ${PKGORIGIN} 2>/dev/null || \ | ||||
${TRUE}); \ | ${TRUE}); \ | ||||
if [ "$$installed" ]; then \ | if [ "$$installed" ]; then \ | ||||
break; \ | break; \ | ||||
fi; \ | fi; \ | ||||
if [ -z "$$installed" ]; then \ | if [ -z "$$installed" ]; then \ | ||||
installed="${PKGNAME}"; \ | installed="${PKGNAME}"; \ | ||||
fi; \ | fi; \ | ||||
for pkgname in $$installed; do \ | for pkgname in $$installed; do \ | ||||
${ECHO_CMD} "$$pkgname ${.CURDIR} ${PKGORIGIN}"; \ | ${ECHO_CMD} "$$pkgname ${.CURDIR} ${PKGORIGIN}"; \ | ||||
done; \ | done; \ | ||||
fi; \ | fi; \ | ||||
checked="${PARENT_CHECKED}"; \ | checked="${PARENT_CHECKED}"; \ | ||||
for dir in ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,}; do \ | for dir in ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,}; do \ | ||||
unset flavor; \ | unset flavor; \ | ||||
case $${dir} in \ | case $${dir} in \ | ||||
*~*) \ | |||||
dir=$${dir%~*}; \ | |||||
;; \ | |||||
esac; \ | |||||
case $${dir} in \ | |||||
*@*) \ | *@*) \ | ||||
flavor=$${dir\#*@}; \ | flavor=$${dir\#*@}; \ | ||||
dir=$${dir%@*}; \ | dir=$${dir%@*}; \ | ||||
;; \ | ;; \ | ||||
esac; \ | esac; \ | ||||
case "$$dir" in \ | case "$$dir" in \ | ||||
/*) ;; \ | /*) ;; \ | ||||
*) dir=${PORTSDIR}/$$dir ;; \ | *) dir=${PORTSDIR}/$$dir ;; \ | ||||
Show All 12 Lines | if [ -d $$dir ]; then \ | ||||
shift 3; \ | shift 3; \ | ||||
done; \ | done; \ | ||||
checked="$$dir $$childdir $$checked"; \ | checked="$$dir $$childdir $$checked"; \ | ||||
else \ | else \ | ||||
${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ | ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ | ||||
fi; \ | fi; \ | ||||
done | 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="" ; \ | 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}`" ; \ | depfiles="$$depfiles `${SETENV} LIB_DIRS="${LIB_DIRS}" LOCALBASE="${LOCALBASE}" ${SH} ${SCRIPTSDIR}/find-lib.sh $${lib}`" ; \ | ||||
done ; \ | 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?= | PKG_NOTES_ENV?= | ||||
. for note in ${PKG_NOTES} | . for note in ${PKG_NOTES} | ||||
PKG_NOTES_ENV+= dp_PKG_NOTE_${note}=${PKG_NOTE_${note}:Q} | PKG_NOTES_ENV+= dp_PKG_NOTE_${note}=${PKG_NOTE_${note}:Q} | ||||
. endfor | . 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} \ | @${SETENV} \ | ||||
dp_SCRIPTSDIR='${SCRIPTSDIR}' \ | 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_CATEGORIES='${CATEGORIES:u:S/$/,/}' \ | ||||
dp_COMMENT=${COMMENT:Q} \ | dp_COMMENT=${COMMENT${_SP.${sp}}:Q} \ | ||||
dp_COMPLETE_OPTIONS_LIST='${COMPLETE_OPTIONS_LIST}' \ | dp_COMPLETE_OPTIONS_LIST='${COMPLETE_OPTIONS_LIST}' \ | ||||
dp_DEPRECATED=${DEPRECATED:Q} \ | dp_DEPRECATED=${DEPRECATED:Q} \ | ||||
dp_DESCR='${DESCR}' \ | dp_DESCR='${DESCR${_SP.${sp}}}' \ | ||||
dp_EXPIRATION_DATE='${EXPIRATION_DATE}' \ | dp_EXPIRATION_DATE='${EXPIRATION_DATE}' \ | ||||
dp_GROUPS='${GROUPS:u:S/$/,/}' \ | dp_GROUPS='${GROUPS:u:S/$/,/}' \ | ||||
dp_LICENSE='${LICENSE:u:S/$/,/}' \ | dp_LICENSE='${LICENSE:u:S/$/,/}' \ | ||||
dp_LICENSE_COMB='${LICENSE_COMB}' \ | dp_LICENSE_COMB='${LICENSE_COMB}' \ | ||||
dp_MAINTAINER='${MAINTAINER}' \ | dp_MAINTAINER='${MAINTAINER}' \ | ||||
dp_METADIR='${METADIR}' \ | dp_METADIR='${METADIR}.${sp}' \ | ||||
dp_NO_ARCH='${NO_ARCH}' \ | dp_NO_ARCH='${NO_ARCH}' \ | ||||
dp_PKGBASE='${PKGBASE}' \ | dp_PKGBASE='${sp}' \ | ||||
dp_PKGDEINSTALL='${PKGDEINSTALL}' \ | dp_PKGDEINSTALL='${PKGDEINSTALL${_SP.${sp}}}' \ | ||||
dp_PKGINSTALL='${PKGINSTALL}' \ | dp_PKGINSTALL='${PKGINSTALL${_SP.${sp}}}' \ | ||||
dp_PKGMESSAGES='${_PKGMESSAGES}' \ | dp_PKGMESSAGES='${_PKGMESSAGES${_SP.${sp}}}' \ | ||||
dp_PKGORIGIN='${PKGORIGIN}' \ | dp_PKGORIGIN='${PKGORIGIN}' \ | ||||
dp_PKGPOSTDEINSTALL='${PKGPOSTDEINSTALL}' \ | dp_PKGPOSTDEINSTALL='${PKGPOSTDEINSTALL${_SP.${sp}}}' \ | ||||
dp_PKGPOSTINSTALL='${PKGPOSTINSTALL}' \ | dp_PKGPOSTINSTALL='${PKGPOSTINSTALL${_SP.${sp}}}' \ | ||||
dp_PKGPREDEINSTALL='${PKGPREDEINSTALL}' \ | dp_PKGPREDEINSTALL='${PKGPREDEINSTALL${_SP.${sp}}}' \ | ||||
dp_PKGPREINSTALL='${PKGPREINSTALL}' \ | dp_PKGPREINSTALL='${PKGPREINSTALL${_SP.${sp}}}' \ | ||||
dp_PKGVERSION='${PKGVERSION}' \ | dp_PKGVERSION='${PKGVERSION}' \ | ||||
dp_PKG_BIN='${PKG_BIN}' \ | dp_PKG_BIN='${PKG_BIN}' \ | ||||
dp_PKG_IGNORE_DEPENDS='${PKG_IGNORE_DEPENDS}' \ | dp_PKG_IGNORE_DEPENDS='${PKG_IGNORE_DEPENDS}' \ | ||||
dp_PKG_NOTES='${PKG_NOTES}' \ | dp_PKG_NOTES='${PKG_NOTES.${sp}}' \ | ||||
dp_PORT_OPTIONS='${PORT_OPTIONS}' \ | dp_PORT_OPTIONS='${PORT_OPTIONS}' \ | ||||
dp_PREFIX='${PREFIX}' \ | dp_PREFIX='${PREFIX}' \ | ||||
dp_USERS='${USERS:u:S/$/,/}' \ | dp_USERS='${USERS:u:S/$/,/}' \ | ||||
dp_WWW='${WWW}' \ | dp_WWW='${WWW}' \ | ||||
${PKG_NOTES_ENV} \ | ${PKG_NOTES_ENV.${sp}} \ | ||||
${SH} ${SCRIPTSDIR}/create-manifest.sh | ${SH} ${SCRIPTSDIR}/create-manifest.sh | ||||
. endfor | |||||
# Print out package names. | # Print out package names. | ||||
package-depends: | package-depends: | ||||
@${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}' | @${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}' | ||||
actual-package-depends: | . for sp in ${_PKGS} | ||||
@${ACTUAL-PACKAGE-DEPENDS} | actual-package-depends: actual-package-depends.${sp} | ||||
actual-package-depends.${sp}: | |||||
@${ACTUAL-PACKAGE-DEPENDS${_SP.${sp}}} | |||||
. endfor | |||||
# Build packages for port and dependencies | # Build packages for port and dependencies | ||||
package-recursive: package | package-recursive: package | ||||
@recursive_cmd="package-noinstall"; \ | @recursive_cmd="package-noinstall"; \ | ||||
recursive_dirs="$$(${ALL-DEPENDS-FLAVORS-LIST})"; \ | recursive_dirs="$$(${ALL-DEPENDS-FLAVORS-LIST})"; \ | ||||
${_FLAVOR_RECURSIVE_SH} | ${_FLAVOR_RECURSIVE_SH} | ||||
Show All 30 Lines | |||||
# distribution-name|port-path|installation-prefix|comment| \ | # distribution-name|port-path|installation-prefix|comment| \ | ||||
# description-file|maintainer|categories|extract-depends| \ | # description-file|maintainer|categories|extract-depends| \ | ||||
# patch-depends|fetch-depends|build-depends|run-depends|www site | # patch-depends|fetch-depends|build-depends|run-depends|www site | ||||
# | # | ||||
# If this ever changes, portmgr should contact the portsnap maintainer | # If this ever changes, portmgr should contact the portsnap maintainer | ||||
# first to avoid gratuitous breakage. | # first to avoid gratuitous breakage. | ||||
. if !target(describe) | . if !target(describe) | ||||
_EXTRACT_DEPENDS=${EXTRACT_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} | _EXTRACT_DEPENDS=${EXTRACT_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} | ||||
_PATCH_DEPENDS=${PATCH_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} | _PATCH_DEPENDS=${PATCH_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} | ||||
_FETCH_DEPENDS=${FETCH_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} | _FETCH_DEPENDS=${FETCH_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} | ||||
_LIB_DEPENDS=${LIB_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} | _LIB_DEPENDS=${LIB_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} | ||||
_BUILD_DEPENDS=${BUILD_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS} | _BUILD_DEPENDS=${BUILD_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS} | ||||
_RUN_DEPENDS=${RUN_DEPENDS: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}) | . if exists(${DESCR}) | ||||
_DESCR=${DESCR} | _DESCR=${DESCR} | ||||
. else | . else | ||||
_DESCR=/dev/null | _DESCR=/dev/null | ||||
. endif | . endif | ||||
. if defined(BUILDING_INDEX) && defined(INDEX_PORTS) | . if defined(BUILDING_INDEX) && defined(INDEX_PORTS) | ||||
INDEX_OUT=${INDEX_TMPDIR}/${INDEXFILE}.desc.aggr | INDEX_OUT=${INDEX_TMPDIR}/${INDEXFILE}.desc.aggr | ||||
. else | . else | ||||
INDEX_OUT=/dev/stdout | INDEX_OUT=/dev/stdout | ||||
. endif | . endif | ||||
. if empty(FLAVORS) || defined(_DESCRIBE_WITH_FLAVOR) | . if empty(FLAVORS) || defined(_DESCRIBE_WITH_FLAVOR) | ||||
describe: | describe: | ||||
@(${ECHO_CMD} "${PKGNAME}|${.CURDIR}|${PREFIX}|"${COMMENT:Q}"|${_DESCR}|${MAINTAINER}|${CATEGORIES}|${_EXTRACT_DEPENDS}|${_PATCH_DEPENDS}|${_FETCH_DEPENDS}|${_BUILD_DEPENDS:O:u}|${_RUN_DEPENDS:O:u}|${_WWW}" >> ${INDEX_OUT}) | @(${ECHO_CMD} "${PKGNAME}|${.CURDIR}|${PREFIX}|"${COMMENT:Q}"|${_DESCR}|${MAINTAINER}|${CATEGORIES}|${_EXTRACT_DEPENDS}|${_PATCH_DEPENDS}|${_FETCH_DEPENDS}|${_BUILD_DEPENDS:O:u}|${_RUN_DEPENDS:O:u}|${_WWW}" >> ${INDEX_OUT}) | ||||
. else # empty(FLAVORS) | . else # empty(FLAVORS) | ||||
describe: ${FLAVORS:S/^/describe-/} | describe: ${FLAVORS:S/^/describe-/} | ||||
. for f in ${FLAVORS} | . for f in ${FLAVORS} | ||||
describe-${f}: | describe-${f}: | ||||
@cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -D_DESCRIBE_WITH_FLAVOR describe | @cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -D_DESCRIBE_WITH_FLAVOR describe | ||||
. endfor | . endfor | ||||
. endif # empty(FLAVORS) | . endif # empty(FLAVORS) | ||||
. endif | . endif | ||||
. if empty(FLAVORS) || defined(_DESCRIBE_WITH_FLAVOR) | . if empty(FLAVORS) || defined(_DESCRIBE_WITH_FLAVOR) | ||||
. if defined(_DESCRIBE_WITH_FLAVOR) | . if defined(_DESCRIBE_WITH_FLAVOR) | ||||
_JSON_OBJ_NAME="\"${FLAVOR}-${.CURDIR:T}\":" | _JSON_OBJ_NAME="\"${FLAVOR}-${.CURDIR:T}\":" | ||||
. endif | . endif | ||||
describe-json: | describe-json: | ||||
@(${ECHO_CMD} "${_JSON_OBJ_NAME} { ";\ | @(${ECHO_CMD} "${_JSON_OBJ_NAME} { ";\ | ||||
${ECHO_CMD} \"uses\":[\"${USES:ts,:Q:S/,/\",\"/g}\"], ;\ | ${ECHO_CMD} \"uses\":[\"${USES:ts,:Q:S/,/\",\"/g}\"], ;\ | ||||
${ECHO_CMD} \"flavors\":[\"${FLAVORS:ts,:Q:S/,/\",\"/g}\"], ;\ | ${ECHO_CMD} \"flavors\":[\"${FLAVORS:ts,:Q:S/,/\",\"/g}\"], ;\ | ||||
${ECHO_CMD} \"options_default\":[\"${OPTIONS_DEFAULT:ts,:Q:S/,/\",\"/g}\"], ;\ | ${ECHO_CMD} \"options_default\":[\"${OPTIONS_DEFAULT:ts,:Q:S/,/\",\"/g}\"], ;\ | ||||
${ECHO_CMD} \"fetch_depends\":[\"${FETCH_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ | ${ECHO_CMD} \"fetch_depends\":[\"${FETCH_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ | ||||
${ECHO_CMD} \"extract_depends\":[\"${EXTRACT_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ | ${ECHO_CMD} \"extract_depends\":[\"${EXTRACT_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ | ||||
Show All 30 Lines | describe-json: | ||||
${ECHO_CMD} \"portepoch\":\"${PORTEPOCH}\", ;\ | ${ECHO_CMD} \"portepoch\":\"${PORTEPOCH}\", ;\ | ||||
${ECHO_CMD} \"portname\":\"${PORTNAME}\", ;\ | ${ECHO_CMD} \"portname\":\"${PORTNAME}\", ;\ | ||||
${ECHO_CMD} \"portrevision\":\"${PORTREVISION}\", ;\ | ${ECHO_CMD} \"portrevision\":\"${PORTREVISION}\", ;\ | ||||
${ECHO_CMD} \"portversion\":\"${PORTVERSION}\", ;\ | ${ECHO_CMD} \"portversion\":\"${PORTVERSION}\", ;\ | ||||
${ECHO_CMD} \"use_github\":\"${USE_GITHUB}\", ;\ | ${ECHO_CMD} \"use_github\":\"${USE_GITHUB}\", ;\ | ||||
${ECHO_CMD} \"use_gitlab\":\"${USE_GITLAB}\", ;\ | ${ECHO_CMD} \"use_gitlab\":\"${USE_GITLAB}\", ;\ | ||||
${ECHO_CMD} \"www\":\"${WWW:Q}\" ;\ | ${ECHO_CMD} \"www\":\"${WWW:Q}\" ;\ | ||||
${ECHO_CMD} "}" >> ${INDEX_OUT}) | ${ECHO_CMD} "}" >> ${INDEX_OUT}) | ||||
. else # empty(FLAVORS) | . else # empty(FLAVORS) | ||||
describe-json: ${FLAVORS:S/^/describe-json-/} | describe-json: ${FLAVORS:S/^/describe-json-/} | ||||
_LAST_FLAVOR = ${FLAVORS:[-1]} | _LAST_FLAVOR = ${FLAVORS:[-1]} | ||||
. for f in ${FLAVORS} | . for f in ${FLAVORS} | ||||
describe-json-${f}: | describe-json-${f}: | ||||
@if [ "${f}" == "${FLAVORS:[1]}" ]; then \ | @if [ "${f}" == "${FLAVORS:[1]}" ]; then \ | ||||
${ECHO_CMD} "{" ;\ | ${ECHO_CMD} "{" ;\ | ||||
fi; | fi; | ||||
@cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -D_DESCRIBE_WITH_FLAVOR describe-json | @cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -D_DESCRIBE_WITH_FLAVOR describe-json | ||||
@if [ "${f}" != "${_LAST_FLAVOR}" ]; then \ | @if [ "${f}" != "${_LAST_FLAVOR}" ]; then \ | ||||
${ECHO_MSG} "," ;\ | ${ECHO_MSG} "," ;\ | ||||
else \ | else \ | ||||
${ECHO_CMD} "}" ;\ | ${ECHO_CMD} "}" ;\ | ||||
fi; \ | fi; \ | ||||
. endfor | . endfor | ||||
. endif # empty(FLAVORS) | . endif # empty(FLAVORS) | ||||
www-site: | www-site: | ||||
@${ECHO_CMD} ${_WWW} | @${ECHO_CMD} ${_WWW} | ||||
. if !target(readmes) | . if !target(readmes) | ||||
readmes: readme | readmes: readme | ||||
. endif | . endif | ||||
▲ Show 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | |||||
generate-plist: ${WRKDIR} | generate-plist: ${WRKDIR} | ||||
@${ECHO_MSG} "===> Generating temporary packing list" | @${ECHO_MSG} "===> Generating temporary packing list" | ||||
@${MKDIR} ${TMPPLIST:H} | @${MKDIR} ${TMPPLIST:H} | ||||
@if [ ! -f ${DESCR} ]; then ${ECHO_MSG} "** Missing pkg-descr for ${PKGNAME}."; exit 1; fi | @if [ ! -f ${DESCR} ]; then ${ECHO_MSG} "** Missing pkg-descr for ${PKGNAME}."; exit 1; fi | ||||
@>${TMPPLIST} | @>${TMPPLIST} | ||||
@for file in ${PLIST_FILES}; do \ | @for file in ${PLIST_FILES}; do \ | ||||
${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} >> ${TMPPLIST}; \ | ${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} >> ${TMPPLIST}; \ | ||||
done | 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) | . if !empty(PLIST) | ||||
. for f in ${PLIST} | . for f in ${PLIST} | ||||
@if [ -f "${f}" ]; then \ | @if [ -f "${f}" ]; then \ | ||||
${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} ${f} >> ${TMPPLIST}; \ | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} ${f} >> ${TMPPLIST}; \ | ||||
for i in owner group mode; do ${ECHO_CMD} "@$$i"; done >> ${TMPPLIST}; \ | for i in owner group mode; do ${ECHO_CMD} "@$$i"; done >> ${TMPPLIST}; \ | ||||
fi | fi | ||||
. endfor | . endfor | ||||
. endif | . endif | ||||
. for dir in ${PLIST_DIRS} | . for dir in ${PLIST_DIRS} | ||||
@${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@dir ,' >> ${TMPPLIST} | @${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@dir ,' >> ${TMPPLIST} | ||||
. endfor | . 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 | . endif | ||||
. endfor | |||||
. endif | |||||
${TMPPLIST}: | ${TMPPLIST}: | ||||
@cd ${.CURDIR} && ${MAKE} generate-plist | @cd ${.CURDIR} && ${MAKE} generate-plist | ||||
. for _type in EXAMPLES DOCS | . for _type in EXAMPLES DOCS | ||||
. if !empty(_REALLY_ALL_POSSIBLE_OPTIONS:M${_type}) | . if !empty(_REALLY_ALL_POSSIBLE_OPTIONS:M${_type}) | ||||
. if !target(add-plist-${_type:tl}) | . if !target(add-plist-${_type:tl}) | ||||
. if defined(PORT${_type}) && !empty(PORT_OPTIONS:M${_type}) | . if defined(PORT${_type}) && !empty(PORT_OPTIONS:M${_type}) | ||||
▲ Show 20 Lines • Show All 136 Lines • ▼ Show 20 Lines | stage-qa: | ||||
@${SETENV} ${QA_ENV} ${SH} ${SCRIPTSDIR}/qa.sh | @${SETENV} ${QA_ENV} ${SH} ${SCRIPTSDIR}/qa.sh | ||||
. if !defined(DEVELOPER) | . if !defined(DEVELOPER) | ||||
@${ECHO_MSG} "/!\\ To run stage-qa automatically add DEVELOPER=yes to your environment /!\\" | @${ECHO_MSG} "/!\\ To run stage-qa automatically add DEVELOPER=yes to your environment /!\\" | ||||
. endif | . endif | ||||
. endif | . endif | ||||
pretty-flavors-package-names: .PHONY | pretty-flavors-package-names: .PHONY | ||||
. if empty(FLAVORS) | . if empty(FLAVORS) | ||||
@${ECHO_CMD} "no flavor: ${PKGNAME}" | @${ECHO_CMD} "no flavor: ${_PKGS}" | ||||
. else | . else | ||||
. for f in ${FLAVORS} | . for f in ${FLAVORS} | ||||
@${ECHO_CMD} -n "${f}: " | @${ECHO_CMD} -n "${f}: " | ||||
@cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -V PKGNAME | @cd ${.CURDIR} && ${SETENV} -i FLAVOR=${f} ${MAKE} -B -V _PKGS | ||||
. endfor | . endfor | ||||
. endif | . endif | ||||
flavors-package-names: .PHONY | flavors-package-names: .PHONY | ||||
. if empty(FLAVORS) | . if empty(FLAVORS) | ||||
@${ECHO_CMD} "${PKGNAME}" | @${ECHO_CMD} "${_PKGS}" | ||||
. else | . else | ||||
. for f in ${FLAVORS} | . 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 | . endfor | ||||
. endif | . endif | ||||
# Fake installation of package so that user can pkg delete it later. | # Fake installation of package so that user can pkg delete it later. | ||||
. if !target(fake-pkg) | . if !target(fake-pkg) | ||||
STAGE_ARGS= -i ${STAGEDIR} | STAGE_ARGS= -i ${STAGEDIR} | ||||
. if defined(NO_PKG_REGISTER) | . if defined(NO_PKG_REGISTER) | ||||
STAGE_ARGS= -N | STAGE_ARGS= -N | ||||
. endif | . endif | ||||
fake-pkg: | . for sp in ${_PKGS} | ||||
fake-pkg: fake-pkg.${sp} | |||||
fake-pkg.${sp}: ${_PLIST}.${sp} | |||||
. if defined(INSTALLS_DEPENDS) | . if defined(INSTALLS_DEPENDS) | ||||
. if !defined(NO_PKG_REGISTER) | . if !defined(NO_PKG_REGISTER) | ||||
@${ECHO_MSG} "===> Registering installation for ${PKGNAME} as automatic" | @${ECHO_MSG} "===> Registering installation for ${PKGNAME} as automatic" | ||||
. endif | . 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 | . else | ||||
. if !defined(NO_PKG_REGISTER) | . if !defined(NO_PKG_REGISTER) | ||||
@${ECHO_MSG} "===> Registering installation for ${PKGNAME}" | @${ECHO_MSG} "===> Registering installation for ${PKGNAME}" | ||||
. endif | . 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 | . endif | ||||
@${RM} -r ${METADIR} | @${RM} -r ${METADIR}.${sp} | ||||
. endfor | |||||
. endif | . endif | ||||
# Depend is generally meaningless for arbitrary ports, but if someone wants | # Depend is generally meaningless for arbitrary ports, but if someone wants | ||||
# one they can override this. This is just to catch people who've gotten into | # one they can override this. This is just to catch people who've gotten into | ||||
# the habit of typing `make depend all install' as a matter of course. | # the habit of typing `make depend all install' as a matter of course. | ||||
# Same goes for tags | # Same goes for tags | ||||
. for _t in depend tags | . for _t in depend tags | ||||
. if !target(${_t}) | . if !target(${_t}) | ||||
▲ Show 20 Lines • Show All 730 Lines • Show Last 20 Lines |