X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=Make.inc.in;h=04e1b01bbdeaf8ae893c227be6d7c96c2f574a2e;hb=refs%2Fheads%2Fpsk-identity;hp=c7578b7e8df964c87101c893e209e166ce166f46;hpb=73e197cdd04d0a69da8d173aa3be7b295baa113b;p=freeradius.git diff --git a/Make.inc.in b/Make.inc.in index c7578b7..04e1b01 100644 --- a/Make.inc.in +++ b/Make.inc.in @@ -15,24 +15,49 @@ sbindir = @sbindir@ docdir = @docdir@ mandir = @mandir@ datadir = @datadir@ -dictdir = $(datadir)/freeradius +dictdir = @dictdir@ logdir = @logdir@ includedir = @includedir@ + +# +# In some systems, we don't want to over-write ANY configuration. +# So we do: +# +# $./configure +# $ make +# $ make -Draddbdir=/tmp/garbage install +# +# and all of the configuration files go into /tmp/garbage +# +ifeq "${raddbdir}" "" raddbdir = @raddbdir@ +endif +modconfdir = @modconfdir@ radacctdir = @radacctdir@ top_builddir = @abs_top_builddir@ -top_srcdir = @top_srcdir@ +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 = @FR_MAKEFLAGS@ + CC = @CC@ RANLIB = @RANLIB@ -INCLUDE = -CFLAGS = $(INCLUDE) @CFLAGS@ +INCLUDE = -I${top_srcdir} -I${top_srcdir}/src \ + -include ${top_srcdir}/src/freeradius-devel/autoconf.h \ + -include ${top_srcdir}/src/freeradius-devel/build.h \ + -include ${top_srcdir}/src/freeradius-devel/features.h \ + -include ${top_srcdir}/src/freeradius-devel/radpaths.h +CFLAGS = $(INCLUDE) -fno-strict-aliasing @CFLAGS@ CPPFLAGS = @CPPFLAGS@ LIBPREFIX = @LIBPREFIX@ -EXEEXT = @EXEEXT@ +EXEEXT = @EXEEXT@ -LIBTOOL = @LIBTOOL@ +LIBTOOL = JLIBTOOL ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -42,39 +67,153 @@ INSTALL_DATA = ${INSTALL} -m 644 INSTALL_SCRIPT = ${INSTALL_PROGRAM} INSTALLSTRIP = @INSTALLSTRIP@ +# +# 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@ + +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 $(TALLOC_LIBS) -LIBLTDL = @LIBLTDL@ -LIBLTDLPATH = @LIBLTDLPATH@ -INCLTDL = @INCLTDL@ - -USE_SHARED_LIBS = @USE_SHARED_LIBS@ +USE_SHARED_LIBS = @USE_SHARED_LIBS@ +bm_shared_libs = @USE_SHARED_LIBS@ USE_STATIC_LIBS = @USE_STATIC_LIBS@ +bm_static_libs = @USE_STATIC_LIBS@ + STATIC_MODULES = @STATIC_MODULES@ +LIBREADLINE = @LIBREADLINE@ + +# +# Version to use for packaging and other Make related things +# +RADIUSD_VERSION_STRING = @RADIUSD_VERSION_STRING@ -SNMP_INCLUDE = @SNMP_INCLUDE@ -SNMP_LIBS = @SNMP_LIBS@ +# +# This allows dlopen to do runtime checks for version mismatches +# between what it was originally linked with, and the library it's +# actually loading. +# +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 +endif OPENSSL_LIBS = @OPENSSL_LIBS@ -OPENSSL_INCLUDE = @OPENSSL_INCLUDE@ +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 # -# SQL driver defines +# $ make SCAN=/path/to/checker/ # -SQL_ODBC_LIBS = @ODBC_LIBS@ -SQL_ODBC_INCLUDE = @ODBC_INCLUDE@ +ifneq ($(SCAN),) +CC := $(SCAN)/scan-build gcc -DFR_SCAN_BUILD +LIBTOOL := +endif -RADIUSD_MAJOR_VERSION = @RADIUSD_MAJOR_VERSION@ -RADIUSD_MINOR_VERSION = @RADIUSD_MINOR_VERSION@ -RADIUSD_VERSION = @RADIUSD_VERSION@ +# +# 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 -MODULES = @MODULES@ -HOSTINFO = @HOSTINFO@ +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) +else + TESTBINDIR = ./$(BUILD_DIR)/bin + TESTBIN = ./$(BUILD_DIR)/bin +endif