moved the build over to using libtool.
authoraland <aland>
Wed, 23 Feb 2000 16:18:23 +0000 (16:18 +0000)
committeraland <aland>
Wed, 23 Feb 2000 16:18:23 +0000 (16:18 +0000)
Removed some unnecessary checks in the configuration script,
as they're now handled by libtool.

Updated the Makefiles to use the libtool flags for exporting
dynamic symbols, and building shared libraries.

Make.inc.in
configure.in
src/lib/Makefile
src/main/Makefile
src/modules/rules.mak

index a70a723..008fb85 100644 (file)
@@ -25,8 +25,6 @@ CFLAGS                = $(INCLUDE) @CFLAGS@
 LIBPREFIX      = @LIBPREFIX@
 
 LIBTOOL                = @LIBTOOL@
-LT_COMPILE     = $(LIBTOOL) -mode=compile
-LT_LINK                = $(LIBTOOL) -mode=link
 
 PTHREADLIB     = @PTHREADLIB@
 LCRYPT         = @CRYPTLIB@
@@ -43,7 +41,6 @@ RADIR         = @radacctdir@
 BUILDDBM       = @BUILDDBM@
 
 DYNAMIC_MODULES        = @DYNAMIC_MODULES@
-DAEMON_LDFLAGS         = @DAEMON_LDFLAGS@
 MODULE_LIBS            = @MODULE_LIBS@
 MODULE_LDFLAGS         = @MODULE_LDFLAGS@
 MODULE_HAVE_DLERROR    = @MODULE_HAVE_DLERROR@
index 0b66759..ff69d8c 100644 (file)
@@ -25,6 +25,9 @@ if test "$GCC" = "yes"; then
     CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
 fi
 
+dnl ensure that we're looking for dlopen
+AC_LIBTOOL_DLOPEN
+
 dnl Figure out how to build shared libraries
 AC_PROG_LIBTOOL
 
@@ -203,21 +206,10 @@ AC_ARG_WITH(ascend-binary,
   esac ]
 )
 dnl if they haven't said to use it, do so.
-if test "$ASCEND_BINARY" = "";then
+if test "X$ASCEND_BINARY" = "X";then
   AC_DEFINE(ASCEND_BINARY)
 fi
 
