From 1522813888257aafb6d108b49fb7b24005d2693a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= Date: Mon, 22 Aug 2022 19:09:54 +0200 Subject: [PATCH] build: Omit -I... and -L... for standard paths in pkgconfig file * configure.ac (GPGME_CONFIG_CFLAGS): Prefix with -I${includedir} for non-standard include paths. (GPGME_CONFIG_LIBS): Prefix with -L${libdir} for non-standard library paths. * src/gpgme.pc.in (Cflags): Remove hard-coded -I${includedir}. (Libs): Remove hard-coded -L${libdir}. -- This helps prevent problems when building/linking something that depends on gpgme (installed in standard path) and some other library (installed in a standard path and a custom path). See T6136 for related changes in libgpg-error. --- configure.ac | 36 +++++++++++++++++++++++++++++++++++- src/gpgme.pc.in | 4 ++-- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index aed0762f..e7fe04a7 100644 --- a/configure.ac +++ b/configure.ac @@ -850,11 +850,45 @@ AH_BOTTOM([ ]) -# Substitution used for gpgme-config +# Substitution used for gpgme-config and gpgme.pc GPGME_CONFIG_LIBS="-lgpgme" GPGME_CONFIG_CFLAGS="" GPGME_CONFIG_HOST="$host" GPGME_CONFIG_AVAIL_LANG="$enabled_languages" + +case "$includedir" in + /usr/include|/include) ;; + '${prefix}/include') + if test "$prefix" != / -a "$prefix" != /usr; then + if test -z "$GPGME_CONFIG_CFLAGS"; then + GPGME_CONFIG_CFLAGS="-I\${includedir}" + else + GPGME_CONFIG_CFLAGS="-I\${includedir} $GPGME_CONFIG_CFLAGS" + fi + fi + ;; + *) + if test -z "$GPGME_CONFIG_CFLAGS"; then + GPGME_CONFIG_CFLAGS="-I\${includedir}" + else + GPGME_CONFIG_CFLAGS="-I\${includedir} $GPGME_CONFIG_CFLAGS" + fi + ;; +esac +case "$libdir" in + /usr/lib|/usr/lib64|/lib|/lib64) ;; + '${exec_prefix}/lib'|'${exec_prefix}/lib64') + if test "$exec_prefix" = "NONE"; then + if test "$prefix" != / -a "$prefix" != /usr; then + GPGME_CONFIG_LIBS="-L\${libdir} $GPGME_CONFIG_LIBS" + fi + elif test "$exec_prefix" != / -a "$exec_prefix" != /usr; then + GPGME_CONFIG_LIBS="-L\${libdir} $GPGME_CONFIG_LIBS" + fi + ;; + *) GPGME_CONFIG_LIBS="-L\${libdir} $GPGME_CONFIG_LIBS" ;; +esac + AC_SUBST(GPGME_CONFIG_API_VERSION) AC_SUBST(GPGME_CONFIG_LIBS) AC_SUBST(GPGME_CONFIG_CFLAGS) diff --git a/src/gpgme.pc.in b/src/gpgme.pc.in index 80d59de8..9ddef5cd 100644 --- a/src/gpgme.pc.in +++ b/src/gpgme.pc.in @@ -9,6 +9,6 @@ Name: gpgme Description: GnuPG Made Easy to access GnuPG Requires.private: gpg-error, libassuan Version: @PACKAGE_VERSION@ -Cflags: -I${includedir} @GPGME_CONFIG_CFLAGS@ -Libs: -L${libdir} @GPGME_CONFIG_LIBS@ +Cflags: @GPGME_CONFIG_CFLAGS@ +Libs: @GPGME_CONFIG_LIBS@ URL: https://www.gnupg.org/software/gpgme/index.html