]> granicus.if.org Git - sudo/commitdiff
Add custom version of AC_CHECK_LIB that uses the extra libs in the
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 20 Jan 2012 15:53:12 +0000 (10:53 -0500)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 20 Jan 2012 15:53:12 +0000 (10:53 -0500)
cache value name.  With this we no longer need to rely on a modified
version of autoconf.

--HG--
branch : 1.7

aclocal.m4
configure
configure.in

index 95fa3e49ffc2bb6ac9a0df3a757983624163643a..387c445232d05539953c0cd0baa6aa827bc5755f 100644 (file)
@@ -167,6 +167,28 @@ AC_DEFUN([SUDO_FUNC_ISBLANK],
   fi
 ])
 
+AC_DEFUN([SUDO_CHECK_LIB], [
+    _sudo_check_lib_extras=`echo "$5"|sed -e 's/[      ]*//g' -e 's/-l/_/g'`
+    AC_MSG_CHECKING([for $2 in -l$1${5+ }$5])
+    AC_CACHE_VAL([sudo_cv_lib_$1''_$2$_sudo_check_lib_extras], [
+       SUDO_CHECK_LIB_OLIBS="$LIBS"
+       LIBS="$LIBS -l$1${5+ }$5"
+       AC_LINK_IFELSE(
+           [AC_LANG_CALL([], [$2])],
+           [eval sudo_cv_lib_$1''_$2$_sudo_check_lib_extras=yes],
+           [eval sudo_cv_lib_$1''_$2$_sudo_check_lib_extras=no]
+       )
+       LIBS="$SUDO_CHECK_LIB_OLIBS"
+    ])
+    if eval test \$sudo_cv_lib_$1''_$2$_sudo_check_lib_extras = "yes"; then
+       AC_MSG_RESULT([yes])
+       $3
+    else
+       AC_MSG_RESULT([no])
+       $4
+    fi
+])
+
 dnl
 dnl check unsetenv() return value
 dnl
index ff756d9ac2bb45e15f6d000c57d1f8df73433963..6595092cbdd92a7c9bd2ce643d491fdbe0a48eed 100755 (executable)
--- a/configure
+++ b/configure
@@ -17038,15 +17038,17 @@ else
        test -z "$libs" && continue
        lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`"
        extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`"
-       as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_socket$extralibs" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -l$lib" >&5
-$as_echo_n "checking for socket in -l$lib... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
+
+    _sudo_check_lib_extras=`echo "$extralibs"|sed -e 's/       *//g' -e 's/-l/_/g'`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -l$lib${5+ }$extralibs" >&5
+$as_echo_n "checking for socket in -l$lib${5+ }$extralibs... " >&6; }
+    if { as_var=sudo_cv_lib_$lib''_socket$_sudo_check_lib_extras; eval \${$as_var+:} false; }; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$lib $extralibs $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+       SUDO_CHECK_LIB_OLIBS="$LIBS"
+       LIBS="$LIBS -l$lib${5+ }$extralibs"
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -17065,21 +17067,27 @@ return socket ();
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
+  eval sudo_cv_lib_$lib''_socket$_sudo_check_lib_extras=yes
 else
-  eval "$as_ac_Lib=no"
+  eval sudo_cv_lib_$lib''_socket$_sudo_check_lib_extras=no
+
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break
+       LIBS="$SUDO_CHECK_LIB_OLIBS"
+
 fi
 
+    if eval test \$sudo_cv_lib_$lib''_socket$_sudo_check_lib_extras = "yes"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break
+    else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+    fi
+
     done
 
 fi
@@ -17106,15 +17114,17 @@ else
            test -z "$libs" && continue
            lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`"
            extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`"
