-#
+# -*- makefile -*-
# Make.inc.in
#
# Version: $Id$
libdir = @libdir@
bindir = @bindir@
sbindir = @sbindir@
+docdir = @docdir@
mandir = @mandir@
-datadir = @datadir@/freeradius
+datadir = @datadir@
+dictdir = $(datadir)/freeradius
logdir = @logdir@
+includedir = @includedir@
raddbdir = @raddbdir@
radacctdir = @radacctdir@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
+top_builddir = @abs_top_builddir@
+top_build_prefix=@abs_top_builddir@/
+top_srcdir = @abs_top_srcdir@
+datarootdir = @datarootdir@
MAKE = @MAKE@
+
+# Makeflags set within the makefile appear to be additive and override
+# flags set on the command line and the environmental variables
+MAKEFLAGS = @MAKEFLAGS@
+
CC = @CC@
RANLIB = @RANLIB@
-INCLUDE =
-CFLAGS = $(INCLUDE) @CFLAGS@
+IMACROS = -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) -fno-strict-aliasing @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
LIBPREFIX = @LIBPREFIX@
+EXEEXT = @EXEEXT@
-LIBTOOL = @LIBTOOL@
+LIBTOOL = JLIBTOOL
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
LCRYPT = @CRYPTLIB@
LIBS = @LIBS@
+LDFLAGS = @LDFLAGS@
LOGDIR = ${logdir}
RADDBDIR = ${raddbdir}
RUNDIR = ${localstatedir}/run/radiusd
SBINDIR = ${sbindir}
RADIR = ${radacctdir}
+LIBRADIUS = $(top_builddir)/src/lib/$(LIBPREFIX)freeradius-radius.la -l talloc
-LIBLTDL = @LIBLTDL@
-LIBLTDLPATH = @LIBLTDLPATH@
-INCLTDL = @INCLTDL@
+#USE_SHARED_LIBS = @USE_SHARED_LIBS@
+#USE_STATIC_LIBS = @USE_STATIC_LIBS@
-USE_SHARED_LIBS = @USE_SHARED_LIBS@
-USE_STATIC_LIBS = @USE_STATIC_LIBS@
+USE_SHARED_LIBS = yes
+USE_STATIC_LIBS = yes
STATIC_MODULES = @STATIC_MODULES@
-SNMP_INCLUDE = @SNMP_INCLUDE@
-SNMP_LIBS = @SNMP_LIBS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OPENSSL_INCLUDE = @OPENSSL_INCLUDE@
+CFLAGS += $(OPENSSL_INCLUDE)
+
+LIBREADLINE = @LIBREADLINE@
+
+#
+# Version to use for packaging and other Make related things
+#
+RADIUSD_VERSION_STRING = @RADIUSD_VERSION_STRING@
#
-# SQL driver defines
+# This allows dlopen to do runtime checks for version mistmatches
+# between what it was originally linked with, and the library it's
+# actually loading.
#
-SQL_ODBC_LIBS = @ODBC_LIBS@
-SQL_ODBC_INCLUDE = @ODBC_INCLUDE@
+#LDFLAGS += -release=$(RADIUSD_VERSION_STRING)
+
+MODULES = @MODULES@
+HOSTINFO = @HOSTINFO@
+
+ifneq ($(WITH_OPENSSL_MD5),)
+LIBRADIUS_WITH_OPENSSL = 1
+CFLAGS += -DWITH_OPENSSL_MD5
+endif
+
+ifneq ($(WITH_OPENSSL_SHA1),)
+LIBRADIUS_WITH_OPENSSL = 1
+CFLAGS += -DWITH_OPENSSL_SHA1
+endif
+
+ifneq ($(LIBRADIUS_WITH_OPENSSL),)
+ifeq ($(OPENSSL_LIBS),)
+$(error OPENSSL_LIBS must be define in order to use WITH_OPENSSL_*)
+else
+LIBRADIUS += $(OPENSSL_LIBS)
+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
-RADIUSD_MAJOR_VERSION = @RADIUSD_MAJOR_VERSION@
-RADIUSD_MINOR_VERSION = @RADIUSD_MINOR_VERSION@
-RADIUSD_VERSION = @RADIUSD_VERSION@
+endif
-MODULES = @MODULES@
+ifeq "$(LA)" "so"
+ifneq "$(findstring Darwin,$(shell uname -a))" ""
+LA := dylib
+endif
+endif