Skip to content

Commit 557e21c

Browse files
committed
configure: automatically detect pkg-config to use, like CC
Currently, when cross compiling, available libraries are incorrectly detected. This fixes that, and allows changing pkg-config implementations.
1 parent 7553cb7 commit 557e21c

File tree

1 file changed

+43
-33
lines changed

1 file changed

+43
-33
lines changed

configure

Lines changed: 43 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,28 @@ else
189189
echo "Using compiler $CC"
190190
fi
191191

192+
# pkg-config is required to know dependencies for static linking.
193+
if [ -z "$PKG_CONFIG" ]; then
194+
printf "Looking for pkg-config... "
195+
for b in $TARGET- ""; do
196+
for pkg_config in pkg-config pkgconf; do
197+
if type $b$pkg_config >/dev/null 2>&1; then
198+
PKG_CONFIG=$b$pkg_config
199+
echo "$PKG_CONFIG"
200+
break
201+
fi
202+
done
203+
[ -n "$PKG_CONFIG" ] && break
204+
done
205+
if [ -z "$PKG_CONFIG" ]; then
206+
echo
207+
echo "no suitable pkg-config found - aborting" >&2
208+
exit 1
209+
fi
210+
else
211+
echo "Using pkg-config tool $PKG_CONFIG"
212+
fi
213+
192214
[ -z "$DEBUG" ] && DEBUG=yes
193215

194216
echo "CC = $CC" >>$CONFIG_MK
@@ -643,61 +665,49 @@ else
643665
BUILD_API_DOCS_VALUE=no
644666
fi
645667

646-
#
647-
# pkg-config is required to know dependencies for static linking.
648-
#
649-
printf "Checking for pkg-config ... "
650-
PKGCONFIG_BIN=$(_which pkg-config)
651-
if [ -z "$PKGCONFIG_BIN" ]; then
652-
echo "not found, exiting."
653-
exit 1
654-
else
655-
echo yes
656-
fi
657-
658668
#
659669
# libarchive with pkg-config support is required.
660670
#
661671
LIBARCHIVE_REQVER=3.3.3
662672

663673
printf "Checking for libarchive >= ${LIBARCHIVE_REQVER} via pkg-config ... "
664-
if ! pkg-config --atleast-version=${LIBARCHIVE_REQVER} libarchive; then
674+
if ! $PKG_CONFIG --atleast-version=${LIBARCHIVE_REQVER} libarchive; then
665675
echo "libarchive.pc file not found, exiting."
666676
exit 1
667677
else
668-
echo "found version $(pkg-config --modversion libarchive)."
669-
echo "CFLAGS += $(pkg-config --cflags libarchive)" >>$CONFIG_MK
670-
echo "LDFLAGS += $(pkg-config --libs libarchive)" >>$CONFIG_MK
671-
echo "STATIC_LIBS += $(pkg-config --libs --static libarchive)" \
678+
echo "found version $($PKG_CONFIG --modversion libarchive)."
679+
echo "CFLAGS += $($PKG_CONFIG --cflags libarchive)" >>$CONFIG_MK
680+
echo "LDFLAGS += $($PKG_CONFIG --libs libarchive)" >>$CONFIG_MK
681+
echo "STATIC_LIBS += $($PKG_CONFIG --libs --static libarchive)" \
672682
>>$CONFIG_MK
673683
fi
674684

675685
#
676686
# libssl with pkg-config support is required.
677687
#
678688
printf "Checking for libssl via pkg-config ... "
679-
if pkg-config --exists 'libssl' && ! pkg-config --exists libtls ; then
680-
echo "found OpenSSL version $(pkg-config --modversion libssl)."
681-
elif pkg-config --exists libssl libtls; then
682-
echo "found LibreSSL version $(pkg-config --modversion libssl)."
689+
if $PKG_CONFIG --exists 'libssl' && ! $PKG_CONFIG --exists libtls ; then
690+
echo "found OpenSSL version $($PKG_CONFIG --modversion libssl)."
691+
elif $PKG_CONFIG --exists libssl libtls; then
692+
echo "found LibreSSL version $($PKG_CONFIG --modversion libssl)."
683693
else
684694
echo "libssl.pc file not found or incompatible version detected, exiting."
685695
exit 1
686696
fi
687-
echo "CFLAGS += $(pkg-config --cflags libssl)" >>$CONFIG_MK
688-
echo "LDFLAGS += $(pkg-config --libs libssl)" >>$CONFIG_MK
689-
echo "STATIC_LIBS += $(pkg-config --libs --static libssl)" \
697+
echo "CFLAGS += $($PKG_CONFIG --cflags libssl)" >>$CONFIG_MK
698+
echo "LDFLAGS += $($PKG_CONFIG --libs libssl)" >>$CONFIG_MK
699+
echo "STATIC_LIBS += $($PKG_CONFIG --libs --static libssl)" \
690700
>>$CONFIG_MK
691701

692702
#
693703
# zlib is required.
694704
#
695705
printf "Checking for zlib via pkg-config ... "
696-
if pkg-config --exists 'zlib'; then
697-
echo "found zlib version $(pkg-config --modversion zlib)."
698-
echo "CFLAGS += $(pkg-config --cflags zlib)" >>$CONFIG_MK
699-
echo "LDFLAGS += $(pkg-config --libs zlib)" >>$CONFIG_MK
700-
echo "STATIC_LIBS += $(pkg-config --libs --static zlib)" \
706+
if $PKG_CONFIG --exists 'zlib'; then
707+
echo "found zlib version $($PKG_CONFIG --modversion zlib)."
708+
echo "CFLAGS += $($PKG_CONFIG --cflags zlib)" >>$CONFIG_MK
709+
echo "LDFLAGS += $($PKG_CONFIG --libs zlib)" >>$CONFIG_MK
710+
echo "STATIC_LIBS += $($PKG_CONFIG --libs --static zlib)" \
701711
>>$CONFIG_MK
702712
else
703713
echo "no."
@@ -745,13 +755,13 @@ fi
745755
#
746756
if [ "$BUILD_TESTS" = "yes" ]; then
747757
printf "Checking for ATF via pkg-config ... "
748-
if ! pkg-config --atleast-version=0.15 atf-c; then
758+
if ! $PKG_CONFIG --atleast-version=0.15 atf-c; then
749759
echo "ATF >= 0.15 not found in PKG_CONFIG_LIBDIR, exiting."
750760
exit 1
751761
fi
752-
echo "found version $(pkg-config --modversion atf-c)."
753-
echo "TEST_CFLAGS += $(pkg-config --cflags atf-c)" >>$CONFIG_MK
754-
echo "TEST_LDFLAGS += $(pkg-config --libs atf-c)" >>$CONFIG_MK
762+
echo "found version $($PKG_CONFIG --modversion atf-c)."
763+
echo "TEST_CFLAGS += $($PKG_CONFIG --cflags atf-c)" >>$CONFIG_MK
764+
echo "TEST_LDFLAGS += $($PKG_CONFIG --libs atf-c)" >>$CONFIG_MK
755765
echo "BUILD_TESTS = yes" >>$CONFIG_MK
756766
BUILD_TESTS_VALUE=yes
757767
else

0 commit comments

Comments
 (0)