-
-dnl extra argument: --with-dynamic_modules
-WITH_DYNAMIC_MODULES=yes
-AC_ARG_WITH(dynamic-modules,
-[  --with-dynamic-modules  Use runtime loadable modules ],
-[ case "$withval" in
-    *)
-       WITH_DYNAMIC_MODULES=$withval
-  esac ]
-)
-
 dnl extra argument: --with-threads
 WITH_THREADS=yes
 AC_ARG_WITH(threads,
@@ -347,6 +339,7 @@ MODULE_LIBS=
 MODULE_CFLAGS=
 MODULE_LDFLAGS=
 MODULE_HAVE_DLERROR=0
+
 dnl *** dlopen() and dlsym() in system libraries
 if test -z "$DYNAMIC_MODULES"; then
        AC_CHECK_FUNC(dlopen,
@@ -390,49 +383,8 @@ if test -z "$DYNAMIC_MODULES"; then
        ,)
 fi
 
-dnl *** how to build a shared object
-if test "$DYNAMIC_MODULES" != ""; then
-        AC_MSG_CHECKING(how to build a shared object)
-        LDFLAGS_orig=$LDFLAGS
-
-        LDFLAGS="$LDFLAGS -Bshareable"
-        AC_TRY_LINK(,[ return 0; ],
-                [ MODULE_LDFLAGS="-Bshareable" ],
-                  MODULE_LDFLAGS=""
-        )
-
-dnl *** Bret Watson <Bret.Watson@ticm.com> says HP ld uses '-b -B deferred'
-       if test -z "$MODULE_LDFLAGS"; then
-          LDFLAGS="$LDFLAGS_orig -b -B deferred"
-          AC_TRY_LINK(,[ return 0; ],
-                  [ MODULE_LDFLAGS="-b -B deferred" ],
-                    MODULE_LDFLAGS=""
-          )
-       fi
-
-        LDFLAGS=$LDFLAGS_orig
-       AC_MSG_RESULT(ld $MODULE_LDFLAGS)
-fi
-
 dnl *** additional checks for DYNAMIC_MODULES_DL
 if test "$DYNAMIC_MODULES" = "DYNAMIC_MODULES_DL"; then
-       dnl Check if the C compiler supports -rdynamic
-       AC_MSG_CHECKING(whether $CC accepts -rdynamic...)
-       CFLAGS_orig="$CFLAGS"
-       CFLAGS="$CFLAGS -rdynamic"
-       AC_TRY_COMPILE([], [int x = 0], DAEMON_LDFLAGS=-rdynamic)
-
-       if test -n "DAEMON_LDFLAGS"; then
-         AC_MSG_RESULT(yes)
-       else
-         AC_MSG_RESULT(no)
-       fi
-       CFLAGS="$CFLAGS_orig"
-
-       LIBS_orig="$LIBS"
-       LDFLAGS_orig="$LDFLAGS"
-       LIBS="$LIBS $MODULE_LIBS"
-       LDFLAGS="$LDFLAGS $MODULE_LDFLAGS"
 
 dnl *** check whether we need preceeding underscores
        AC_MSG_CHECKING(for preceeding underscore in symbols)
@@ -473,7 +425,6 @@ fi
 
 AC_SUBST(DYNAMIC_MODULES)
 AC_DEFINE(HAVE_DLOPEN)
-AC_SUBST(DAEMON_LDFLAGS)
 AC_SUBST(MODULE_LIBS)
 AC_SUBST(MODULE_CFLAGS)
 AC_SUBST(MODULE_LDFLAGS)
@@ -481,9 +432,8 @@ AC_SUBST(MODULE_HAVE_DLERROR)
 
 dnl #
 dnl # Figure out where libtool is located,
-dnl # and set the LT_COMPILE and LT_LINK flags.
 dnl #
-LIBTOOL="/bin/sh `pwd`/libtool"
+LIBTOOL="`pwd`/libtool"
 AC_SUBST(LIBTOOL)
 
 AC_OUTPUT(\
index 394115e..4479109 100644 (file)
@@ -12,8 +12,10 @@ CFLAGS               += -D_LIBRADIUS -I../include
 all:   $(LIBPREFIX)radius.a
 
 $(LIBPREFIX)radius.a: $(OBJS)
-       $(AR) rv $(LIBPREFIX)radius.a $(OBJS)
-       $(RANLIB) $(LIBPREFIX)radius.a
+       $(LIBTOOL) --mode=link $(LD) $(OBJS) -o $(LIBPREFIX)radius.a
+
+#      $(AR) rv $(LIBPREFIX)radius.a $(OBJS)
+#      $(RANLIB) $(LIBPREFIX)radius.a
 
 filters.o: filters.c $(INCLUDES)
        $(CC) $(CFLAGS) -c filters.c
index 3d4069e..daa513c 100644 (file)
@@ -27,7 +27,7 @@ endif
 all:   radiusd radwho radzap raduse radclient $(BUILDDBM)
 
 radiusd: $(SERVER_OBJS) ../lib/libradius.a
-       $(CC) $(LDFLAGS) $(DAEMON_LDFLAGS) -o $@ \
+       $(LIBTOOL) --mode=link $(CC) -export-dynamic $(LDFLAGS) -o $@ \
                $(SERVER_OBJS) $(LIBS) $(LDBM) $(LCRYPT) $(PTHREADLIB) \
                $(MODULE_LIBS)
 
index acb82dd..7428b12 100644 (file)
@@ -1,5 +1,7 @@
 #######################################################################
 #
+# $Id$
+#
 #  Each module should have a few common defines at the TOP of the
 # Makefile, and the 'include ../rules.mak'
 #
@@ -27,7 +29,7 @@ all: static dynamic
 #  definitions for new dependencies on suffixes
 #
 #######################################################################
-.SUFFIXES: .lo .o .so .a
+.SUFFIXES: .lo .o .la .a
 
 #######################################################################
 #
@@ -59,7 +61,7 @@ $(DYNAMIC_OBJS): $(SERVER_HEADERS)
        $(CC) $(CFLAGS) $(RLM_CFLAGS) -c $< -o $@
 
 %.lo : %.c
-       $(CC) $(CFLAGS) $(RLM_CFLAGS) -fPIC -c $< -o $@
+       $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) $(RLM_CFLAGS) -c $<
 
 ifneq ($(TARGET),)
 #######################################################################
@@ -68,17 +70,20 @@ ifneq ($(TARGET),)
 #
 #######################################################################
 $(TARGET).a: $(STATIC_OBJS)
-       $(AR) crv $@ $^
+       $(LIBTOOL) --mode=link $(LD) -static $(CFLAGS) $(RLM_CFLAGS) $(LIBS) $^ -o $@ 
+
+$(TARGET).la: $(DYNAMIC_OBJS)
+       $(LIBTOOL) --mode=link $(CC) -export-dynamic $(CFLAGS) \
+       $(RLM_CFLAGS) -o $@ -module -rpath $(libdir) $^ \
+       $(LIBS) && ln -s .libs/$(TARGET).so .
 
-$(TARGET).so: $(DYNAMIC_OBJS)
-       $(LD) $(MODULE_LDFLAGS) $(LIBS) $^ -o $@
 
 #######################################################################
 #
 #  Generic targets so we can sweep through all modules
 # without knowing what their names are.
 #
-#  These rules also allow us to copy the '.a' or '.so' up
+#  These rules also allow us to copy the '.a' or '.la' up
 # a level, to the 'src/modules' directory, for general consumption.
 #
 #######################################################################
@@ -89,7 +94,7 @@ static: $(TARGET).a
        @[ "$LDFLAGS" != "" ] && \
                echo -n $(LDFLAGS) " " >> ../lib/STATIC_MODULE_LDFLAGS
 
-dynamic: $(TARGET).so
+dynamic: $(TARGET).la
        @cp $< ../lib
 
 #######################################################################
@@ -111,7 +116,8 @@ endif
 #
 #######################################################################
 clean:
-       @rm -f *.a *.o *.lo *.so *~
+       @rm -f *.a *.o *.lo *.so *.la *~
+       rm -rf .libs _libs
 
 reallyclean: clean
        @rm -f config.h config.mak