Parcourir la source

Manually search for radcli

Baptiste Jonglez il y a 7 ans
Parent
commit
60f9565512
1 fichiers modifiés avec 41 ajouts et 15 suppressions
  1. 41 15
      configure.ac

+ 41 - 15
configure.ac

@@ -986,24 +986,50 @@ AC_SUBST(CRYPTO_PACKAGE)
 AC_SUBST(CRYPTO_RPATH)
 AC_SUBST(DISTCHECK_CRYPTO_CONFIGURE_FLAG)
 
-default_radcli_val=yes
-AC_ARG_WITH([radcli], [AS_HELP_STRING([--with-radcli],
-        [use radcli for Radius-based host reservation])],
-        [with_radcli=$withval],
-        [with_radcli=$default_radcli_val])
-
-if test "$with_radcli" != no; then                                                                                                                                  
-        PKG_CHECK_MODULES(RADCLI, [radcli], [use_radcli=yes], [use_radcli=no])
-
-        if test "$use_radcli" = yes;then
-                AC_SUBST(RADCLI_CFLAGS)
-                AC_SUBST(RADCLI_LIBS)
-                AC_DEFINE([HAVE_RADCLI], 1, [Define to 1 to use radcli.])
-        fi
+radcli_path="yes"
+AC_ARG_WITH([radcli],
+  AC_HELP_STRING([--with-radcli=PATH],
+    [specify exact directory of radcli library and headers]),
+    [radcli_path="$withval"])
+if test "${radcli_path}" = "yes" ; then
+# Try some common paths.
+    radclidirs="/usr /usr/local /usr/pkg /opt /opt/local"
+    for d in $radclidirs
+    do
+            if test -f $d/include/radcli/radcli.h; then
+                    RADCLI_INCLUDES="-I$d/include"
+                    RADCLI_LIBS="-L$d/lib -L$d/lib64"
+                    break
+            fi
+    done
+elif test "${radcli_path}" != "no" ; then
+    RADCLI_INCLUDES="-I${radcli_path}/include"
+    RADCLI_LIBS="-L${radcli_path}/lib"
 fi
 
-AM_CONDITIONAL(HAVE_RADCLI, test "$use_radcli" = "yes")
+if test "${RADCLI_INCLUDES}" != "" ; then
+    RADCLI_LIBS="$RADCLI_LIBS -lradcli"
+    AC_SUBST(RADCLI_INCLUDES)
+    AC_SUBST(RADCLI_LIBS)
+    AC_DEFINE([HAVE_RADCLI], 1, [Define to 1 to use radcli.])
+
+    CPPFLAGS_SAVED=$CPPFLAGS
+    CPPFLAGS="$RADCLI_INCLUDES $CPPFLAGS"
+    LIBS_SAVED="$LIBS"
+    LIBS="$RADCLI_LIBS $LIBS"
 
+    AC_CHECK_HEADERS([radcli/radcli.h],,AC_MSG_ERROR([Missing required header files.]))
+    AC_LINK_IFELSE(
+            [AC_LANG_PROGRAM([#include <radcli/radcli.h>
+                             ],
+                             [rc_handle *rh;
+                              rh = rc_new();
+                             ])],
+            [AC_MSG_RESULT([checking for radcli library... yes])
+             AM_CONDITIONAL(HAVE_RADCLI, 1)],
+            [AC_MSG_RESULT([checking for radcli library... no])]
+    )
+fi
 
 # Check for MySql.  The path to the mysql_config program is given with
 # the --with-mysql-config (default to /usr/bin/mysql-config).  By default,