New build path variable
[freeradius.git] / acinclude.m4
index cd9d134..1dd8ad1 100644 (file)
@@ -377,4 +377,64 @@ m4_pushdef([AC_OUTPUT],
   AC_OUTPUT([$1],[$2],[$3])
 ])
 
+
+#  See if the compilation works with __thread, for thread-local storage
+#
+AC_DEFUN([FR_TLS],
+[
+    AC_MSG_CHECKING(for TLS)
+    AC_RUN_IFELSE([AC_LANG_SOURCE([[ static __thread int val; int main(int argc, char *argv[]) { return val = argc; } ]])],[have_tls=yes],[have_tls=no],[have_tls=no ])
+    AC_MSG_RESULT($have_tls)
+    if test "$have_tls" = "yes"; then
+        AC_DEFINE([HAVE_THREAD_TLS],[1],[Define if the compiler supports __thread])
+    fi
+])
+
+
+AC_DEFUN([AC_LIB_READLINE], [
+  AC_CACHE_CHECK([for a readline compatible library],
+                 ac_cv_lib_readline, [
+    ORIG_LIBS=$LIBS
+    for readline_lib in readline edit editline; do
+      for termcap_lib in "" termcap curses ncurses; do
+        if test -z "$termcap_lib"; then
+          TRY_LIB="-l$readline_lib"
+        else
+          TRY_LIB="-l$readline_lib -l$termcap_lib"
+        fi
+        LIBS="$ORIG_LIBS $TRY_LIB"
+        AC_TRY_LINK_FUNC(readline, ac_cv_lib_readline="$TRY_LIB")
+        if test -n "$ac_cv_lib_readline"; then
+          LIBREADLINE="$TRY_LIB"
+          AC_SUBST(LIBREADLINE)
+          break
+        fi
+      done
+      if test -n "$ac_cv_lib_readline"; then
+        break
+      fi
+    done
+    if test -z "$ac_cv_lib_readline"; then
+      ac_cv_lib_readline="no"
+    fi
+    LIBS=$ORIG_LIBS
+  ])
+
+  if test "$ac_cv_lib_readline" != "no"; then
+    AC_DEFINE(HAVE_LIBREADLINE, 1,
+              [Define if you have a readline compatible library])
+    AC_CHECK_HEADERS(readline.h readline/readline.h)
+    AC_CACHE_CHECK([whether readline supports history],
+                   ac_cv_lib_readline_history, [
+      ac_cv_lib_readline_history="no"
+      AC_TRY_LINK_FUNC(add_history, ac_cv_lib_readline_history="yes")
+    ])
+    if test "$ac_cv_lib_readline_history" = "yes"; then
+      AC_DEFINE(HAVE_READLINE_HISTORY, 1,
+                [Define if your readline library has \`add_history'])
+      AC_CHECK_HEADERS(history.h readline/history.h)
+    fi
+  fi
+])
+
 AC_INCLUDE(aclocal.m4)