new files used for reworking autotools support
authorvorlon <vorlon>
Tue, 15 Jun 2004 06:27:33 +0000 (06:27 +0000)
committervorlon <vorlon>
Tue, 15 Jun 2004 06:27:33 +0000 (06:27 +0000)
acinclude.m4 [new file with mode: 0644]
autogen.sh [new file with mode: 0755]

diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644 (file)
index 0000000..4ca7900
--- /dev/null
@@ -0,0 +1,544 @@
+dnl See whether we need a declaration for a function.
+dnl RADIUSD_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES])
+AC_DEFUN(RADIUSD_NEED_DECLARATION,
+[AC_MSG_CHECKING([whether $1 must be declared])
+AC_CACHE_VAL(radius_cv_decl_needed_$1,
+[AC_TRY_COMPILE([
+#include <stdio.h>
+#include <string.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#endif
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#ifdef HAVE_RESOURCE_H
+#include <resource.h>
+#endif
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#endif
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+#ifdef HAVE_UTMP_H
+#include <utmp.h>
+#endif
+#ifdef HAVE_UTMPX_H
+#include <utmpx.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+#ifdef HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+#ifdef HAVE_REGEX_H
+#include <regex.h>
+#endif
+#ifdef HAVE_SYSLOG_H
+#include <syslog.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+$2],
+[char *(*pfn) = (char *(*)) $1],
+eval "radius_cv_decl_needed_$1=no", eval "radius_cv_decl_needed_$1=yes")])
+if eval "test \"`echo '$radius_cv_decl_needed_'$1`\" = yes"; then
+  AC_MSG_RESULT(yes)
+  radius_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  AC_DEFINE_UNQUOTED($radius_tr_decl)
+else
+  AC_MSG_RESULT(no)
+fi
+])dnl
+
+dnl Check multiple functions to see whether each needs a declaration.
+dnl RADIUSD_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES])
+AC_DEFUN(RADIUSD_NEED_DECLARATIONS,
+[for ac_func in $1
+do
+RADIUSD_NEED_DECLARATION($ac_func, $2)
+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_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
+#ifdef __SUNPRO_C
+  yes;
+#endif
+EOF
+if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_suncc=yes
+else
+  ac_cv_prog_suncc=no
+fi])])
+
+dnl #
+dnl # FR_CHECK_TYPE_INCLUDE([#includes ...], type, default-C-types)
+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_CACHE_CHECK(for $2, ac_cv_type_$2,
+    [ ac_cv_type_$2=no
+      AC_TRY_COMPILE($1,
+        [$2 foo],
+        ac_cv_type_$2=yes,
+      )
+    ]
+  )
+
+  if test "$ac_cv_type_$2" != "yes"; then
+         AC_DEFINE($2, $3)
+  fi
+])
+
+dnl #######################################################################
+dnl #
+dnl #  Look for SNMP in a variety of places.
+dnl #
+AC_DEFUN(SNMP_CHECKS, [
+       AC_SUBST(SNMP_LIBS)
+       AC_SUBST(SNMP_INCLUDE)
+
+AC_MSG_CHECKING([for asn1.h,snmp.h,snmp_impl.h])
+
+dnl #
+dnl #  First, see if we can build it WITHOUT using any special includes and in ucd-snmp
+dnl #
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <ucd-snmp/asn1.h>
+#include <ucd-snmp/snmp.h>
+#include <ucd-snmp/snmp_impl.h>],
+               [ int a = 1;],
+               SNMP_INCLUDE="";ucdsnmp=yes,
+               ucdsnmp=)
+
+dnl #
+dnl #  If not, look for it in a number of directories and in ucd-snmp.
+dnl #
+if test "x$ucdsnmp" = "x"; then
+  old_CFLAGS="$CFLAGS"
+  for try in /usr/include /usr/local/include $snmp_include_dir; do
+    CFLAGS="$old_CFLAGS -I$try"
+    AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <ucd-snmp/asn1.h>
+#include <ucd-snmp/snmp.h>
+#include <ucd-snmp/snmp_impl.h>],
+                   [ int a = 1;],
+                   SNMP_INCLUDE="-I$try";ucdsnmp=yes,
+                   ucdsnmp=)
+    if test "x$ucdsnmp" != "x"; then
+      break;
+    fi
+  done
+  CFLAGS="$old_CFLAGS"
+fi
+
+if test "x$ucdsnmp" = "x"; then
+  old_CFLAGS="$CFLAGS"
+  for try in /usr/include/ucd-snmp /usr/local/include/ucd-snmp $snmp_include_dir; do
+    CFLAGS="$old_CFLAGS -I$try"
+dnl #
+dnl #  First, see if we can build it WITHOUT using any special includes and without ucd-snmp
+dnl #
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <asn1.h>
+#include <snmp.h>
+#include <snmp_impl.h>],
+               [ int a = 1;],
+               SNMP_INCLUDE="";ucdsnmp=no,
+               ucdsnmp=)
+    if test "x$ucdsnmp" != "x"; then
+      break;
+    fi
+  done
+  CFLAGS="$old_CFLAGS"
+fi
+
+dnl #
+dnl #  If not, look for it in a number of directories and without ucd-snmp
+dnl #
+if test "x$ucdsnmp" = "x"; then
+  old_CFLAGS="$CFLAGS"
+  for try in /usr/include/ucd-snmp /usr/local/include/ucd-snmp $snmp_include_dir; do
+    CFLAGS="$old_CFLAGS -I$try"
+    AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <asn1.h>
+#include <snmp.h>
+#include <snmp_impl.h>],
+                   [ int a = 1;],
+                   SNMP_INCLUDE="-I$try";ucdsnmp=no,
+                   ucdsnmp=)
+    if test "x$ucdsnmp" != "x"; then
+      break;
+    fi
+  done
+  CFLAGS="$old_CFLAGS"
+fi
+
+if test "x$ucdsnmp" = "x"; then
+  AC_MSG_RESULT(no)
+else
+  if test "x$ucdsnmp" = "xyes"; then
+    AC_MSG_RESULT((ucd-snmp)yes)
+    AC_DEFINE(HAVE_UCD_SNMP_ASN1_SNMP_SNMPIMPL_H)
+  else
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(HAVE_ASN1_SNMP_SNMPIMPL_H)
+  fi
+dnl #
+dnl #  Now do the same thing, looking for the SNMP library directory
+dnl #
+  AC_MSG_CHECKING([for snmp_build_var_op in -lsnmp])
+
+dnl #
+dnl #  First, see if we can build it WITHOUT using any special includes
+dnl #
+  old_LIBS="$LIBS"
+  LIBS="$old_LIBS -lsnmp"
+  AC_TRY_LINK([extern char snmp_build_var_op();],
+              [ snmp_build_var_op()],
+              SNMP_LIBS="-lsnmp",
+              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
+      LIBS="$old_LIBS -L$try -lsnmp"
+      AC_TRY_LINK([extern char snmp_build_var_op();],
+                  [ snmp_build_var_op()],
+                  SNMP_LIBS="-L$try -lsnmp",
+                  SNMP_LIBS=)
+      if test "x$SNMP_LIBS" != "x"; then
+        break;
+      fi
+dnl   #
+dnl   #  That didn't work.  Try adding the '-lcrypto' line.
+dnl   #  Some SNMP libraries are linked against SSL...
+dnl   #
+      LIBS="$old_LIBS -L$try -lsnmp -lcrypto"
+      AC_TRY_LINK([extern char snmp_build_var_op();],
+                  [ snmp_build_var_op()],
+                  SNMP_LIBS="-L$try -lsnmp -lcrypto",
+                  SNMP_LIBS=)
+      if test "x$SNMP_LIBS" != "x"; then
+        break;
+      fi
+    done
+  fi
+  LIBS="$old_LIBS"
+
+  dnl #
+  dnl #  If one or the other isn't found, disable them both..
+  dnl #  If both are found, enable them both.
+  dnl #
+  CFLAGS="$old_CFLAGS"
+  if test "x$SNMP_LIBS" = "x"; then
+    AC_MSG_RESULT(no)
+    SNMP_INCLUDE=
+  else
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(WITH_SNMP)
+    AC_DEFINE(HAVE_LIBSNMP)
+  fi
+fi
+])
+
+
+dnl #
+dnl #  Locate the directory in which a particular file is found.
+dnl #
+dnl #  Usage: FR_LOCATE_DIR(MYSQLLIB_DIR, libmysqlclient.a)
+dnl #
+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,
+[
+dnl # If we have the program 'locate', then the problem of finding a
+dnl # particular file becomes MUCH easier.
+dnl #
+
+dnl #
+dnl #  No 'locate' defined, do NOT do anything.
+dnl #
+if test "x$LOCATE" != "x"; then
+  dnl #
+  dnl #  Root through a series of directories, looking for the given file.
+  dnl #
+  DIRS=
+  file=$2
+
+  for x in `${LOCATE} $file 2>/dev/null`; do
+    dnl #
+    dnl #  When asked for 'foo', locate will also find 'foo_bar', which we
+    dnl #  don't want.  We want that EXACT filename.
+    dnl #
+    dnl #  We ALSO want to be able to look for files like 'mysql/mysql.h',
+    dnl #  and properly match them, too.  So we try to strip off the last
+    dnl #  part of the filename, using the name of the file we're looking
+    dnl #  for.  If we CANNOT strip it off, then the name will be unchanged.
+    dnl #
+    base=`echo $x | sed "s%/${file}%%"`
+    if test "x$x" = "x$base"; then
+      continue;
+    fi
+
+    dir=`${DIRNAME} $x 2>/dev/null`
+    dnl #
+    dnl #  Exclude a number of directories.
+    dnl #
+    exclude=`echo ${dir} | ${GREP} /home`
+    if test "x$exclude" != "x"; then
+      continue
+    fi
+
+    dnl #
+    dnl #  OK, we have an exact match.  Let's be sure that we only find ONE
+    dnl #  matching directory.
+    dnl #
+    already=`echo \$$1 ${DIRS} | ${GREP} ${dir}`
+    if test "x$already" = "x"; then
+      DIRS="$DIRS $dir"
+    fi
+  done
+fi
+
+dnl #
+dnl #  And remember the directory in which we found the file.
+dnl #
+eval "$1=\"\$$1 $DIRS\""
+])
+
+
+dnl #######################################################################
+dnl #
+dnl #  Look for a library in a number of places.
+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])
+
+smart_lib=
+smart_lib_dir=
+
+dnl #
+dnl #  Try to link it first, using the default libs && library paths
+dnl #
+  old_LIBS="$LIBS"
+  LIBS="$LIBS -l$1"
+  AC_TRY_LINK([extern char $2();],
+              [ $2()],
+             smart_lib="-l$1")
+
+  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"
+
+      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) 
+fi
+])
+
+dnl #######################################################################
+dnl #
+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_safe=`echo "$1" | sed 'y%./+-%__pm%'`
+AC_MSG_CHECKING([for $1])
+
+smart_include=
+smart_include_dir=
+
+dnl #
+dnl #  Try to link it first, using the default includes
+dnl #
+  old_CFLAGS="$CFLAGS"
+  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"
+
+      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) 
+fi
+])
+
+dnl #######################################################################
+dnl #
+dnl #  Look for a header file in a number of places.
+dnl #
+dnl #  Usage:  FR_CHECK_STRUCT_HAS_MEMBER([#include <foo.h>], [struct foo], member)
+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_MSG_CHECKING([for $3 in $2])
+
+dnl BASED on 'offsetof':
+dnl #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+dnl
+
+  AC_TRY_COMPILE([
+$1
+#ifndef offsetof
+#define offsetof(TYPE, MEMBER) ((int) &((TYPE *)0)->MEMBER)
+#endif
+],
+                 [ int foo = offsetof($2, $3) ],
+                 has_element=" ",
+                 has_element=)
+
+  ac_safe_type=`echo "$2" | sed 'y% %_%'`
+  if test "x$has_element" != "x"; then
+    AC_MSG_RESULT(yes)
+    eval "ac_cv_type_${ac_safe_type}_has_$3=yes"
+  else
+    AC_MSG_RESULT(no) 
+    eval "ac_cv_type_${ac_safe_type}_has_$3="
+ 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)
+])
diff --git a/autogen.sh b/autogen.sh
new file mode 100755 (executable)
index 0000000..02d81c7
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh -e
+
+parentdir=`dirname $0`
+
+cd $parentdir
+parentdir=`pwd`
+
+libtoolize -f -c
+aclocal
+autoconf
+
+mysubdirs="$mysubdirs `find src/modules/ -name configure -print | sed 's%/configure%%'`"
+mysubdirs=`echo $mysubdirs`
+
+for F in $mysubdirs
+do
+       echo "Configuring in $F..."
+       (cd $F && autoconf -I$parentdir)
+done