1 SOURCES := acct.c auth.c client.c conffile.c crypt.c exec.c files.c \
2 listen.c log.c mainconfig.c modules.c modcall.c \
3 radiusd.c stats.c soh.c \
4 session.c threads.c util.c valuepair.c version.c \
5 xlat.c process.c realms.c evaluate.c vmps.c detail.c
6 ifneq ($(OPENSSL_LIBS),)
10 SRC_CFLAGS := -DHOSTINFO=\"${HOSTINFO}\"
11 SRC_CFLAGS += -DRADIUSD_VERSION=\"${RADIUSD_VERSION}\"
12 SRC_CFLAGS += $(OPENSSL_INCLUDE)
13 TGT_INSTALLDIR := ${sbindir}
14 TGT_LDLIBS := $(OPENSSL_LIBS)
15 TGT_LDFLAGS := $(LIBS) $(LCRYPT)
17 TGT_PREREQS := libfreeradius-radius.a $(filter rlm_%,${ALL_TGTS})
20 SRC_FLAGS += -DWITH_DLOPEN
22 ${DIR}/modules.c: ${BUILD_DIR}/make/include/lt_dlmodules.c
25 ALL_MODULES := $(patsubst %.a,%,$(filter rlm_%,${ALL_TGTS}))
26 ALL_MODULES := $(patsubst %.la,%,$(filter rlm_%,${ALL_MODULES}))
28 # Filter out ones with additional library dependencies.
29 # For the future, go through ALL modules and add their library dependencies
31 ALL_MODULES := $(filter-out rlm_perl rlm_ldap rlm_pam rlm_krb5 rlm_python,${ALL_MODULES})
33 # EAP and SQL require different variable declarations.
34 EAP_MODULES := $(filter rlm_eap_%,${ALL_MODULES})
35 SQL_MODULES := $(filter rlm_sql_%,${ALL_MODULES})
37 BASE_MODULES := $(filter-out ${EAP_MODULES} ${SQL_MODULES},${ALL_MODULES})
40 # Create the intermediate file which links to the modules.
41 # And have it depend on this Makefile, which creates it.
43 ${BUILD_DIR}/make/include/lt_dlmodules.c: $(addprefix ${BUILD_DIR}/lib/,$(filter rlm_%,${ALL_TGTS})) $(lastword ${MAKEFILE_LIST})
45 @for x in ${BASE_MODULES}; do \
46 echo "extern module_t $$x;" >> $@; \
48 @for x in ${EAP_MODULES}; do \
49 echo "extern EAP_TYPE $$x;" >> $@; \
51 @for x in ${SQL_MODULES}; do \
52 echo "extern rlm_sql_module_t $$x;" >> $@; \
54 @echo "static const lt_dlmodule_t lt_dlmodules[] = {" >> $@
55 @for x in ${ALL_MODULES}; do \
56 echo "{ \"$$x\", &$$x }," >> $@; \
58 @echo "{ NULL, NULL }" >> $@
62 # Libraries can't depend on libraries (oops), so make the binary
63 # depend on the EAP code...
64 ifneq "$(filter rlm_eap_%,${ALL_TGTS})" ""
65 TGT_PREREQS += libfreeradius-eap.a