]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/wpa_supplicant/Makefile
This commit was generated by cvs2svn to compensate for changes in r151970,
[FreeBSD/FreeBSD.git] / contrib / wpa_supplicant / Makefile
1 ifndef CC
2 CC=gcc
3 endif
4
5 ifndef CFLAGS
6 CFLAGS = -MMD -O2 -Wall -g
7 endif
8
9 # Include directories for CVS version
10 CFLAGS += -I../driver/modules -I../utils -I../hostapd
11
12 ALL=wpa_supplicant wpa_passphrase wpa_cli
13
14 all: verify_config $(ALL)
15
16 verify_config:
17         @if [ ! -r .config ]; then \
18                 echo 'Building wpa_supplicant requires a configuration file'; \
19                 echo '(.config). See README for more instructions. You can'; \
20                 echo 'run "cp defconfig .config" to create an example'; \
21                 echo 'configuration.'; \
22                 exit 1; \
23         fi
24
25 mkconfig:
26         @if [ -e .config ]; then \
27                 echo '.config exists - did not replace it'; \
28                 exit 1; \
29         fi
30         echo CONFIG_DRIVER_HOSTAP=y >> .config
31         echo CONFIG_DRIVER_WEXT=y >> .config
32         echo CONFIG_WIRELESS_EXTENSION=y >> .config
33
34 install: all
35         mkdir -p $(DESTDIR)/usr/local/sbin/
36         for i in $(ALL); do cp $$i $(DESTDIR)/usr/local/sbin/$$i; done
37
38 OBJS = config.o \
39         eloop.o common.o md5.o \
40         rc4.o sha1.o aes_wrap.o
41 OBJS_p = wpa_passphrase.o sha1.o md5.o
42 OBJS_c = wpa_cli.o wpa_ctrl.o
43
44 -include .config
45
46 ifdef CONFIG_EAPOL_TEST
47 CFLAGS += -Werror -DEAPOL_TEST
48 endif
49
50 ifdef CONFIG_DRIVER_HOSTAP
51 CFLAGS += -DCONFIG_DRIVER_HOSTAP
52 OBJS += driver_hostap.o
53 CONFIG_WIRELESS_EXTENSION=y
54 endif
55
56 ifdef CONFIG_DRIVER_WEXT
57 CFLAGS += -DCONFIG_DRIVER_WEXT
58 CONFIG_WIRELESS_EXTENSION=y
59 endif
60
61 ifdef CONFIG_DRIVER_PRISM54
62 CFLAGS += -DCONFIG_DRIVER_PRISM54
63 OBJS += driver_prism54.o
64 CONFIG_WIRELESS_EXTENSION=y
65 endif
66
67 ifdef CONFIG_DRIVER_HERMES
68 CFLAGS += -DCONFIG_DRIVER_HERMES
69 OBJS += driver_hermes.o
70 CONFIG_WIRELESS_EXTENSION=y
71 endif
72
73 ifdef CONFIG_DRIVER_MADWIFI
74 CFLAGS += -DCONFIG_DRIVER_MADWIFI
75 OBJS += driver_madwifi.o
76 CONFIG_WIRELESS_EXTENSION=y
77 endif
78
79 ifdef CONFIG_DRIVER_ATMEL
80 CFLAGS += -DCONFIG_DRIVER_ATMEL
81 OBJS += driver_atmel.o
82 CONFIG_WIRELESS_EXTENSION=y
83 endif
84
85 ifdef CONFIG_DRIVER_NDISWRAPPER
86 CFLAGS += -DCONFIG_DRIVER_NDISWRAPPER
87 OBJS += driver_ndiswrapper.o
88 CONFIG_WIRELESS_EXTENSION=y
89 endif
90
91 ifdef CONFIG_DRIVER_BROADCOM
92 CFLAGS += -DCONFIG_DRIVER_BROADCOM
93 OBJS += driver_broadcom.o
94 endif
95
96 ifdef CONFIG_DRIVER_IPW
97 CFLAGS += -DCONFIG_DRIVER_IPW
98 OBJS += driver_ipw.o
99 CONFIG_WIRELESS_EXTENSION=y
100 endif
101
102 ifdef CONFIG_DRIVER_BSD
103 CFLAGS += -DCONFIG_DRIVER_BSD
104 OBJS += driver_bsd.o
105 CONFIG_DNET_PCAP=y
106 endif
107
108 ifdef CONFIG_DRIVER_NDIS
109 CFLAGS += -DCONFIG_DRIVER_NDIS
110 OBJS += driver_ndis.o driver_ndis_.o
111 CONFIG_DNET_PCAP=y
112 CONFIG_WINPCAP=y
113 endif
114
115 ifdef CONFIG_DRIVER_TEST
116 CFLAGS += -DCONFIG_DRIVER_TEST
117 OBJS += driver_test.o
118 endif
119
120 ifdef CONFIG_DNET_PCAP
121 CFLAGS += -DUSE_DNET_PCAP
122 ifdef CONFIG_WINPCAP
123 CFLAGS += -DCONFIG_WINPCAP
124 LIBS += -lwpcap -lpacket
125 LIBS_w += -lwpcap
126 else
127 LIBS += -ldnet -lpcap
128 endif
129 endif
130
131 ifdef CONFIG_EAP_TLS
132 # EAP-TLS
133 CFLAGS += -DEAP_TLS
134 OBJS += eap_tls.o
135 TLS_FUNCS=y
136 CONFIG_IEEE8021X_EAPOL=y
137 endif
138
139 ifdef CONFIG_EAP_PEAP
140 # EAP-PEAP
141 CFLAGS += -DEAP_PEAP
142 OBJS += eap_peap.o
143 TLS_FUNCS=y
144 CONFIG_EAP_MSCHAPV2=y
145 CONFIG_IEEE8021X_EAPOL=y
146 CONFIG_EAP_TLV=y
147 endif
148
149 ifdef CONFIG_EAP_TTLS
150 # EAP-TTLS
151 CFLAGS += -DEAP_TTLS
152 OBJS += eap_ttls.o
153 MS_FUNCS=y
154 TLS_FUNCS=y
155 CONFIG_EAP_MD5=y
156 CONFIG_IEEE8021X_EAPOL=y
157 endif
158
159 ifdef CONFIG_EAP_MD5
160 # EAP-MD5 (also used by EAP-TTLS)
161 CFLAGS += -DEAP_MD5
162 OBJS += eap_md5.o
163 CONFIG_IEEE8021X_EAPOL=y
164 endif
165
166 # backwards compatibility for old spelling
167 ifdef CONFIG_MSCHAPV2
168 CONFIG_EAP_MSCHAPV2=y
169 endif
170
171 ifdef CONFIG_EAP_MSCHAPV2
172 # EAP-MSCHAPv2 (also used by EAP-PEAP)
173 CFLAGS += -DEAP_MSCHAPv2
174 OBJS += eap_mschapv2.o
175 MS_FUNCS=y
176 CONFIG_IEEE8021X_EAPOL=y
177 endif
178
179 ifdef CONFIG_EAP_GTC
180 # EAP-GTC (also used by EAP-PEAP)
181 CFLAGS += -DEAP_GTC
182 OBJS += eap_gtc.o
183 CONFIG_IEEE8021X_EAPOL=y
184 endif
185
186 ifdef CONFIG_EAP_OTP
187 # EAP-OTP
188 CFLAGS += -DEAP_OTP
189 OBJS += eap_otp.o
190 CONFIG_IEEE8021X_EAPOL=y
191 endif
192
193 ifdef CONFIG_EAP_SIM
194 # EAP-SIM
195 CFLAGS += -DEAP_SIM
196 OBJS += eap_sim.o
197 CONFIG_IEEE8021X_EAPOL=y
198 CONFIG_EAP_SIM_COMMON=y
199 endif
200
201 ifdef CONFIG_EAP_LEAP
202 # EAP-LEAP
203 CFLAGS += -DEAP_LEAP
204 OBJS += eap_leap.o
205 MS_FUNCS=y
206 CONFIG_IEEE8021X_EAPOL=y
207 endif
208
209 ifdef CONFIG_EAP_PSK
210 # EAP-PSK
211 CFLAGS += -DEAP_PSK
212 OBJS += eap_psk.o
213 CONFIG_IEEE8021X_EAPOL=y
214 endif
215
216 ifdef CONFIG_EAP_AKA
217 # EAP-AKA
218 CFLAGS += -DEAP_AKA
219 OBJS += eap_aka.o
220 CONFIG_IEEE8021X_EAPOL=y
221 CONFIG_EAP_SIM_COMMON=y
222 endif
223
224 ifdef CONFIG_EAP_SIM_COMMON
225 OBJS += eap_sim_common.o
226 endif
227
228 ifdef CONFIG_EAP_TLV
229 # EAP-TLV
230 CFLAGS += -DEAP_TLV
231 OBJS += eap_tlv.o
232 endif
233
234 ifdef CONFIG_EAP_FAST
235 # EAP-FAST
236 CFLAGS += -DEAP_FAST
237 OBJS += eap_fast.o
238 TLS_FUNCS=y
239 endif
240
241 ifdef CONFIG_IEEE8021X_EAPOL
242 # IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
243 CFLAGS += -DIEEE8021X_EAPOL
244 OBJS += eapol_sm.o eap.o
245 endif
246
247 ifdef CONFIG_PCSC
248 # PC/SC interface for smartcards (USIM, GSM SIM)
249 CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
250 OBJS += pcsc_funcs.o
251 # -lpthread may not be needed depending on how pcsc-lite was configured
252 LIBS += -lpcsclite -lpthread
253 endif
254
255 ifdef TLS_FUNCS
256 # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS)
257 CFLAGS += -DEAP_TLS_FUNCS
258 OBJS += eap_tls_common.o tls_openssl.o
259 LIBS += -lssl -lcrypto
260 LIBS_p += -lcrypto
261 else
262 OBJS += tls_none.o
263 endif
264
265 ifdef CONFIG_PKCS12
266 CFLAGS += -DPKCS12_FUNCS
267 endif
268
269 ifdef MS_FUNCS
270 ifndef TLS_FUNCS
271 LIBS += -lcrypto
272 endif
273 OBJS += ms_funcs.o crypto.o
274 endif
275
276 ifdef CONFIG_WIRELESS_EXTENSION
277 CFLAGS += -DCONFIG_WIRELESS_EXTENSION
278 OBJS += driver_wext.o
279 endif
280
281 ifdef CONFIG_CTRL_IFACE
282 CFLAGS += -DCONFIG_CTRL_IFACE
283 OBJS += ctrl_iface.o
284 endif
285
286 ifdef CONFIG_XSUPPLICANT_IFACE
287 CFLAGS += -DCONFIG_XSUPPLICANT_IFACE
288 endif
289
290 ifdef CONFIG_READLINE
291 CFLAGS += -DCONFIG_READLINE
292 LIBS_c += -lncurses -lreadline
293 endif
294
295 ifdef CONFIG_NATIVE_WINDOWS
296 CFLAGS += -DCONFIG_NATIVE_WINDOWS -DCONFIG_CTRL_IFACE_UDP
297 LIBS += -lws2_32 -lgdi32
298 LIBS_c += -lws2_32
299 endif
300
301 OBJS_t := $(OBJS) eapol_test.o radius.o radius_client.o
302 OBJS_t2 := $(OBJS) preauth_test.o l2_packet.o
303 OBJS += wpa_supplicant.o wpa.o l2_packet.o drivers.o
304
305 wpa_supplicant: .config $(OBJS)
306         $(CC) -o wpa_supplicant $(OBJS) $(LIBS)
307
308 eapol_test: .config $(OBJS_t)
309         $(CC) -o eapol_test $(OBJS_t) $(LIBS)
310
311 preauth_test: .config $(OBJS_t2) 
312         $(CC) -o preauth_test $(OBJS_t2) $(LIBS)
313
314 wpa_passphrase: $(OBJS_p)
315         $(CC) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
316
317 wpa_cli: $(OBJS_c)
318         $(CC) -o wpa_cli $(OBJS_c) $(LIBS_c)
319
320 win_if_list: win_if_list.c
321         $(CC) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
322
323 # parameters for Microsoft Visual C++ Toolkit 2003 compiler
324 CL=cl
325 CLDIR=C:\Program Files\Microsoft Visual C++ Toolkit 2003
326 PSDKDIR=C:\Program Files\Microsoft Platform SDK for Windows XP SP2
327 CLFLAGS=-O
328 CLLIBS=wbemuuid.lib libcmt.lib kernel32.lib uuid.lib ole32.lib oleaut32.lib \
329         ws2_32.lib
330
331 ndis_events: ndis_events.cpp
332         INCLUDE="$(CLDIR)\include;$(PSDKDIR)\Include" \
333         LIB="$(CLDIR)\lib;$(PSDKDIR)\Lib" \
334         $(CL) $(CLFLAGS) -o ndis_events.exe ndis_events.cpp \
335                 /link -nodefaultlib $(CLLIBS)
336
337 wpa_supplicant.exe: wpa_supplicant
338         mv -f $< $@
339 wpa_cli.exe: wpa_cli
340         mv -f $< $@
341 wpa_passphrase.exe: wpa_passphrase
342         mv -f $< $@
343 win_if_list.exe: win_if_list
344         mv -f $< $@
345
346 WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
347
348 windows-bin: $(WINALL)
349         $(STRIP) $(WINALL)
350
351 TEST_SRC_MS_FUNCS = ms_funcs.c crypto.c sha1.c md5.c
352 test-ms_funcs: $(TEST_SRC_MS_FUNCS)
353         $(CC) -o test-ms_funcs -Wall -Werror $(TEST_SRC_MS_FUNCS) \
354                 -DTEST_MAIN_MS_FUNCS -lcrypto -I../hostapd
355         ./test-ms_funcs
356         rm test-ms_funcs
357
358 TEST_SRC_SHA1 = sha1.c
359 test-sha1: $(TEST_SRC_SHA1)
360         $(CC) -o test-sha1 -Wall -Werror $(TEST_SRC_SHA1) \
361                 -DTEST_MAIN -I../hostad
362         ./test-sha1
363         rm test-sha1
364
365 TEST_SRC_AES_WRAP = aes_wrap.c
366 test-aes_wrap: $(TEST_SRC_AES_WRAP)
367         $(CC) -o test-aes_wrap -Wall -Werror $(TEST_SRC_AES_WRAP) \
368                 -DTEST_MAIN -I../hostad
369         ./test-aes_wrap
370         rm test-aes_wrap
371
372 TEST_SRC_EAP_SIM_COMMON = eap_sim_common.c sha1.c md5.c \
373         aes_wrap.c common.c
374 test-eap_sim_common: $(TEST_SRC_EAP_SIM_COMMON)
375         $(CC) -o test-eap_sim_common -Wall -Werror $(TEST_SRC_EAP_SIM_COMMON) \
376                 -DTEST_MAIN_EAP_SIM_COMMON -I../hostapd
377         ./test-eap_sim_common
378         rm test-eap_sim_common
379
380 tests: test-ms_funcs test-sha1 test-aes_wrap test-eap_sim_common
381
382 clean:
383         rm -f core *~ *.o *.d $(ALL) $(WINALL)
384
385 -include $(OBJS:%.o=%.d)