From branch_1_1
[freeradius.git] / acinclude.m4
index 4ca7900..8253976 100644 (file)
@@ -1,6 +1,6 @@
 dnl See whether we need a declaration for a function.
 dnl RADIUSD_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES])
-AC_DEFUN(RADIUSD_NEED_DECLARATION,
+AC_DEFUN([RADIUSD_NEED_DECLARATION],
 [AC_MSG_CHECKING([whether $1 must be declared])
 AC_CACHE_VAL(radius_cv_decl_needed_$1,
 [AC_TRY_COMPILE([
@@ -65,7 +65,7 @@ fi
 
 dnl Check multiple functions to see whether each needs a declaration.
 dnl RADIUSD_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES])
-AC_DEFUN(RADIUSD_NEED_DECLARATIONS,
+AC_DEFUN([RADIUSD_NEED_DECLARATIONS],
 [for ac_func in $1
 do
 RADIUSD_NEED_DECLARATION($ac_func, $2)
@@ -75,7 +75,7 @@ done
 dnl Checks to see if this is SUNPro we're building with
 dnl Usage:
 dnl AC_PROG_CC_SUNPRO
-AC_DEFUN(AC_PROG_CC_SUNPRO,
+AC_DEFUN([AC_PROG_CC_SUNPRO],
 [AC_CACHE_CHECK(whether we are using SUNPro C, ac_cv_prog_suncc,
 [dnl The semicolon is to pacify NeXT's syntax-checking cpp.
 cat > conftest.c <<EOF
@@ -95,7 +95,7 @@ dnl #
 dnl # This function is like AC_CHECK_TYPE, but you can give this one
 dnl # a list of include files to check.
 dnl #
-AC_DEFUN(FR_CHECK_TYPE_INCLUDE,
+AC_DEFUN([FR_CHECK_TYPE_INCLUDE],
 [
   AC_CACHE_CHECK(for $2, ac_cv_type_$2,
     [ ac_cv_type_$2=no
@@ -107,7 +107,7 @@ AC_DEFUN(FR_CHECK_TYPE_INCLUDE,
   )
 
   if test "$ac_cv_type_$2" != "yes"; then
-         AC_DEFINE($2, $3)
+         AC_DEFINE($2, $3, $4)
   fi
 ])
 
@@ -115,7 +115,7 @@ dnl #######################################################################
 dnl #
 dnl #  Look for SNMP in a variety of places.
 dnl #
-AC_DEFUN(SNMP_CHECKS, [
+AC_DEFUN([SNMP_CHECKS], [
        AC_SUBST(SNMP_LIBS)
        AC_SUBST(SNMP_INCLUDE)
 
@@ -140,6 +140,7 @@ AC_TRY_COMPILE([
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
+#include <ucd-snmp/ucd-snmp-config.h>
 #include <ucd-snmp/asn1.h>
 #include <ucd-snmp/snmp.h>
 #include <ucd-snmp/snmp_impl.h>],
@@ -170,6 +171,7 @@ if test "x$ucdsnmp" = "x"; then
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
+#include <ucd-snmp/ucd-snmp-config.h>
 #include <ucd-snmp/asn1.h>
 #include <ucd-snmp/snmp.h>
 #include <ucd-snmp/snmp_impl.h>],
@@ -260,10 +262,10 @@ if test "x$ucdsnmp" = "x"; then
 else
   if test "x$ucdsnmp" = "xyes"; then
     AC_MSG_RESULT((ucd-snmp)yes)
-    AC_DEFINE(HAVE_UCD_SNMP_ASN1_SNMP_SNMPIMPL_H)
+    AC_DEFINE(HAVE_UCD_SNMP_ASN1_SNMP_SNMPIMPL_H, [], [Define if you have the <ucd-snmp/asn1.h>, <ucd-snmp/snmp_impl.h> and <ucd-snmp/snmp.h> header file.])
   else
     AC_MSG_RESULT(yes)
-    AC_DEFINE(HAVE_ASN1_SNMP_SNMPIMPL_H)
+    AC_DEFINE(HAVE_ASN1_SNMP_SNMPIMPL_H, [], [Define if you have the <asn1.h>, <snmp_impl.h> and <snmp.h> header file.])
   fi
 dnl #
 dnl #  Now do the same thing, looking for the SNMP library directory
@@ -281,7 +283,7 @@ dnl #
               SNMP_LIBS=)
 
   if test "x$SNMP_LIBS" = "x"; then
-    for try in /usr/lib /usr/local/lib /usr/local/snmp/lib $snmp_lib_dir; do
+    for try in /usr/lib /usr/local/lib /usr/local/snmp/lib $with_snmp_lib_dir; do
       LIBS="$old_LIBS -L$try -lsnmp"
       AC_TRY_LINK([extern char snmp_build_var_op();],
                   [ snmp_build_var_op()],
@@ -302,6 +304,19 @@ dnl   #
       if test "x$SNMP_LIBS" != "x"; then
         break;
       fi
+dnl   #
+dnl   #  That didn't work.  Try adding the '-lkstat' line.
+dnl   #  Some SNMP libraries are linked against Kernel Statistics,
+dnl   #  in particular, Solaris 9...
+dnl   #
+      LIBS="$old_LIBS -L$try -lsnmp -lcrypto -lkstat"
+      AC_TRY_LINK([extern char snmp_build_var_op();],
+                  [ snmp_build_var_op()],
+                  SNMP_LIBS="-L$try -lsnmp -lcrypto -lkstat",
+                  SNMP_LIBS=)
+      if test "x$SNMP_LIBS" != "x"; then
+        break;
+      fi
     done
   fi
   LIBS="$old_LIBS"
@@ -316,8 +331,8 @@ dnl   #
     SNMP_INCLUDE=
   else
     AC_MSG_RESULT(yes)
-    AC_DEFINE(WITH_SNMP)
-    AC_DEFINE(HAVE_LIBSNMP)
+    AC_DEFINE(WITH_SNMP, [], [Include SNMP subagent])
+    AC_DEFINE(HAVE_LIBSNMP, [], [Define if you have the snmp library (-lsnmp).])
   fi
 fi
 ])
@@ -332,7 +347,7 @@ dnl #    Defines the variable MYSQLLIB_DIR to be the directory(s) in
 dnl #    which the file libmysqlclient.a is to be found.
 dnl #
 dnl #
-AC_DEFUN(FR_LOCATE_DIR,
+AC_DEFUN([FR_LOCATE_DIR],
 [
 dnl # If we have the program 'locate', then the problem of finding a
 dnl # particular file becomes MUCH easier.
@@ -394,51 +409,75 @@ dnl #######################################################################
 dnl #
 dnl #  Look for a library in a number of places.
 dnl #
-AC_DEFUN(FR_SMART_CHECK_LIB, [
+dnl #  FR_SMART_CHECK_LIB(library, function)
+dnl #
+AC_DEFUN([FR_SMART_CHECK_LIB], [
 
 sm_lib_safe=`echo "$1" | sed 'y%./+-%__p_%'`
 sm_func_safe=`echo "$2" | sed 'y%./+-%__p_%'`
 AC_MSG_CHECKING([for $2 in -l$1])
 
+old_LIBS="$LIBS"
 smart_lib=
 smart_lib_dir=
 
 dnl #
-dnl #  Try to link it first, using the default libs && library paths
+dnl #  Try first any user-specified directory, otherwise we may pick up
+dnl #  the wrong version.
 dnl #
-  old_LIBS="$LIBS"
-  LIBS="$LIBS -l$1"
+if test "x$smart_try_dir" != "x"; then
+  for try in $smart_try_dir; do
+    LIBS="-L$try -l$1 $old_LIBS"
+    AC_TRY_LINK([extern char $2();],
+               [ $2()],
+               smart_lib="-L$try -l$1")
+    if test "x$smart_lib" != "x"; then
+      break;
+    fi
+  done
+  LIBS="$old_LIBS"
+fi
+
+dnl #
+dnl #  Try using the default library path
+dnl #
+if test "x$smart_lib" = "x"; then
+  LIBS="-l$1 $old_LIBS"
   AC_TRY_LINK([extern char $2();],
-              [ $2()],
+             [ $2()],
              smart_lib="-l$1")
+  LIBS="$old_LIBS"
+fi
 
-  if test "x$smart_lib" = "x"; then
-    FR_LOCATE_DIR(smart_lib_dir,[lib$1${libltdl_cv_shlibext}])
-    FR_LOCATE_DIR(smart_lib_dir,[lib$1.a])
-
-    for try in $smart_try_dir $smart_lib_dir /usr/local/lib/ /opt/lib; do
-      LIBS="$old_LIBS -L$try -l$1"
+dnl #
+dnl #  Try to guess possible locations.
+dnl #
+if test "x$smart_lib" = "x"; then
+  FR_LOCATE_DIR(smart_lib_dir,[lib$1${libltdl_cv_shlibext}])
+  FR_LOCATE_DIR(smart_lib_dir,[lib$1.a])
 
-      AC_TRY_LINK([extern char $2();],
-                  [ $2()],
-                 smart_lib="-L$try -l$1")
-      if test "x$smart_lib" != "x"; then
-        break;
-      fi
-    done
-    LIBS="$old_LIBS"
-  fi
+  for try in $smart_lib_dir /usr/local/lib /opt/lib; do
+    LIBS="-L$try -l$1 $old_LIBS"
+    AC_TRY_LINK([extern char $2();],
+               [ $2()],
+               smart_lib="-L$try -l$1")
+    if test "x$smart_lib" != "x"; then
+      break;
+    fi
+  done
+  LIBS="$old_LIBS"
+fi
 
-  dnl #
-  dnl #  Found it, set the appropriate variable.
-  dnl #
-  if test "x$smart_lib" != "x"; then
-    AC_MSG_RESULT(yes)
-    eval "ac_cv_lib_${sm_lib_safe}_${sm_func_safe}=yes"
-    LIBS="$old_LIBS $smart_lib"
-    SMART_LIBS="$SMART_LIBS $smart_lib"
-  else
-    AC_MSG_RESULT(no) 
+dnl #
+dnl #  Found it, set the appropriate variable.
+dnl #
+if test "x$smart_lib" != "x"; then
+  AC_MSG_RESULT(yes)
+  eval "ac_cv_lib_${sm_lib_safe}_${sm_func_safe}=yes"
+  LIBS="$smart_lib $old_LIBS"
+  SMART_LIBS="$smart_lib $SMART_LIBS"
+else
+  AC_MSG_RESULT(no)
 fi
 ])
 
@@ -448,53 +487,75 @@ dnl #  Look for a header file in a number of places.
 dnl #
 dnl #  FR_SMART_CHECK_INCLUDE(foo.h, [ #include <other.h> ])
 dnl #
-AC_DEFUN(FR_SMART_CHECK_INCLUDE, [
+AC_DEFUN([FR_SMART_CHECK_INCLUDE], [
 
 ac_safe=`echo "$1" | sed 'y%./+-%__pm%'`
 AC_MSG_CHECKING([for $1])
 
+old_CFLAGS="$CFLAGS"
 smart_include=
 smart_include_dir=
 
 dnl #
-dnl #  Try to link it first, using the default includes
+dnl #  Try first any user-specified directory, otherwise we may pick up
+dnl #  the wrong version.
 dnl #
-  old_CFLAGS="$CFLAGS"
+if test "x$smart_try_dir" != "x"; then
+  for try in $smart_try_dir; do
+    CFLAGS="$old_CFLAGS -I$try"
+    AC_TRY_COMPILE([$2
+                   #include <$1>],
+                  [ int a = 1;],
+                  smart_include="-I$try",
+                  smart_include=)
+    if test "x$smart_include" != "x"; then
+      break;
+    fi
+  done
+  CFLAGS="$old_CFLAGS"
+fi
+
+dnl #
+dnl #  Try using the default includes.
+dnl #
+if test "x$smart_include" = "x"; then
   AC_TRY_COMPILE([$2
                  #include <$1>],
-                 [ int a = 1;],
-                 smart_include=" ",
-                 smart_include=)
-
-  if test "x$smart_include" = "x"; then
-    FR_LOCATE_DIR(smart_include_dir,$1)
-
-    for try in $smart_try_dir $smart_include_dir /usr/local/include/ /opt/include; do
-      CFLAGS="$old_CFLAGS -I$try"
+                [ int a = 1;],
+                smart_include=" ",
+                smart_include=)
+fi
 
-      AC_TRY_COMPILE([$2
-                      #include <$1>],
-                     [ int a = 1;],
-                     smart_include="-I$try",
-                     smart_include=)
+dnl #
+dnl #  Try to guess possible locations.
+dnl #
+if test "x$smart_include" = "x"; then
+  FR_LOCATE_DIR(smart_include_dir,$1)
 
-      if test "x$smart_include" != "x"; then
-        break;
-      fi
-    done
-    CFLAGS="$old_CFLAGS"
-  fi
+  for try in $smart_include_dir /usr/local/include /opt/include; do
+    CFLAGS="$old_CFLAGS -I$try"
+    AC_TRY_COMPILE([$2
+                   #include <$1>],
+                  [ int a = 1;],
+                  smart_include="-I$try",
+                  smart_include=)
+    if test "x$smart_include" != "x"; then
+      break;
+    fi
+  done
+  CFLAGS="$old_CFLAGS"
+fi
 
-  dnl #
-  dnl #  Found it, set the appropriate variable.
-  dnl #
-  if test "x$smart_include" != "x"; then
-    AC_MSG_RESULT(yes)
-    eval "ac_cv_header_$ac_safe=yes"
-    CFLAGS="$old_CFLAGS $smart_include"
-    SMART_CFLAGS="$SMART_CFLAGS $smart_include"
-  else
-    AC_MSG_RESULT(no) 
+dnl #
+dnl #  Found it, set the appropriate variable.
+dnl #
+if test "x$smart_include" != "x"; then
+  AC_MSG_RESULT(yes)
+  eval "ac_cv_header_$ac_safe=yes"
+  CFLAGS="$old_CFLAGS $smart_include"
+  SMART_CFLAGS="$SMART_CFLAGS $smart_include"
+else
+  AC_MSG_RESULT(no)
 fi
 ])
 
@@ -506,7 +567,7 @@ dnl #  Usage:  FR_CHECK_STRUCT_HAS_MEMBER([#include <foo.h>], [struct foo], memb
 dnl #  If the member is defined, then the variable
 dnl #     ac_cv_type_struct_foo_has_member is set to 'yes'
 dnl #
-AC_DEFUN(FR_CHECK_STRUCT_HAS_MEMBER, [
+AC_DEFUN([FR_CHECK_STRUCT_HAS_MEMBER], [
   AC_MSG_CHECKING([for $3 in $2])
 
 dnl BASED on 'offsetof':
@@ -533,12 +594,4 @@ $1
  fi
 ])
 
-AC_DEFUN(FR_LIBLTDL_PATH,
-[
-   LIBLTDLPATH=
-   if test x"$enable_ltdl_install" = x"yes"; then
-     AC_CONFIG_SUBDIRS('libltdl')
-     LIBLTDLPATH=libltdl
-    fi
-   AC_SUBST(LIBLTDLPATH)
-])
+AC_INCLUDE(aclocal.m4)