git: 882f16714d90 - main - framework: add new variable PKGCONFIG_BASE
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 30 Jun 2022 19:14:18 UTC
The branch main has been updated by tcberner: URL: https://cgit.FreeBSD.org/ports/commit/?id=882f16714d909f1413b2c4bda44436726a0ff819 commit 882f16714d909f1413b2c4bda44436726a0ff819 Author: Tobias C. Berner <tcberner@FreeBSD.org> AuthorDate: 2022-06-15 15:56:50 +0000 Commit: Tobias C. Berner <tcberner@FreeBSD.org> CommitDate: 2022-06-30 19:14:10 +0000 framework: add new variable PKGCONFIG_BASE The base system started to provide certain pkgconfig files for components it provides. This new variable allows ports to prefer base components explicitly using for example PKGCONFIG_BASE=foo This will create a symlink of /usr/libdata/pkgconfig/foo.pc to ${WKRDIR}/.pkgconfig and adding said path to pkgconfigs search path. This allows us to switch easily between base and port implementation of different components (say openssl) by simply defining the appropriate variable in (say ssl.mk). Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D35494 --- Mk/bsd.port.mk | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk index 89ed04917318..bcffecf2ab93 100644 --- a/Mk/bsd.port.mk +++ b/Mk/bsd.port.mk @@ -1050,7 +1050,8 @@ PORTS_FEATURES+= FLAVORS MINIMAL_PKG_VERSION= 1.17.2 _PORTS_DIRECTORIES+= ${PKG_DBDIR} ${PREFIX} ${WRKDIR} ${EXTRACT_WRKDIR} \ - ${STAGEDIR}${PREFIX} ${WRKDIR}/pkg ${BINARY_LINKDIR} + ${STAGEDIR}${PREFIX} ${WRKDIR}/pkg ${BINARY_LINKDIR} \ + ${PKGCONFIG_LINKDIR} # Ensure .CURDIR contains an absolute path without a trailing slash. Failed # builds can occur when PORTSDIR is a symbolic link, or with something like @@ -1681,6 +1682,13 @@ MAKE_ENV+= PATH=${PATH} CONFIGURE_ENV+= PATH=${PATH} . endif +PKGCONFIG_LINKDIR= ${WRKDIR}/.pkgconfig +PKGCONFIG_BASEDIR= /usr/libdata/pkgconfig +. if !${MAKE_ENV:MPKG_CONFIG_LIBDIR=*} && !${CONFIGURE_ENV:MPKG_CONFIG_LIBDIR=*} +MAKE_ENV+= PKG_CONFIG_LIBDIR=${PKGCONFIG_LINKDIR}:${LOCALBASE}/libdata/pkgconfig:${PKGCONFIG_BASEDIR} +CONFIGURE_ENV+= PKG_CONFIG_LIBDIR=${PKGCONFIG_LINKDIR}:${LOCALBASE}/libdata/pkgconfig:${PKGCONFIG_BASEDIR} +. endif + . if !defined(IGNORE_MASTER_SITE_GITHUB) && defined(USE_GITHUB) && empty(USE_GITHUB:Mnodefault) . if defined(WRKSRC) DEV_WARNING+= "You are using USE_GITHUB and WRKSRC is set which is wrong. Set GH_PROJECT correctly or set WRKSRC_SUBDIR and remove WRKSRC entirely." @@ -5147,6 +5155,20 @@ create-binary-alias: ${BINARY_LINKDIR} . endif . endif +. if !empty(PKGCONFIG_BASE) +. if !target(create-base-pkgconfig) +create-base-pkgconfig: ${PKGCONFIG_LINKDIR} +. for pcfile in ${PKGCONFIG_BASE:S/$/.pc/} + @if `test -f ${PKGCONFIG_BASEDIR}/${pcfile}`; then \ + ${RLN} ${PKGCONFIG_BASEDIR}/${pcfile} ${PKGCONFIG_LINKDIR}/${pcfile}; \ + else \ + ${ECHO_MSG} "===> Missing \"${pcfile}\" to create a link at \"${PKGCONFIG_LINKDIR}/${pcfile}\" "; \ + ${FALSE}; \ + fi +. endfor +. endif +. endif + . if !empty(BINARY_WRAPPERS) . if !target(create-binary-wrappers) create-binary-wrappers: ${BINARY_LINKDIR} @@ -5256,7 +5278,7 @@ _PATCH_SEQ= 050:ask-license 100:patch-message 150:patch-depends \ ${_OPTIONS_patch} ${_USES_patch} _CONFIGURE_DEP= patch _CONFIGURE_SEQ= 150:build-depends 151:lib-depends 160:create-binary-alias \ - 161:create-binary-wrappers \ + 161:create-binary-wrappers 170:create-base-pkgconfig \ 200:configure-message 210:apply-slist \ 300:pre-configure 450:pre-configure-script \ 490:run-autotools-fixup 500:do-configure 700:post-configure \