1
by Kyle McMartin
Import upstream version 0.3.8 |
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)
|