LIBPREFIX = @LIBPREFIX@
LIBTOOL = @LIBTOOL@
-LT_COMPILE = $(LIBTOOL) -mode=compile
-LT_LINK = $(LIBTOOL) -mode=link
PTHREADLIB = @PTHREADLIB@
LCRYPT = @CRYPTLIB@
BUILDDBM = @BUILDDBM@
DYNAMIC_MODULES = @DYNAMIC_MODULES@
-DAEMON_LDFLAGS = @DAEMON_LDFLAGS@
MODULE_LIBS = @MODULE_LIBS@
MODULE_LDFLAGS = @MODULE_LDFLAGS@
MODULE_HAVE_DLERROR = @MODULE_HAVE_DLERROR@
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
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,
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,
,)
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)
AC_SUBST(DYNAMIC_MODULES)
AC_DEFINE(HAVE_DLOPEN)
-AC_SUBST(DAEMON_LDFLAGS)
AC_SUBST(MODULE_LIBS)
AC_SUBST(MODULE_CFLAGS)
AC_SUBST(MODULE_LDFLAGS)
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(\
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
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)
#######################################################################
#
+# $Id$
+#
# Each module should have a few common defines at the TOP of the
# Makefile, and the 'include ../rules.mak'
#
# definitions for new dependencies on suffixes
#
#######################################################################
-.SUFFIXES: .lo .o .so .a
+.SUFFIXES: .lo .o .la .a
#######################################################################
#
$(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),)
#######################################################################
#
#######################################################################
$(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.
#
#######################################################################
@[ "$LDFLAGS" != "" ] && \
echo -n $(LDFLAGS) " " >> ../lib/STATIC_MODULE_LDFLAGS
-dynamic: $(TARGET).so
+dynamic: $(TARGET).la
@cp $< ../lib
#######################################################################
#
#######################################################################
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