summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2019-04-26 13:15:39 -0700
committerGuy Harris <guy@alum.mit.edu>2019-04-26 13:15:39 -0700
commit45a4d4292cf103bf13165441663c5800da1f01fa (patch)
tree1b09f8dc119d74379e1154619cd6d41a8489cef4 /configure
parent7f260fa85e82f3921c1ef45d805f35360f124eec (diff)
downloadtcpdump-45a4d4292cf103bf13165441663c5800da1f01fa.tar.gz
Use pkg-config if we can. Clean up some CMake stuff.
If we have pkg-config, *and* it has .pc files for libpcap, use it to get the C compiler flags and linker flags for libpcap. find_library() sets a cache variable; when we're looping over libraries, trying to find their full paths, we really want the variable to act as a local variable, as we're looking up different libraries, so unset it after we're finished processing a particular library. When we're searching for static libraries, save the current value of CMAKE_FIND_LIBRARY_SUFFIXES, set it to ".a", and then restore it when we're done. Don't use cmake_push_check_state() for that, as CMAKE_FIND_LIBRARY_SUFFIXES is *not* one of the variables that it's guaranteed to save and restore.
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure231
1 files changed, 190 insertions, 41 deletions
diff --git a/configure b/configure
index 16a3ac0b..afd5fb5a 100755
--- a/configure
+++ b/configure
@@ -636,6 +636,7 @@ DEPENDENCY_CFLAG
AR
RANLIB
PCAP_CONFIG
+PKG_CONFIG
LIBOBJS
EGREP
GREP
@@ -5357,9 +5358,156 @@ fi
if test $using_local_libpcap = no ; then
#
# We didn't find a local libpcap.
- # Look for an installed pcap-config.
+ # Look for an installed pkg-config.
#
if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+ if test -n "$PKG_CONFIG" ; then
+ #
+ # We have it. Are there .pc files for libpcap?
+ #
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether there are .pc files for libpcap" >&5
+$as_echo_n "checking whether there are .pc files for libpcap... " >&6; }
+ if "$PKG_CONFIG" libpcap --exists ; then
+ #
+ # Yes, so we can use pkg-config to get configuration
+ # information for libpcap.
+ #
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ pkg_config_usable=yes
+ else
+ #
+ # No, so we can't use pkg-config to get configuration
+ # information for libpcap.
+ #
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ pkg_config_usable=no
+ fi
+ else
+ #
+ # We don't have it, so we obviously can't use it.
+ #
+ pkg_config_usable=no
+ fi
+ if test "$pkg_config_usable" = "yes" ; then
+ #
+ # Found both - use pkg-config to get the include flags for
+ # libpcap and the flags to link with libpcap.
+ #
+ # Please read section 11.6 "Shell Substitutions"
+ # in the autoconf manual before doing anything
+ # to this that involves quoting. Especially note
+ # the statement "There is just no portable way to use
+ # double-quoted strings inside double-quoted back-quoted
+ # expressions (pfew!)."
+ #
+ cflags=`"$PKG_CONFIG" libpcap --cflags`
+ V_INCLS="$cflags $V_INCLS"
+ libpcap=`"$PKG_CONFIG" libpcap --libs`
+ else
+ #
+ # No pkg-config
+ # Look for an installed pcap-config.
+ #
+ if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pcap-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pcap-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -5457,26 +5605,26 @@ else
PCAP_CONFIG="$ac_cv_path_PCAP_CONFIG"
fi
- if test -n "$PCAP_CONFIG" ; then
- #
- # Found - use it to get the include flags for
- # libpcap and the flags to link with libpcap.
- #
- # Please read section 11.6 "Shell Substitutions"
- # in the autoconf manual before doing anything
- # to this that involves quoting. Especially note
- # the statement "There is just no portable way to use
- # double-quoted strings inside double-quoted back-quoted
- # expressions (pfew!)."
- #
- cflags=`"$PCAP_CONFIG" --cflags`
- V_INCLS="$cflags $V_INCLS"
- libpcap=`"$PCAP_CONFIG" --libs`
- else
- #
- # Not found; look for an installed pcap.
- #
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpcap" >&5
+ if test -n "$PCAP_CONFIG" ; then
+ #
+ # Found - use it to get the include flags for
+ # libpcap and the flags to link with libpcap.
+ #
+ # Please read section 11.6 "Shell Substitutions"
+ # in the autoconf manual before doing anything
+ # to this that involves quoting. Especially note
+ # the statement "There is just no portable way to use
+ # double-quoted strings inside double-quoted back-quoted
+ # expressions (pfew!)."
+ #
+ cflags=`"$PCAP_CONFIG" --cflags`
+ V_INCLS="$cflags $V_INCLS"
+ libpcap=`"$PCAP_CONFIG" --libs`
+ else
+ #
+ # Not found; look for an installed pcap.
+ #
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpcap" >&5
$as_echo_n "checking for main in -lpcap... " >&6; }
if ${ac_cv_lib_pcap_main+:} false; then :
$as_echo_n "(cached) " >&6
@@ -5510,26 +5658,27 @@ if test "x$ac_cv_lib_pcap_main" = xyes; then :
libpcap="-lpcap"
fi
- if test $libpcap = FAIL ; then
- as_fn_error $? "see the INSTALL doc for more info" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extraneous pcap header directories" >&5
+ if test $libpcap = FAIL ; then
+ as_fn_error $? "see the INSTALL doc for more info" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extraneous pcap header directories" >&5
$as_echo_n "checking for extraneous pcap header directories... " >&6; }
- if test \( ! -r /usr/local/include/pcap.h \) -a \
- \( ! -r /usr/include/pcap.h \); then
- if test -r /usr/local/include/pcap/pcap.h; then
- d="/usr/local/include/pcap"
- elif test -r /usr/include/pcap/pcap.h; then
- d="/usr/include/pcap"
+ if test \( ! -r /usr/local/include/pcap.h \) -a \
+ \( ! -r /usr/include/pcap.h \); then
+ if test -r /usr/local/include/pcap/pcap.h; then
+ d="/usr/local/include/pcap"
+ elif test -r /usr/include/pcap/pcap.h; then
+ d="/usr/include/pcap"
+ fi
fi
- fi
- if test -z "$d" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ if test -z "$d" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
- else
- V_INCLS="-I$d $V_INCLS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found -- -I$d added" >&5
+ else
+ V_INCLS="-I$d $V_INCLS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found -- -I$d added" >&5
$as_echo "found -- -I$d added" >&6; }
+ fi
fi
fi
else
@@ -5630,11 +5779,11 @@ fi
fi
fi
- if test -z "$PCAP_CONFIG"; then
+ if test -z "$PKG_CONFIG" -a -z "$PCAP_CONFIG"; then
#
- # We don't have pcap-config; find out any additional link flags
- # we need. (If we have pcap-config, we assume it tells us what
- # we need.)
+ # We don't have pkg-config or pcap-config; find out any additional
+ # link flags we need. (If we have pkg-config or pcap-config, we
+ # assume it tells us what we need.)
#
case "$host_os" in