I do have libltdl installed on my system as part of RedHat's libtool RPM package. However, the configure script fails to find the header file which exists:
======================================================================= $ ./configure --without-snmp \ --with-system-libtool --disable-ltdl-install \ --with-ltdl-lib=/usr/lib --with-ltdl-include=/usr/include [...] checking for lt_dlinit in -lltdl... yes checking for ltdl.h... no configure: warning: libltdl not installed, but installation disabled [...] $ rpm -qf /usr/include/ltdl.h libtool-1.4.2-5 ======================================================================= I hacked up the top level configuration files from yesterday's CVS checkout to reuse the latest auto tools (mine are autoconf 2.53 and automake 1.6.1). With those modifications I was able to get rid of link failure in src/main. The bootstrap script allows to remove automatically generated files from the CVS repository. However, some constructs in the updated configure.in are valid only with the newer autoconf. Perhaps, putting AC_PREREQ(2.53) into configure.in could be a good precaution. Another small problem was due to the sql_fetch_row() prototypes in freeradius/radiusd/src/modules/rlm_sql/drivers/rlm_sql_postgresql/sql_postgresql.h and freeradius/radiusd/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/sql_unixodbc.h not synchronized with their .c counterparts. Does the patch included below fix those prototypes correctly? Thank you, Ilguiz On Tue, 16 Jul 2002, Alan DeKok wrote: > If you don't have libltdl onyour system already, then the build > won't find *any* ltdl.h, and will die. =========================================================================== The following file was modified in freeradius/radiusd/src/include: Name Old version New version Comment ---- ----------- ----------- ------- autoconf.h.in 1.1.1.1 Removed The accompanying log: remove automatically generated file --------------------------------------------------------------------------- The following file was modified in freeradius/radiusd/src/modules/rlm_eap: Name Old version New version Comment ---- ----------- ----------- ------- Makefile 1.1.1.1 Removed The accompanying log: remove automatically generated file --------------------------------------------------------------------------- The following file was modified in freeradius/radiusd/src/modules/rlm_eap/types/rlm_eap_tls: Name Old version New version Comment ---- ----------- ----------- ------- Makefile 1.1.1.1 Removed The accompanying log: remove automatically generated file --------------------------------------------------------------------------- The following file was modified in freeradius/radiusd/src/modules: Name Old version New version Comment ---- ----------- ----------- ------- rules.mak 1.1.1.1 1.2 The accompanying log: Specify full path when copying files The diff of the modified file(s): --- rules.mak 15 Jul 2002 18:33:26 -0000 1.1.1.1 +++ rules.mak 16 Jul 2002 17:50:14 -0000 1.2 @@ -109,11 +109,11 @@ ####################################################################### static: $(TARGET).a $(RLM_UTILS) @[ "x$(RLM_SUBDIRS)" = "x" ] || $(MAKE) $(MFLAGS) WHAT_TO_MAKE=static common - @cp $< $(top_builddir)/src/modules/lib + @cp $< $(abs_top_srcdir)/src/modules/lib dynamic: $(TARGET).la $(RLM_UTILS) @[ "x$(RLM_SUBDIRS)" = "x" ] || $(MAKE) $(MFLAGS) WHAT_TO_MAKE=dynamic common - @cp $< $(top_builddir)/src/modules/lib + @cp $< $(abs_top_srcdir)/src/modules/lib ####################################################################### # --------------------------------------------------------------------------- The following file was modified in freeradius/radiusd/src/modules/rlm_eap/types/rlm_eap_md5: Name Old version New version Comment ---- ----------- ----------- ------- Makefile 1.1.1.1 Removed The accompanying log: remove automatically generated file --------------------------------------------------------------------------- The following file was modified in freeradius/radiusd/src/modules/rlm_sql/drivers/rlm_sql_unixodbc: Name Old version New version Comment ---- ----------- ----------- ------- sql_unixodbc.h 1.1.1.1 1.2 The accompanying log: Syncronize function prototypes The diff of the modified file(s): --- sql_unixodbc.h 15 Jul 2002 18:33:26 -0000 1.1.1.1 +++ sql_unixodbc.h 16 Jul 2002 17:51:18 -0000 1.2 @@ -28,7 +28,7 @@ int sql_store_result(SQLSOCK * sqlsocket, SQL_CONFIG *config); int sql_num_fields(SQLSOCK * sqlsocket, SQL_CONFIG *config); int sql_num_rows(SQLSOCK * sqlsocket, SQL_CONFIG *config); -SQL_ROW sql_fetch_row(SQLSOCK * sqlsocket, SQL_CONFIG *config); +int sql_fetch_row(SQLSOCK * sqlsocket, SQL_CONFIG *config); int sql_free_result(SQLSOCK * sqlsocket, SQL_CONFIG *config); char *sql_error(SQLSOCK * sqlsocket, SQL_CONFIG *config); int sql_close(SQLSOCK * sqlsocket, SQL_CONFIG *config); --------------------------------------------------------------------------- The following file was modified in freeradius/radiusd/src/modules/rlm_sql/drivers/rlm_sql_postgresql: Name Old version New version Comment ---- ----------- ----------- ------- sql_postgresql.h 1.1.1.1 1.2 The accompanying log: Syncronize function prototypes The diff of the modified file(s): --- sql_postgresql.h 15 Jul 2002 18:33:26 -0000 1.1.1.1 +++ sql_postgresql.h 16 Jul 2002 17:51:18 -0000 1.2 @@ -29,7 +29,7 @@ int sql_store_result(SQLSOCK * sqlsocket, SQL_CONFIG *config); int sql_num_fields(SQLSOCK * sqlsocket, SQL_CONFIG *config); int sql_num_rows(SQLSOCK * sqlsocket, SQL_CONFIG *config); -SQL_ROW sql_fetch_row(SQLSOCK * sqlsocket, SQL_CONFIG *config); +int sql_fetch_row(SQLSOCK * sqlsocket, SQL_CONFIG *config); int sql_free_result(SQLSOCK * sqlsocket, SQL_CONFIG *config); char *sql_error(SQLSOCK * sqlsocket, SQL_CONFIG *config); int sql_close(SQLSOCK * sqlsocket, SQL_CONFIG *config); --------------------------------------------------------------------------- The following files were modified in freeradius/radiusd: Name Old version New version Comment ---- ----------- ----------- ------- Make.inc.in 1.1.1.1 1.2 acinclude.m4 1.1 Added aclocal.m4 1.1.1.1 Removed bootstrap 1.1 Added config.guess 1.1.1.1 Removed config.sub 1.1.1.1 Removed configure 1.1.1.1 Removed configure.in 1.1.1.1 1.2 install-sh 1.1.1.1 Removed ltconfig 1.1.1.1 Removed ltmain.sh 1.1.1.1 Removed missing 1.1.1.1 Removed The accompanying log: Update build system to latest auto tools The diff of the modified file(s): --- Make.inc.in 15 Jul 2002 18:33:25 -0000 1.1.1.1 +++ Make.inc.in 16 Jul 2002 17:52:09 -0000 1.2 @@ -16,6 +16,7 @@ logdir = @logdir@ raddbdir = @raddbdir@ radacctdir = @radacctdir@ +abs_top_srcdir = @abs_top_srcdir@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @@ -30,10 +31,10 @@ ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ -INSTALL = ${top_builddir}/install-sh -c -INSTALL_PROGRAM = ${INSTALL} -INSTALL_DATA = ${INSTALL} -m 644 -INSTALL_SCRIPT = ${INSTALL_PROGRAM} +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALLSTRIP = @INSTALLSTRIP@ LCRYPT = @CRYPTLIB@ --- configure.in 15 Jul 2002 18:33:25 -0000 1.1.1.1 +++ configure.in 16 Jul 2002 17:52:09 -0000 1.2 @@ -21,13 +21,14 @@ dnl ############################################################# AC_INIT(src/main/radiusd.c) -AC_CONFIG_HEADER(src/include/autoconf.h) +AC_CONFIG_HEADERS(src/include/autoconf.h) AC_REVISION($Revision$)dnl dnl # The version of the software RADIUSD_MAJOR_VERSION=0 RADIUSD_MINOR_VERSION=7-pre RADIUSD_VERSION="${RADIUSD_MAJOR_VERSION}.${RADIUSD_MINOR_VERSION}" +AM_INIT_AUTOMAKE(radiusd, ${RADIUSD_VERSION}) dnl ############################################################# dnl # @@ -38,7 +39,7 @@ dnl Check for GNU cc AC_PROG_CC AC_PROG_GCC_TRADITIONAL -AC_PROG_CC_SUNPRO +dnl AC_PROG_CC_SUNPRO AC_PROG_RANLIB PACKAGE=freeradius @@ -64,6 +65,11 @@ dnl libltdl is installable AC_LIBLTDL_INSTALLABLE +if test x"$enable_ltdl_install" = x"yes"; then + AC_CONFIG_SUBDIRS('libtdl') + LIBLTDLPATH=libltdl +fi +AC_SUBST(LIBLTDLPATH) dnl use system-wide libtool, if it exists AC_ARG_WITH(system-libtool, @@ -341,8 +347,8 @@ dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD) PTHREADLIB= -if test "$WITH_THREADS" = "yes"; then - if test $ac_cv_prog_suncc = "yes"; then +if test "x$WITH_THREADS" = "xyes"; then + if test "x$ac_cv_prog_suncc" = "xyes"; then CFLAGS="$CFLAGS -mt" fi @@ -503,44 +509,52 @@ AC_TYPE_UID_T dnl check for socklen_t -AC_CHECK_TYPE_INCLUDE([ +AC_CHECK_TYPE(socklen_t,, + [AC_DEFINE([socklen_t], [int], [Type for socklen_t])], +[ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif -],socklen_t, int) +]) dnl check for uint8_t -AC_CHECK_TYPE_INCLUDE([ +AC_CHECK_TYPE(uint8_t,, + [AC_DEFINE([uint8_t], [unsigned char], [Type for uint8_t])], +[ #ifdef HAVE_INTTYPES_H #include <inttypes.h> #endif #ifdef HAVE_STDINT_H #include <stdint.h> #endif -],uint8_t, unsigned char) +]) dnl check for uint16_t -AC_CHECK_TYPE_INCLUDE([ +AC_CHECK_TYPE(uint16_t,, + [AC_DEFINE([uint16_t], [unsigned short], [Type for uint16_t])], +[ #ifdef HAVE_INTTYPES_H #include <inttypes.h> #endif #ifdef HAVE_STDINT_H #include <stdint.h> #endif -],uint16_t, unsigned short) +]) dnl check for uint32_t -AC_CHECK_TYPE_INCLUDE([ +AC_CHECK_TYPE(uint32_t,, + [AC_DEFINE([uint32_t], [unsigned int], [Type for uint32_t])], +[ #ifdef HAVE_INTTYPES_H #include <inttypes.h> #endif #ifdef HAVE_STDINT_H #include <stdint.h> #endif -],uint32_t, unsigned int) +]) dnl ############################################################# dnl # @@ -588,11 +602,9 @@ dnl # if not, set it to define ut_xtime == ut_tv.tv_sec if test "x$ac_cv_header_utmpx_h" = "xyes" then - AC_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime) - if test "x$ac_cv_type_struct_utmpx_ut_xtime" = "x" - then - AC_DEFINE(ut_xtime,ut_tv.tv_sec) - fi + AC_CHECK_MEMBER(struct utmpx.ut_xtime,, + [AC_DEFINE([ut_xtime], [ut_tv.tv_sec])], + [#include <utmpx.h>]) fi dnl ############################################################# @@ -677,7 +689,7 @@ AC_CHECK_LIB(posix4, sem_init) if test "X$ac_cv_lib_posix4_sem_init" = "X"; then - if test "$WITH_THREAD_POOL" = "yes"; then + if test "x$WITH_THREAD_POOL" = "xyes"; then AC_MSG_WARN(You do not have posix semaphores. Disabling thread pools) fi WITH_THREAD_POOL=no @@ -717,7 +729,7 @@ dnl # dnl # Figure out where libtool is located, dnl # -top_builddir=`pwd` +dnl top_builddir=`pwd` AC_MSG_RESULT([top_builddir=$top_builddir]) AC_SUBST(top_builddir) AC_SUBST(LIBLTDL) @@ -735,11 +747,11 @@ dnl # dnl # Checks to ensure that the thread pool code can build. dnl # -if test "$WITH_THREAD_POOL" = "yes"; then +if test "x$WITH_THREAD_POOL" = "xyes"; then dnl # dnl # If using thread pools, check that threading is enabled dnl # - if test "$WITH_THREADS" != "yes"; then + if test "x$WITH_THREADS" != "xyes"; then AC_MSG_ERROR(You must have threads enabled for thread pools to work.) fi @@ -820,7 +832,7 @@ AC_SUBST(RADIUSD_VERSION) export CFLAGS LIBS -AC_OUTPUT(\ +AC_CONFIG_FILES(\ ./Make.inc \ ./src/include/build-radpaths-h \ ./src/main/Makefile \ @@ -836,14 +848,20 @@ ./raddb/radiusd.conf ) -AC_OUTPUT_COMMANDS([echo timestamp > src/include/stamp-h]) -AC_OUTPUT_COMMANDS([(cd ./src/include && /bin/sh ./build-radpaths-h)]) -AC_OUTPUT_COMMANDS([(cd ./src/main && chmod +x checkrad.pl radlast radtest)]) -AC_OUTPUT_COMMANDS([(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)]) -AC_OUTPUT_COMMANDS([ +AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h]) +AC_CONFIG_COMMANDS([radpath.h], + [(cd ./src/include && /bin/sh ./build-radpaths-h)]) +AC_CONFIG_COMMANDS([checkrad.pl], + [(cd ./src/main && chmod +x checkrad.pl radlast radtest)]) +AC_CONFIG_COMMANDS([rc.radiusd], + [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config +radiusd.cron.daily radiusd.cron.monthly cryptpasswd)]) +AC_CONFIG_COMMANDS([autoconf.h], [ cat >> src/include/autoconf.h <<EOF #define HOSTINFO "$host" #define RADIUSD_VERSION "$RADIUSD_VERSION" EOF ],host=$host) + +AC_OUTPUT + =========================================================================== - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html