docdir = @docdir@
mandir = @mandir@
datadir = @datadir@
-dictdir = $(datadir)/freeradius
+dictdir = @dictdir@
logdir = @logdir@
includedir = @includedir@
CC = @CC@
RANLIB = @RANLIB@
-IMACROS = -imacros ${top_srcdir}/src/freeradius-devel/build.h -imacros ${top_srcdir}/src/freeradius-devel/autoconf.h -imacros ${top_srcdir}/src/freeradius-devel/features.h
-INCLUDE = -I${top_srcdir} -I${top_srcdir}/src
-CFLAGS = $(IMACROS) $(INCLUDE) -std=c99 -fno-strict-aliasing @CFLAGS@
+INCLUDE = -I. -Isrc \
+ -include src/freeradius-devel/autoconf.h \
+ -include src/freeradius-devel/build.h \
+ -include src/freeradius-devel/features.h \
+ -include src/freeradius-devel/radpaths.h
+CFLAGS = $(INCLUDE) -fno-strict-aliasing @CFLAGS@
CPPFLAGS = @CPPFLAGS@
LIBPREFIX = @LIBPREFIX@
EXEEXT = @EXEEXT@
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_SCRIPT = ${INSTALL_PROGRAM}
INSTALLSTRIP = @INSTALLSTRIP@
-DARWIN_CFLAGS = @DARWIN_CFLAGS@
+
+#
+# Linker arguments for libraries searched for by the main
+# configure script.
+#
+TALLOC_LIBS = @TALLOC_LIBS@
+TALLOC_LDFLAGS = @TALLOC_LDFLAGS@
+
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OPENSSL_LDFLAGS = @OPENSSL_LDFLAGS@
+OPENSSL_CPPFLAGS = @OPENSSL_CPPFLAGS@
+
+PCAP_LIBS = @PCAP_LIBS@
+PCAP_LDFLAGS = @PCAP_LDFLAGS@
+
+COLLECTDC_LIBS = @COLLECTDC_LIBS@
+COLLECTDC_LDFLAGS = @COLLECTDC_LDFLAGS@
LCRYPT = @CRYPTLIB@
-LIBS = @LIBS@
-LDFLAGS = @LDFLAGS@
+
+#
+# OpenSSL libs (if used) must be linked everywhere in order for
+# the server to work properly on on all platforms.
+#
+LIBS = $(OPENSSL_LIBS) $(TALLOC_LIBS) @LIBS@
+LDFLAGS = $(OPENSSL_LDFLAGS) $(TALLOC_LDFLAGS) @LDFLAGS@
LOGDIR = ${logdir}
RADDBDIR = ${raddbdir}
RUNDIR = ${localstatedir}/run/radiusd
SBINDIR = ${sbindir}
RADIR = ${radacctdir}
-LIBRADIUS = $(top_builddir)/src/lib/$(LIBPREFIX)freeradius-radius.la -ltalloc
+LIBRADIUS = $(top_builddir)/src/lib/$(LIBPREFIX)freeradius-radius.la $(TALLOC_LIBS)
USE_SHARED_LIBS = @USE_SHARED_LIBS@
bm_shared_libs = @USE_SHARED_LIBS@
bm_static_libs = @USE_STATIC_LIBS@
STATIC_MODULES = @STATIC_MODULES@
-
-OPENSSL_LIBS = @OPENSSL_LIBS@
-OPENSSL_INCLUDE = @OPENSSL_INCLUDE@
-
-#
-# If the system has OpenSSL, use it's version of MD4/MD5/SHA1, instead of
-# using ours.
-#
-ifneq "$(OPENSSL_INCLUDE)" ""
-CFLAGS += -DWITH_OPENSSL_MD4 -DWITH_OPENSSL_MD5
-endif
-
LIBREADLINE = @LIBREADLINE@
#
RADIUSD_VERSION_STRING = @RADIUSD_VERSION_STRING@
#
-# This allows dlopen to do runtime checks for version mistmatches
+# This allows dlopen to do runtime checks for version mismatches
# between what it was originally linked with, and the library it's
# actually loading.
#
-#LDFLAGS += -release=$(RADIUSD_VERSION_STRING)
-
MODULES = @MODULES@
HOSTINFO = @HOSTINFO@
+#
+# If the system has OpenSSL, use it's version of MD4/MD5/SHA1, instead of
+# using ours.
+#
+# We don't use OpenSSL SHA1 by default because src/modules/rlm_eap/libeap/fips186prf.c
+# needs access to the SHA internals.
+#
+ifeq "$(WITH_OPENSSL)" "yes"
+CFLAGS += -DWITH_OPENSSL_MD4 -DWITH_OPENSSL_MD5
+CPPFLAGS := "$(OPENSSL_CPPFLAGS) $(CPPFLAGS)"
+endif
+
+OPENSSL_LIBS = @OPENSSL_LIBS@
+
ifneq ($(WITH_OPENSSL_MD5),)
LIBRADIUS_WITH_OPENSSL = 1
CFLAGS += -DWITH_OPENSSL_MD5
endif
endif
-# http://clang.llvm.org/StaticAnalysis.html
-#
-# $ make SCAN=/path/to/checker/
-#
-ifneq ($(SCAN),)
-CC := $(SCAN)/scan-build gcc -DFR_SCAN_BUILD
-LIBTOOL :=
-endif
-
-#
-# Portability cruft. This is for replacing libtroll && libltdl
-# with gcc and dlopen().
-#
-ifeq "$(USE_SHARED_LIBS)" "yes"
-LINK_MODE.exe = -export-dynamic
-CFLAGS += -fPIC
-else
-LINK_MODE.exe = -static
-endif
-
-ifneq "$(LIBTOOL)" ""
-COMPILE.c := $(LIBTOOL) --quiet --mode=compile $(CC)
-LINK.lib := $(LIBTOOL) --quiet --mode=link $(CC) -rpath $(libdir) -o
-LO := lo
-LA := la
-else
-COMPILE.c := $(CC)
-LO := o
-
-ifeq "$(USE_SHARED_LIBS)" "yes"
-LINK.lib := $(CC) -shared -o
-LA := so
-else
-LINK.lib := $(AR) cru
-LA := a
-endif
-
-endif
-
-ifeq "$(LA)" "so"
-ifneq "$(findstring Darwin,$(shell uname -a))" ""
-LA := dylib
-endif
-endif
-
# Path to clang, setting this enables the 'scan.*' build targets
# which perform static analysis on various server components.
ANALYZE.c := @clang_path@
-ifeq "${CC}" "clang"
- ifeq "${ANALYZE.c}" ""
- ANALYZE.c := "${CC}"
- endif
-endif
-
#
# With shared libs, the test binaries are in a different place
# AND the method we use to run those binaries changes.
#
ifeq "$(USE_SHARED_LIBS)" "yes"
TESTBINDIR = ./$(BUILD_DIR)/bin/local
- TESTBIN = $(JLIBTOOL) --quiet --mode=execute $(TESTBINDIR)
+ TESTBIN = FR_LIBRARY_PATH=./build/lib/.libs $(JLIBTOOL) --quiet --mode=execute $(TESTBINDIR)
else
TESTBINDIR = ./$(BUILD_DIR)/bin
TESTBIN = ./$(BUILD_DIR)/bin