diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2018-10-23 11:50:45 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2018-10-23 12:04:37 +0900 |
commit | 40e22c774afebca23fdaa6dec2b8698572501c32 (patch) | |
tree | 54a525d36fe71329b1bb67ee19afed21cc903c15 | |
parent | 12b834ba59ae2f3cd0568e4cfa1dca47fc41269a (diff) | |
download | libgpg-error-40e22c774afebca23fdaa6dec2b8698572501c32.tar.gz |
gpg-error-config: Fix cross build support.
* configure.ac: Fix regexp matching multiarch environment.
* src/gpg-error-config-new.in: Support standard cross build.
Handle the case where $multiarch != $triplet.
--
For standard cross build, use @exec_prefix@/$triplet/lib/pkgconfig.
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/gpg-error-config-new.in | 41 |
2 files changed, 35 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac index 52966b9..25719d4 100644 --- a/configure.ac +++ b/configure.ac @@ -651,7 +651,7 @@ AC_ARG_ENABLE([tests], AC_HELP_STRING([--disable-tests], build_tests=$enableval, build_tests=yes) AM_CONDITIONAL([BUILD_TESTS], [test "x$build_tests" != xno]) -if expr $libdir : "/$host\$" >/dev/null; then +if expr $libdir : ".*/$host_alias\$" >/dev/null; then # Looks like it's multiarch, then, # let the script detect host architecture at runtime pkg_config_libdir=auto diff --git a/src/gpg-error-config-new.in b/src/gpg-error-config-new.in index 0ccf55a..b8b7328 100644 --- a/src/gpg-error-config-new.in +++ b/src/gpg-error-config-new.in @@ -12,21 +12,48 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ -pkg_config_libdir=${PKG_CONFIG_LIBDIR:-@pkg_config_libdir@} -if [ "$pkg_config_libdir" = auto ]; then - # "auto" supports multiarch environment +pkg_config_libdir=@pkg_config_libdir@ +if [ x"${PKG_CONFIG_LIBDIR+set}" = x ]; then + # If PKG_CONFIG_LIBDIR is not specified, detect the directory. + + # We supports standard cross build with $CC triplet="" case "$CC" in *-*-*) triplet=${CC%-*} ;; *) ;; esac - if [ -z "$triplet" ]; then - triplet=$(gcc -dumpmachine) + if [ "$pkg_config_libdir" = auto ]; then + # It's multiarch environment. + # It may be standard cross build, native multiarch build, or + # multiarch-cross build + multiarch="" + if [ -n "$triplet" ]; then + triplet1=$triplet + else + triplet1=$(gcc -dumpmachine) + fi + # Follow existing practice for multiarch name + if expr $triplet1 : "^i[4567]86-" >/dev/null; then + multiarch="i386-${triplet1#*-}" + else + multiarch=$triplet1 + fi + if [ -n "$triplet" ]; then + PKG_CONFIG_LIBDIR="@exec_prefix@/$triplet/lib/pkgconfig:@exec_prefix@/lib/$multiarch/pkgconfig" + else + PKG_CONFIG_LIBDIR="@exec_prefix@/lib/$multiarch/pkgconfig" + fi + unset multiarch triplet1 + elif [ -n "$triplet" ]; then + # It's cross build + PKG_CONFIG_LIBDIR="@exec_prefix@/$triplet/lib/pkgconfig" + else + # Native build in standard (non-multiarch) environment + PKG_CONFIG_LIBDIR="$pkg_config_libdir" fi - pkg_config_libdir=@exec_prefix@/lib/$triplet/pkgconfig unset triplet fi -PKG_CONFIG_PATH="$PKG_CONFIG_PATH${PKG_CONFIG_PATH:+:}$pkg_config_libdir" +PKG_CONFIG_PATH="$PKG_CONFIG_PATH${PKG_CONFIG_PATH:+:}$PKG_CONFIG_LIBDIR" # #### start of functions for this script |