-           as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_inet_addr$extralibs" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_addr in -l$lib" >&5
-$as_echo_n "checking for inet_addr in -l$lib... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
+
+    _sudo_check_lib_extras=`echo "$extralibs"|sed -e 's/       *//g' -e 's/-l/_/g'`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_addr in -l$lib${5+ }$extralibs" >&5
+$as_echo_n "checking for inet_addr in -l$lib${5+ }$extralibs... " >&6; }
+    if { as_var=sudo_cv_lib_$lib''_inet_addr$_sudo_check_lib_extras; eval \${$as_var+:} false; }; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$lib $extralibs $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+       SUDO_CHECK_LIB_OLIBS="$LIBS"
+       LIBS="$LIBS -l$lib${5+ }$extralibs"
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -17133,21 +17143,27 @@ return inet_addr ();
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
+  eval sudo_cv_lib_$lib''_inet_addr$_sudo_check_lib_extras=yes
 else
-  eval "$as_ac_Lib=no"
+  eval sudo_cv_lib_$lib''_inet_addr$_sudo_check_lib_extras=no
+
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break
+       LIBS="$SUDO_CHECK_LIB_OLIBS"
+
 fi
 
+    if eval test \$sudo_cv_lib_$lib''_inet_addr$_sudo_check_lib_extras = "yes"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break
+    else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+    fi
+
        done
 
 fi
@@ -17172,15 +17188,17 @@ else
        test -z "$libs" && continue
        lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`"
        extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`"
-       as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_syslog$extralibs" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for syslog in -l$lib" >&5
-$as_echo_n "checking for syslog in -l$lib... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
+
+    _sudo_check_lib_extras=`echo "$extralibs"|sed -e 's/       *//g' -e 's/-l/_/g'`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for syslog in -l$lib${5+ }$extralibs" >&5
+$as_echo_n "checking for syslog in -l$lib${5+ }$extralibs... " >&6; }
+    if { as_var=sudo_cv_lib_$lib''_syslog$_sudo_check_lib_extras; eval \${$as_var+:} false; }; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$lib $extralibs $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+       SUDO_CHECK_LIB_OLIBS="$LIBS"
+       LIBS="$LIBS -l$lib${5+ }$extralibs"
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -17199,21 +17217,27 @@ return syslog ();
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
+  eval sudo_cv_lib_$lib''_syslog$_sudo_check_lib_extras=yes
 else
-  eval "$as_ac_Lib=no"
+  eval sudo_cv_lib_$lib''_syslog$_sudo_check_lib_extras=no
+
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break
+       LIBS="$SUDO_CHECK_LIB_OLIBS"
+
 fi
 
+    if eval test \$sudo_cv_lib_$lib''_syslog$_sudo_check_lib_extras = "yes"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break
+    else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+    fi
+
     done
 
 fi
index dfdd981a97102041c382f7659fb5a2d70eff5479..430b98d04d6ca2cf531bf601bfd10625fefafaf2 100644 (file)
@@ -2137,7 +2137,7 @@ AC_CHECK_FUNC(socket, [], [
        test -z "$libs" && continue
        lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`"
        extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`"
-       AC_CHECK_LIB($lib, socket, [NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break], [], [$extralibs])
+       SUDO_CHECK_LIB($lib, socket, [NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break], [], [$extralibs])
     done
 ])
 dnl
@@ -2158,7 +2158,7 @@ AC_CHECK_FUNC(inet_addr, [], [
            test -z "$libs" && continue
            lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`"
            extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`"
-           AC_CHECK_LIB($lib, inet_addr, [NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break], [], [$extralibs])
+           SUDO_CHECK_LIB($lib, inet_addr, [NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break], [], [$extralibs])
        done
     ])
 ])
@@ -2178,7 +2178,7 @@ AC_CHECK_FUNC(syslog, [], [
        test -z "$libs" && continue
        lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`"
        extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`"
-       AC_CHECK_LIB($lib, syslog, [NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break], [], [$extralibs])
+       SUDO_CHECK_LIB($lib, syslog, [NET_LIBS="${NET_LIBS} $libs"; LIBS="${LIBS} $libs"; break], [], [$extralibs])
     done
 ])
 dnl