A step towards allowing static linking
[freeradius.git] / src / main / Makefile.in
1 #
2 # $Id$
3 #
4
5 include ../../Make.inc
6
7 SERVER_OBJS     = radiusd.o files.o util.o acct.o nas.o log.o valuepair.o \
8                   version.o proxy.o exec.o auth.o timestr.o conffile.o \
9                   modules.o modcall.o session.o xlat.o threads.o smux.o \
10                   radius_snmp.o client.o request_list.o mainconfig.o
11 INCLUDES        = ../include/radiusd.h ../include/radius.h ../include/libradius.h ../include/conf.h ../include/autoconf.h
12
13 CFLAGS          += -I../include $(SNMP_INCLUDE) 
14 LDFLAGS         += -L../lib
15 LIBS            += -lradius $(SNMP_LIBS)
16 MODULE_LIBS     = $(STATIC_MODULES)
17 MODULE_OBJS     =
18 VFLAGS          = -DRADIUSD_MAJOR_VERSION=$(RADIUSD_MAJOR_VERSION)
19 VFLAGS          += -DRADIUSD_MINOR_VERSION=$(RADIUSD_MINOR_VERSION)
20 BINARIES        = radiusd radwho radzap radclient radrelay
21
22 #
23 #  Not using shared libraries, add in ALL known static modules
24 # at build time.
25 #
26 ifneq ($(USE_SHARED_LIBS),yes)
27 #
28 #  For static linking...
29 #
30 #MODULES += rlm_eap_md5  rlm_eap_leap rlm_eap_tls rlm_eap_ttls
31 #LIBS += $(OPENSSL_LIB) -lcrypto -lssl -lcrypto -lssl
32 #
33 MODULE_LIBS     += $(shell for x in $(MODULES);do test -f ../modules/$$x/$$x.la && echo -dlpreopen ../modules/$$x/$$x.la;done)
34 MODULE_OBJS     += $(shell for x in $(MODULES);do test -f ../modules/$$x/$$x.la && echo ../modules/$$x/$$x.la;done)
35 endif
36
37 all:    $(BINARIES)
38
39 radiusd: $(SERVER_OBJS) ../lib/libradius.a $(MODULE_OBJS)
40         $(LIBTOOL) --mode=link $(CC) -export-dynamic -dlopen self \
41                 $(CFLAGS) $(LDFLAGS) -o $@ \
42                 $(SERVER_OBJS) $(LCRYPT) $(LIBS) \
43                 $(PTHREADLIB) $(LIBLTDL) $(MODULE_LIBS) 
44
45 radiusd.o: radiusd.c $(INCLUDES)  ../include/request_list.h ../include/modules.h ../include/modcall.h ../include/modpriv.h
46         $(CC) $(CFLAGS) -c radiusd.c
47
48 acct.o: acct.c $(INCLUDES) ../include/modules.h
49         $(CC) $(CFLAGS) -c acct.c
50
51 files.o: files.c $(INCLUDES)
52         $(CC) $(CFLAGS) -c files.c
53
54 util.o: util.c $(INCLUDES)
55         $(CC) $(CFLAGS) -c util.c
56
57 nas.o:  nas.c $(INCLUDES)
58         $(CC) $(CFLAGS) -c nas.c
59
60 log.o:  log.c $(INCLUDES)
61         $(CC) $(CFLAGS) -c log.c
62
63 conffile.o: conffile.c $(INCLUDES) ../include/modules.h
64         $(CC) $(CFLAGS) -c conffile.c
65
66 mainconfig.o: mainconfig.c $(INCLUDES) ../include/modules.h
67         $(CC) $(CFLAGS) -c mainconfig.c
68
69 timestr.o: timestr.c $(INCLUDES)
70         $(CC) $(CFLAGS) -c timestr.c
71
72 modules.o:  modules.c $(INCLUDES)
73         $(CC) $(CFLAGS) $(VFLAGS) $(INCLTDL) -c modules.c
74
75 modcall.o:  modcall.c $(INCLUDES)
76         $(CC) $(CFLAGS) $(INCLTDL) -c modcall.c
77
78 session.o:  session.c $(INCLUDES) ../include/modules.h
79         $(CC) $(CFLAGS) -c session.c
80
81 request_list.o:  request_list.c $(INCLUDES)
82         $(CC) $(CFLAGS) -c request_list.c
83
84 proxy.o:  proxy.c $(INCLUDES)
85         $(CC) $(CFLAGS) -c proxy.c
86
87 exec.o:  exec.c $(INCLUDES)
88         $(CC) $(CFLAGS) -c exec.c
89
90 auth.o:  auth.c $(INCLUDES) ../include/modules.h
91         $(CC) $(CFLAGS) -c auth.c
92
93 valuepair.o:  valuepair.c $(INCLUDES)
94         $(CC) $(CFLAGS) -c valuepair.c
95
96 version.o: version.c $(INCLUDES)
97         $(CC) $(CFLAGS) -o version.o -c version.c
98
99 xlat.o: xlat.c $(INCLUDES)
100         $(CC) $(CFLAGS) -o xlat.o -c xlat.c
101
102 threads.o: threads.c $(INCLUDES)
103         $(CC) $(CFLAGS) -o threads.o -c threads.c
104
105 smux.o: smux.c $(INCLUDES)
106         $(CC) $(CFLAGS) -o smux.o -c smux.c
107
108 radius_snmp.o: radius_snmp.c $(INCLUDES)
109         $(CC) $(CFLAGS) -o radius_snmp.o -c radius_snmp.c
110
111 radclient: radclient.o ../lib/libradius.a
112         $(CC) $(CFLAGS) $(LDFLAGS) -o radclient radclient.o $(LIBS)
113
114 radclient.o: radclient.c $(INCLUDES)
115         $(CC) $(CFLAGS) -c radclient.c
116
117 radrelay: radrelay.o mainconfig.o util.o nas.o client.o log.o conffile.o files.o xlat.o ../lib/libradius.a
118         $(CC) $(CFLAGS) $(LDFLAGS) -o radrelay radrelay.o mainconfig.o util.o nas.o client.o log.o conffile.o files.o xlat.o $(LIBS)
119
120 radrelay.o: radrelay.c $(INCLUDES)
121         $(CC) $(CFLAGS) -c radrelay.c
122
123 radwho.o: radwho.c $(INCLUDES)
124         $(CC) $(CFLAGS) -c radwho.c
125
126 radwho: radwho.o mainconfig.o util.o nas.o client.o log.o conffile.o files.o xlat.o
127         $(CC) $(LDFLAGS) -o radwho radwho.o mainconfig.o util.o nas.o client.o log.o conffile.o files.o xlat.o $(LIBS)
128
129 radzap.o: radzap.c $(INCLUDES)
130         $(CC) $(CFLAGS) -c radzap.c
131
132 radzap: radzap.o mainconfig.o util.o nas.o log.o client.o conffile.o files.o xlat.o
133         $(CC) $(CFLAGS) $(LDFLAGS) -o radzap radzap.o mainconfig.o util.o nas.o log.o client.o conffile.o files.o xlat.o $(LIBS)
134
135 clean:
136         rm -rf *.o *.so *~ $(BINARIES) .libs
137
138 install:
139         $(LIBTOOL) --mode=install $(INSTALL) -m 755 $(INSTALLSTRIP) radiusd     $(R)$(sbindir)
140         $(INSTALL) -m 755 $(INSTALLSTRIP) radwho                $(R)$(bindir)
141         $(INSTALL) -m 755 $(INSTALLSTRIP) radzap                $(R)$(bindir)
142         $(INSTALL) -m 755    radlast            $(R)$(bindir)
143         $(INSTALL) -m 755    radclient          $(R)$(bindir)
144         $(INSTALL) -m 755    radrelay           $(R)$(bindir)
145         $(INSTALL) -m 755    radtest            $(R)$(bindir)
146         $(INSTALL) -d -m 755                    $(R)$(logdir)
147         $(INSTALL) -d -m 755                    $(R)$(radacctdir)
148         $(INSTALL) -m 755    checkrad.pl        $(R)$(sbindir)/checkrad