Advertisement
Guest User

Untitled

a guest
May 10th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.22 KB | None | 0 0
  1. ifndef CC
  2. CC=gcc
  3. endif
  4.  
  5. ifndef CFLAGS
  6. CFLAGS = -MMD $(OPTCFLAGS) -Wall -g
  7. endif
  8.  
  9. CFLAGS += -I../src
  10. CFLAGS += -I../src/crypto
  11. CFLAGS += -I../src/utils
  12. CFLAGS += -I../src/common
  13. CFLAGS += -I../src/rsn_supp
  14.  
  15. ALL=wpa_supplicant wpa_passphrase wpa_cli
  16.  
  17. all: verify_config $(ALL) dynamic_eap_methods
  18.  
  19. verify_config:
  20. @if [ ! -r .config ]; then \
  21. echo 'Building wpa_supplicant requires a configuration file'; \
  22. echo '(.config). See README for more instructions. You can'; \
  23. echo 'run "cp defconfig .config" to create an example'; \
  24. echo 'configuration.'; \
  25. exit 1; \
  26. fi
  27.  
  28. mkconfig:
  29. @if [ -e .config ]; then \
  30. echo '.config exists - did not replace it'; \
  31. exit 1; \
  32. fi
  33. echo CONFIG_DRIVER_HOSTAP=y >> .config
  34. echo CONFIG_DRIVER_WEXT=y >> .config
  35. echo CONFIG_WIRELESS_EXTENSION=y >> .config
  36.  
  37. install: all
  38. mkdir -p $(DESTDIR)/etc
  39. cp wpa_supplicant.conf $(DESTDIR)/etc
  40. mkdir -p $(DESTDIR)/usr/sbin/
  41. for i in $(ALL); do cp $$i $(DESTDIR)/usr/sbin/$$i; done
  42.  
  43. OBJS = config.o
  44. OBJS += ../src/utils/common.o
  45. OBJS += ../src/utils/wpa_debug.o
  46. OBJS += ../src/utils/wpabuf.o
  47. OBJS += ../src/crypto/md5.o
  48. OBJS += ../src/crypto/rc4.o
  49. OBJS += ../src/crypto/md4.o
  50. OBJS += ../src/crypto/sha1.o
  51. OBJS += ../src/crypto/des.o
  52. OBJS_p = wpa_passphrase.o
  53. OBJS_p += ../src/utils/common.o
  54. OBJS_p += ../src/utils/wpa_debug.o
  55. OBJS_p += ../src/crypto/md5.o
  56. OBJS_p += ../src/crypto/md4.o
  57. OBJS_p += ../src/crypto/sha1.o
  58. OBJS_p += ../src/crypto/des.o
  59. OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
  60.  
  61. -include .config
  62.  
  63. ifndef CONFIG_OS
  64. ifdef CONFIG_NATIVE_WINDOWS
  65. CONFIG_OS=win32
  66. else
  67. CONFIG_OS=unix
  68. endif
  69. endif
  70.  
  71. ifeq ($(CONFIG_OS), internal)
  72. CFLAGS += -DOS_NO_C_LIB_DEFINES
  73. endif
  74.  
  75. OBJS += ../src/utils/os_$(CONFIG_OS).o
  76. OBJS_p += ../src/utils/os_$(CONFIG_OS).o
  77. OBJS_c += ../src/utils/os_$(CONFIG_OS).o
  78.  
  79. ifndef CONFIG_ELOOP
  80. CONFIG_ELOOP=eloop
  81. endif
  82. OBJS += ../src/utils/$(CONFIG_ELOOP).o
  83.  
  84.  
  85. ifdef CONFIG_EAPOL_TEST
  86. CFLAGS += -Werror -DEAPOL_TEST
  87. endif
  88.  
  89. ifndef CONFIG_BACKEND
  90. CONFIG_BACKEND=file
  91. endif
  92.  
  93. ifeq ($(CONFIG_BACKEND), file)
  94. OBJS += config_file.o
  95. ifndef CONFIG_NO_CONFIG_BLOBS
  96. NEED_BASE64=y
  97. endif
  98. CFLAGS += -DCONFIG_BACKEND_FILE
  99. endif
  100.  
  101. ifeq ($(CONFIG_BACKEND), winreg)
  102. OBJS += config_winreg.o
  103. endif
  104.  
  105. ifeq ($(CONFIG_BACKEND), none)
  106. OBJS += config_none.o
  107. endif
  108.  
  109. ifdef CONFIG_NO_CONFIG_WRITE
  110. CFLAGS += -DCONFIG_NO_CONFIG_WRITE
  111. endif
  112.  
  113. ifdef CONFIG_NO_CONFIG_BLOBS
  114. CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
  115. endif
  116.  
  117. ifdef CONFIG_NO_SCAN_PROCESSING
  118. CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
  119. endif
  120.  
  121. ifdef CONFIG_DRIVER_HOSTAP
  122. CFLAGS += -DCONFIG_DRIVER_HOSTAP
  123. OBJS_d += ../src/drivers/driver_hostap.o
  124. CONFIG_WIRELESS_EXTENSION=y
  125. endif
  126.  
  127. ifdef CONFIG_DRIVER_DSCAPE
  128. CFLAGS += -DCONFIG_DRIVER_DSCAPE
  129. OBJS_d += ../src/drivers/driver_dscape.o
  130. CONFIG_WIRELESS_EXTENSION=y
  131. endif
  132.  
  133.  
  134. ifdef CONFIG_DRIVER_WEXT
  135. CFLAGS += -DCONFIG_DRIVER_WEXT
  136. CONFIG_WIRELESS_EXTENSION=y
  137. endif
  138.  
  139. ifdef CONFIG_DRIVER_PRISM54
  140. CFLAGS += -DCONFIG_DRIVER_PRISM54
  141. OBJS_d += ../src/drivers/driver_prism54.o
  142. CONFIG_WIRELESS_EXTENSION=y
  143. endif
  144.  
  145. ifdef CONFIG_DRIVER_HERMES
  146. CFLAGS += -DCONFIG_DRIVER_HERMES
  147. OBJS_d += ../src/drivers/driver_hermes.o
  148. CONFIG_WIRELESS_EXTENSION=y
  149. endif
  150.  
  151. ifdef CONFIG_DRIVER_MADWIFI
  152. CFLAGS += -DCONFIG_DRIVER_MADWIFI
  153. OBJS_d += ../src/drivers/driver_madwifi.o
  154. CONFIG_WIRELESS_EXTENSION=y
  155. endif
  156.  
  157. ifdef CONFIG_DRIVER_ATMEL
  158. CFLAGS += -DCONFIG_DRIVER_ATMEL
  159. OBJS_d += ../src/drivers/driver_atmel.o
  160. CONFIG_WIRELESS_EXTENSION=y
  161. endif
  162.  
  163. ifdef CONFIG_DRIVER_NDISWRAPPER
  164. CFLAGS += -DCONFIG_DRIVER_NDISWRAPPER
  165. OBJS_d += ../src/drivers/driver_ndiswrapper.o
  166. CONFIG_WIRELESS_EXTENSION=y
  167. endif
  168.  
  169. ifdef CONFIG_DRIVER_RALINK
  170. CFLAGS += -DCONFIG_DRIVER_RALINK
  171. OBJS_d += ../src/drivers/driver_ralink.o
  172. endif
  173.  
  174. ifdef CONFIG_DRIVER_BROADCOM
  175. CFLAGS += -DCONFIG_DRIVER_BROADCOM
  176. OBJS_d += ../src/drivers/driver_broadcom.o
  177. endif
  178.  
  179. ifdef CONFIG_DRIVER_IPW
  180. CFLAGS += -DCONFIG_DRIVER_IPW
  181. OBJS_d += ../src/drivers/driver_ipw.o
  182. CONFIG_WIRELESS_EXTENSION=y
  183. endif
  184.  
  185. ifdef CONFIG_DRIVER_BSD
  186. CFLAGS += -DCONFIG_DRIVER_BSD
  187. OBJS_d += ../src/drivers/driver_bsd.o
  188. ifndef CONFIG_L2_PACKET
  189. CONFIG_L2_PACKET=freebsd
  190. endif
  191. endif
  192.  
  193. ifdef CONFIG_DRIVER_NDIS
  194. CFLAGS += -DCONFIG_DRIVER_NDIS
  195. OBJS_d += ../src/drivers/driver_ndis.o ../src/drivers/driver_ndis_.o
  196. ifndef CONFIG_L2_PACKET
  197. CONFIG_L2_PACKET=pcap
  198. endif
  199. CONFIG_WINPCAP=y
  200. ifdef CONFIG_USE_NDISUIO
  201. CFLAGS += -DCONFIG_USE_NDISUIO
  202. endif
  203. endif
  204.  
  205. ifdef CONFIG_DRIVER_WIRED
  206. CFLAGS += -DCONFIG_DRIVER_WIRED
  207. OBJS_d += ../src/drivers/driver_wired.o
  208. endif
  209.  
  210. ifdef CONFIG_DRIVER_TEST
  211. CFLAGS += -DCONFIG_DRIVER_TEST
  212. OBJS_d += ../src/drivers/driver_test.o
  213. endif
  214.  
  215. ifdef CONFIG_DRIVER_OSX
  216. CFLAGS += -DCONFIG_DRIVER_OSX
  217. OBJS_d += ../src/drivers/driver_osx.o
  218. LDFLAGS += -framework CoreFoundation
  219. LDFLAGS += -F/System/Library/PrivateFrameworks -framework Apple80211
  220. endif
  221.  
  222. ifdef CONFIG_DRIVER_IPHONE
  223. CFLAGS += -DCONFIG_DRIVER_IPHONE
  224. OBJS_d += ../src/drivers/driver_iphone.o
  225. OBJS_d += ../src/drivers/MobileApple80211.o
  226. LIBS += -framework CoreFoundation
  227. endif
  228.  
  229. ifndef CONFIG_L2_PACKET
  230. CONFIG_L2_PACKET=linux
  231. endif
  232.  
  233. OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
  234.  
  235. ifeq ($(CONFIG_L2_PACKET), pcap)
  236. ifdef CONFIG_WINPCAP
  237. CFLAGS += -DCONFIG_WINPCAP
  238. LIBS += -lwpcap -lpacket
  239. LIBS_w += -lwpcap
  240. else
  241. LIBS += -ldnet -lpcap
  242. endif
  243. endif
  244.  
  245. ifeq ($(CONFIG_L2_PACKET), winpcap)
  246. LIBS += -lwpcap -lpacket
  247. LIBS_w += -lwpcap
  248. endif
  249.  
  250. ifeq ($(CONFIG_L2_PACKET), freebsd)
  251. LIBS += -lpcap
  252. endif
  253.  
  254. ifdef CONFIG_EAP_TLS
  255. # EAP-TLS
  256. ifeq ($(CONFIG_EAP_TLS), dyn)
  257. CFLAGS += -DEAP_TLS_DYNAMIC
  258. EAPDYN += ../src/eap_peer/eap_tls.so
  259. else
  260. CFLAGS += -DEAP_TLS
  261. OBJS += ../src/eap_peer/eap_tls.o
  262. OBJS_h += ../src/eap_server/eap_tls.o
  263. endif
  264. TLS_FUNCS=y
  265. CONFIG_IEEE8021X_EAPOL=y
  266. endif
  267.  
  268. ifdef CONFIG_EAP_PEAP
  269. # EAP-PEAP
  270. ifeq ($(CONFIG_EAP_PEAP), dyn)
  271. CFLAGS += -DEAP_PEAP_DYNAMIC
  272. EAPDYN += ../src/eap_peer/eap_peap.so
  273. else
  274. CFLAGS += -DEAP_PEAP
  275. OBJS += ../src/eap_peer/eap_peap.o
  276. OBJS_h += ../src/eap_server/eap_peap.o
  277. endif
  278. TLS_FUNCS=y
  279. CONFIG_IEEE8021X_EAPOL=y
  280. CONFIG_EAP_TLV=y
  281. endif
  282.  
  283. ifdef CONFIG_EAP_TTLS
  284. # EAP-TTLS
  285. ifeq ($(CONFIG_EAP_TTLS), dyn)
  286. CFLAGS += -DEAP_TTLS_DYNAMIC
  287. EAPDYN += ../src/eap_peer/eap_ttls.so
  288. else
  289. CFLAGS += -DEAP_TTLS
  290. OBJS += ../src/eap_peer/eap_ttls.o
  291. OBJS_h += ../src/eap_server/eap_ttls.o
  292. endif
  293. MS_FUNCS=y
  294. TLS_FUNCS=y
  295. CHAP=y
  296. CONFIG_IEEE8021X_EAPOL=y
  297. endif
  298.  
  299. ifdef CONFIG_EAP_MD5
  300. # EAP-MD5
  301. ifeq ($(CONFIG_EAP_MD5), dyn)
  302. CFLAGS += -DEAP_MD5_DYNAMIC
  303. EAPDYN += ../src/eap_peer/eap_md5.so
  304. else
  305. CFLAGS += -DEAP_MD5
  306. OBJS += ../src/eap_peer/eap_md5.o
  307. OBJS_h += ../src/eap_server/eap_md5.o
  308. endif
  309. CHAP=y
  310. CONFIG_IEEE8021X_EAPOL=y
  311. endif
  312.  
  313. # backwards compatibility for old spelling
  314. ifdef CONFIG_MSCHAPV2
  315. ifndef CONFIG_EAP_MSCHAPV2
  316. CONFIG_EAP_MSCHAPV2=y
  317. endif
  318. endif
  319.  
  320. ifdef CONFIG_EAP_MSCHAPV2
  321. # EAP-MSCHAPv2
  322. ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
  323. CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
  324. EAPDYN += ../src/eap_peer/eap_mschapv2.so
  325. EAPDYN += ../src/eap_peer/mschapv2.so
  326. else
  327. CFLAGS += -DEAP_MSCHAPv2
  328. OBJS += ../src/eap_peer/eap_mschapv2.o
  329. OBJS += ../src/eap_peer/mschapv2.o
  330. OBJS_h += ../src/eap_server/eap_mschapv2.o
  331. endif
  332. MS_FUNCS=y
  333. CONFIG_IEEE8021X_EAPOL=y
  334. endif
  335.  
  336. ifdef CONFIG_EAP_GTC
  337. # EAP-GTC
  338. ifeq ($(CONFIG_EAP_GTC), dyn)
  339. CFLAGS += -DEAP_GTC_DYNAMIC
  340. EAPDYN += ../src/eap_peer/eap_gtc.so
  341. else
  342. CFLAGS += -DEAP_GTC
  343. OBJS += ../src/eap_peer/eap_gtc.o
  344. OBJS_h += ../src/eap_server/eap_gtc.o
  345. endif
  346. CONFIG_IEEE8021X_EAPOL=y
  347. endif
  348.  
  349. ifdef CONFIG_EAP_OTP
  350. # EAP-OTP
  351. ifeq ($(CONFIG_EAP_OTP), dyn)
  352. CFLAGS += -DEAP_OTP_DYNAMIC
  353. EAPDYN += ../src/eap_peer/eap_otp.so
  354. else
  355. CFLAGS += -DEAP_OTP
  356. OBJS += ../src/eap_peer/eap_otp.o
  357. endif
  358. CONFIG_IEEE8021X_EAPOL=y
  359. endif
  360.  
  361. ifdef CONFIG_EAP_SIM
  362. # EAP-SIM
  363. ifeq ($(CONFIG_EAP_SIM), dyn)
  364. CFLAGS += -DEAP_SIM_DYNAMIC
  365. EAPDYN += ../src/eap_peer/eap_sim.so
  366. else
  367. CFLAGS += -DEAP_SIM
  368. OBJS += ../src/eap_peer/eap_sim.o
  369. OBJS_h += ../src/eap_server/eap_sim.o
  370. endif
  371. CONFIG_IEEE8021X_EAPOL=y
  372. CONFIG_EAP_SIM_COMMON=y
  373. endif
  374.  
  375. ifdef CONFIG_EAP_LEAP
  376. # EAP-LEAP
  377. ifeq ($(CONFIG_EAP_LEAP), dyn)
  378. CFLAGS += -DEAP_LEAP_DYNAMIC
  379. EAPDYN += ../src/eap_peer/eap_leap.so
  380. else
  381. CFLAGS += -DEAP_LEAP
  382. OBJS += ../src/eap_peer/eap_leap.o
  383. endif
  384. MS_FUNCS=y
  385. CONFIG_IEEE8021X_EAPOL=y
  386. endif
  387.  
  388. ifdef CONFIG_EAP_PSK
  389. # EAP-PSK
  390. ifeq ($(CONFIG_EAP_PSK), dyn)
  391. CFLAGS += -DEAP_PSK_DYNAMIC
  392. EAPDYN += ../src/eap_peer/eap_psk.so
  393. else
  394. CFLAGS += -DEAP_PSK
  395. OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
  396. OBJS_h += ../src/eap_server/eap_psk.o
  397. endif
  398. CONFIG_IEEE8021X_EAPOL=y
  399. NEED_AES=y
  400. endif
  401.  
  402. ifdef CONFIG_EAP_AKA
  403. # EAP-AKA
  404. ifeq ($(CONFIG_EAP_AKA), dyn)
  405. CFLAGS += -DEAP_AKA_DYNAMIC
  406. EAPDYN += ../src/eap_peer/eap_aka.so
  407. else
  408. CFLAGS += -DEAP_AKA
  409. OBJS += ../src/eap_peer/eap_aka.o
  410. OBJS_h += ../src/eap_server/eap_aka.o
  411. endif
  412. CONFIG_IEEE8021X_EAPOL=y
  413. CONFIG_EAP_SIM_COMMON=y
  414. endif
  415.  
  416. ifdef CONFIG_EAP_SIM_COMMON
  417. OBJS += ../src/eap_common/eap_sim_common.o
  418. OBJS_h += ../src/eap_server/eap_sim_db.o
  419. NEED_AES=y
  420. NEED_FIPS186_2_PRF=y
  421. endif
  422.  
  423. ifdef CONFIG_EAP_TLV
  424. # EAP-TLV
  425. CFLAGS += -DEAP_TLV
  426. OBJS += ../src/eap_peer/eap_tlv.o
  427. OBJS_h += ../src/eap_server/eap_tlv.o
  428. endif
  429.  
  430. ifdef CONFIG_EAP_FAST
  431. # EAP-FAST
  432. ifeq ($(CONFIG_EAP_FAST), dyn)
  433. CFLAGS += -DEAP_FAST_DYNAMIC
  434. EAPDYN += ../src/eap_peer/eap_fast.so
  435. else
  436. CFLAGS += -DEAP_FAST
  437. OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
  438. OBJS_h += ../src/eap_server/eap_fast.o
  439. endif
  440. TLS_FUNCS=y
  441. NEED_T_PRF=y
  442. endif
  443.  
  444. ifdef CONFIG_EAP_PAX
  445. # EAP-PAX
  446. ifeq ($(CONFIG_EAP_PAX), dyn)
  447. CFLAGS += -DEAP_PAX_DYNAMIC
  448. EAPDYN += ../src/eap_peer/eap_pax.so
  449. else
  450. CFLAGS += -DEAP_PAX
  451. OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
  452. OBJS_h += ../src/eap_server/eap_pax.o
  453. endif
  454. CONFIG_IEEE8021X_EAPOL=y
  455. endif
  456.  
  457. ifdef CONFIG_EAP_SAKE
  458. # EAP-SAKE
  459. ifeq ($(CONFIG_EAP_SAKE), dyn)
  460. CFLAGS += -DEAP_SAKE_DYNAMIC
  461. EAPDYN += ../src/eap_peer/eap_sake.so
  462. else
  463. CFLAGS += -DEAP_SAKE
  464. OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
  465. OBJS_h += ../src/eap_server/eap_sake.o
  466. endif
  467. CONFIG_IEEE8021X_EAPOL=y
  468. endif
  469.  
  470. ifdef CONFIG_EAP_GPSK
  471. # EAP-GPSK
  472. ifeq ($(CONFIG_EAP_GPSK), dyn)
  473. CFLAGS += -DEAP_GPSK_DYNAMIC
  474. EAPDYN += ../src/eap_peer/eap_gpsk.so
  475. else
  476. CFLAGS += -DEAP_GPSK
  477. OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
  478. OBJS_h += ../src/eap_server/eap_gpsk.o
  479. endif
  480. CONFIG_IEEE8021X_EAPOL=y
  481. ifdef CONFIG_EAP_GPSK_SHA256
  482. CFLAGS += -DEAP_GPSK_SHA256
  483. endif
  484. NEED_SHA256=y
  485. endif
  486.  
  487. ifdef CONFIG_EAP_IKEV2
  488. # EAP-IKEv2
  489. ifeq ($(CONFIG_EAP_IKEV2), dyn)
  490. CFLAGS += -DEAP_IKEV2_DYNAMIC
  491. EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
  492. EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
  493. else
  494. CFLAGS += -DEAP_IKEV2
  495. OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
  496. OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
  497. OBJS_h += ../src/eap_server/eap_ikev2.o
  498. OBJS_h += ../src/eap_server/ikev2.o
  499. endif
  500. CONFIG_IEEE8021X_EAPOL=y
  501. NEED_DH_GROUPS=y
  502. endif
  503.  
  504. ifdef CONFIG_EAP_VENDOR_TEST
  505. ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
  506. CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
  507. EAPDYN += ../src/eap_peer/eap_vendor_test.so
  508. else
  509. CFLAGS += -DEAP_VENDOR_TEST
  510. OBJS += ../src/eap_peer/eap_vendor_test.o
  511. OBJS_h += ../src/eap_server/eap_vendor_test.o
  512. endif
  513. CONFIG_IEEE8021X_EAPOL=y
  514. endif
  515.  
  516. ifdef CONFIG_EAP_TNC
  517. # EAP-TNC
  518. CFLAGS += -DEAP_TNC
  519. OBJS += ../src/eap_peer/eap_tnc.o
  520. OBJS += ../src/eap_peer/tncc.o
  521. NEED_BASE64=y
  522. endif
  523.  
  524. ifdef CONFIG_IEEE8021X_EAPOL
  525. # IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
  526. CFLAGS += -DIEEE8021X_EAPOL
  527. OBJS += ../src/eapol_supp/eapol_supp_sm.o ../src/eap_peer/eap.o ../src/eap_common/eap_common.o ../src/eap_peer/eap_methods.o
  528. ifdef CONFIG_DYNAMIC_EAP_METHODS
  529. CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
  530. LIBS += -ldl -rdynamic
  531. endif
  532. endif
  533.  
  534. ifdef CONFIG_EAP_SERVER
  535. CFLAGS += -DEAP_SERVER
  536. OBJS_h += ../src/eap_server/eap.o
  537. OBJS_h += ../src/eap_server/eap_identity.o
  538. OBJS_h += ../src/eap_server/eap_methods.o
  539. endif
  540.  
  541. ifdef CONFIG_RADIUS_CLIENT
  542. OBJS_h += ../src/utils/ip_addr.o
  543. OBJS_h += ../src/radius/radius.o
  544. OBJS_h += ../src/radius/radius_client.o
  545. endif
  546.  
  547. ifdef CONFIG_AUTHENTICATOR
  548. OBJS_h += ../hostapd/eapol_sm.o
  549. OBJS_h += ../hostapd/ieee802_1x.o
  550. endif
  551.  
  552. ifdef CONFIG_WPA_AUTHENTICATOR
  553. OBJS_h += ../hostapd/wpa.o
  554. OBJS_h += ../hostapd/wpa_auth_ie.o
  555. ifdef CONFIG_IEEE80211R
  556. OBJS_h += ../hostapd/wpa_ft.o
  557. endif
  558. ifdef CONFIG_PEERKEY
  559. OBJS_h += ../hostapd/peerkey.o
  560. endif
  561. endif
  562.  
  563. ifdef CONFIG_PCSC
  564. # PC/SC interface for smartcards (USIM, GSM SIM)
  565. CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
  566. OBJS += ../src/utils/pcsc_funcs.o
  567. # -lpthread may not be needed depending on how pcsc-lite was configured
  568. ifdef CONFIG_NATIVE_WINDOWS
  569. #Once MinGW gets support for WinScard, -lwinscard could be used instead of the
  570. #dynamic symbol loading that is now used in pcsc_funcs.c
  571. #LIBS += -lwinscard
  572. else
  573. LIBS += -lpcsclite -lpthread
  574. endif
  575. endif
  576.  
  577. ifndef CONFIG_TLS
  578. CONFIG_TLS=openssl
  579. endif
  580.  
  581. ifeq ($(CONFIG_TLS), internal)
  582. ifndef CONFIG_CRYPTO
  583. CONFIG_CRYPTO=internal
  584. endif
  585. endif
  586. ifeq ($(CONFIG_CRYPTO), libtomcrypt)
  587. CFLAGS += -DCONFIG_INTERNAL_X509
  588. endif
  589. ifeq ($(CONFIG_CRYPTO), internal)
  590. CFLAGS += -DCONFIG_INTERNAL_X509
  591. endif
  592.  
  593.  
  594. ifdef TLS_FUNCS
  595. # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
  596. CFLAGS += -DEAP_TLS_FUNCS
  597. OBJS += ../src/eap_peer/eap_tls_common.o
  598. OBJS_h += ../src/eap_server/eap_tls_common.o
  599. NEED_TLS_PRF=y
  600. ifeq ($(CONFIG_TLS), openssl)
  601. CFLAGS += -DEAP_TLS_OPENSSL
  602. OBJS += ../src/crypto/tls_openssl.o
  603. LIBS += -lssl -lcrypto
  604. LIBS_p += -lcrypto
  605. endif
  606. ifeq ($(CONFIG_TLS), gnutls)
  607. OBJS += ../src/crypto/tls_gnutls.o
  608. LIBS += -lgnutls -lgcrypt -lgpg-error
  609. LIBS_p += -lgcrypt
  610. ifdef CONFIG_GNUTLS_EXTRA
  611. CFLAGS += -DCONFIG_GNUTLS_EXTRA
  612. LIBS += -lgnutls-extra
  613. endif
  614. endif
  615. ifeq ($(CONFIG_TLS), schannel)
  616. OBJS += ../src/crypto/tls_schannel.o
  617. endif
  618. ifeq ($(CONFIG_TLS), internal)
  619. OBJS += ../src/crypto/tls_internal.o
  620. OBJS += ../src/tls/tlsv1_common.o ../src/tls/tlsv1_record.o
  621. OBJS += ../src/tls/tlsv1_cred.o ../src/tls/tlsv1_client.o
  622. OBJS += ../src/tls/tlsv1_client_write.o ../src/tls/tlsv1_client_read.o
  623. OBJS += ../src/tls/asn1.o ../src/tls/x509v3.o
  624. OBJS_p += ../src/tls/asn1.o
  625. OBJS_p += ../src/crypto/rc4.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o
  626. NEED_BASE64=y
  627. NEED_TLS_PRF=y
  628. CFLAGS += -DCONFIG_TLS_INTERNAL
  629. CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
  630. ifeq ($(CONFIG_CRYPTO), internal)
  631. ifdef CONFIG_INTERNAL_LIBTOMMATH
  632. CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
  633. else
  634. LIBS += -ltommath
  635. LIBS_p += -ltommath
  636. endif
  637. endif
  638. ifeq ($(CONFIG_CRYPTO), libtomcrypt)
  639. LIBS += -ltomcrypt -ltfm
  640. LIBS_p += -ltomcrypt -ltfm
  641. endif
  642. endif
  643. ifeq ($(CONFIG_TLS), none)
  644. OBJS += ../src/crypto/tls_none.o
  645. CFLAGS += -DEAP_TLS_NONE
  646. CONFIG_INTERNAL_AES=y
  647. CONFIG_INTERNAL_SHA1=y
  648. CONFIG_INTERNAL_MD5=y
  649. CONFIG_INTERNAL_SHA256=y
  650. endif
  651. ifdef CONFIG_SMARTCARD
  652. ifndef CONFIG_NATIVE_WINDOWS
  653. ifneq ($(CONFIG_L2_PACKET), freebsd)
  654. LIBS += -ldl
  655. endif
  656. endif
  657. endif
  658. NEED_CRYPTO=y
  659. else
  660. OBJS += ../src/crypto/tls_none.o
  661. endif
  662.  
  663. ifdef CONFIG_PKCS12
  664. CFLAGS += -DPKCS12_FUNCS
  665. endif
  666.  
  667. ifdef CONFIG_SMARTCARD
  668. CFLAGS += -DCONFIG_SMARTCARD
  669. endif
  670.  
  671. ifdef MS_FUNCS
  672. OBJS += ../src/crypto/ms_funcs.o
  673. NEED_CRYPTO=y
  674. endif
  675.  
  676. ifdef CHAP
  677. OBJS += ../src/eap_common/chap.o
  678. endif
  679.  
  680. ifdef NEED_CRYPTO
  681. ifndef TLS_FUNCS
  682. ifeq ($(CONFIG_TLS), openssl)
  683. LIBS += -lcrypto
  684. LIBS_p += -lcrypto
  685. endif
  686. ifeq ($(CONFIG_TLS), gnutls)
  687. LIBS += -lgcrypt
  688. LIBS_p += -lgcrypt
  689. endif
  690. ifeq ($(CONFIG_TLS), schannel)
  691. endif
  692. ifeq ($(CONFIG_TLS), internal)
  693. ifeq ($(CONFIG_CRYPTO), libtomcrypt)
  694. LIBS += -ltomcrypt -ltfm
  695. LIBS_p += -ltomcrypt -ltfm
  696. endif
  697. endif
  698. endif
  699. ifeq ($(CONFIG_TLS), openssl)
  700. OBJS += ../src/crypto/crypto_openssl.o
  701. OBJS_p += ../src/crypto/crypto_openssl.o
  702. CONFIG_INTERNAL_SHA256=y
  703. endif
  704. ifeq ($(CONFIG_TLS), gnutls)
  705. OBJS += ../src/crypto/crypto_gnutls.o
  706. OBJS_p += ../src/crypto/crypto_gnutls.o
  707. CONFIG_INTERNAL_SHA256=y
  708. endif
  709. ifeq ($(CONFIG_TLS), schannel)
  710. OBJS += ../src/crypto/crypto_cryptoapi.o
  711. OBJS_p += ../src/crypto/crypto_cryptoapi.o
  712. CONFIG_INTERNAL_SHA256=y
  713. endif
  714. ifeq ($(CONFIG_TLS), internal)
  715. ifeq ($(CONFIG_CRYPTO), libtomcrypt)
  716. OBJS += ../src/crypto/crypto_libtomcrypt.o
  717. OBJS_p += ../src/crypto/crypto_libtomcrypt.o
  718. CONFIG_INTERNAL_SHA256=y
  719. endif
  720. ifeq ($(CONFIG_CRYPTO), internal)
  721. OBJS += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o
  722. OBJS_p += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o
  723. CFLAGS += -DCONFIG_CRYPTO_INTERNAL
  724. CONFIG_INTERNAL_AES=y
  725. CONFIG_INTERNAL_DES=y
  726. CONFIG_INTERNAL_SHA1=y
  727. CONFIG_INTERNAL_MD4=y
  728. CONFIG_INTERNAL_MD5=y
  729. CONFIG_INTERNAL_SHA256=y
  730. endif
  731. ifeq ($(CONFIG_CRYPTO), cryptoapi)
  732. OBJS += ../src/crypto/crypto_cryptoapi.o
  733. OBJS_p += ../src/crypto/crypto_cryptoapi.o
  734. CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
  735. CONFIG_INTERNAL_SHA256=y
  736. endif
  737. endif
  738. ifeq ($(CONFIG_TLS), none)
  739. OBJS += ../src/crypto/crypto_none.o
  740. OBJS_p += ../src/crypto/crypto_none.o
  741. CONFIG_INTERNAL_SHA256=y
  742. endif
  743. else
  744. CONFIG_INTERNAL_AES=y
  745. CONFIG_INTERNAL_SHA1=y
  746. CONFIG_INTERNAL_MD5=y
  747. endif
  748.  
  749. ifdef CONFIG_INTERNAL_AES
  750. CFLAGS += -DINTERNAL_AES
  751. endif
  752. ifdef CONFIG_INTERNAL_SHA1
  753. CFLAGS += -DINTERNAL_SHA1
  754. endif
  755. ifdef CONFIG_INTERNAL_SHA256
  756. CFLAGS += -DINTERNAL_SHA256
  757. endif
  758. ifdef CONFIG_INTERNAL_MD5
  759. CFLAGS += -DINTERNAL_MD5
  760. endif
  761. ifdef CONFIG_INTERNAL_MD4
  762. CFLAGS += -DINTERNAL_MD4
  763. endif
  764. ifdef CONFIG_INTERNAL_DES
  765. CFLAGS += -DINTERNAL_DES
  766. endif
  767.  
  768. ifdef CONFIG_IEEE80211R
  769. NEED_SHA256=y
  770. endif
  771.  
  772. ifdef NEED_SHA256
  773. OBJS += ../src/crypto/sha256.o
  774. endif
  775.  
  776. ifdef CONFIG_WIRELESS_EXTENSION
  777. CFLAGS += -DCONFIG_WIRELESS_EXTENSION
  778. OBJS_d += ../src/drivers/driver_wext.o
  779. endif
  780.  
  781. ifdef CONFIG_CTRL_IFACE
  782. ifeq ($(CONFIG_CTRL_IFACE), y)
  783. ifdef CONFIG_NATIVE_WINDOWS
  784. CONFIG_CTRL_IFACE=named_pipe
  785. else
  786. CONFIG_CTRL_IFACE=unix
  787. endif
  788. endif
  789. CFLAGS += -DCONFIG_CTRL_IFACE
  790. ifeq ($(CONFIG_CTRL_IFACE), unix)
  791. CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
  792. endif
  793. ifeq ($(CONFIG_CTRL_IFACE), udp)
  794. CFLAGS += -DCONFIG_CTRL_IFACE_UDP
  795. endif
  796. ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
  797. CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
  798. endif
  799. OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
  800. endif
  801.  
  802. ifdef CONFIG_CTRL_IFACE_DBUS
  803. CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
  804. OBJS += ctrl_iface_dbus.o ctrl_iface_dbus_handlers.o dbus_dict_helpers.o
  805. ifndef DBUS_LIBS
  806. DBUS_LIBS := $(shell pkg-config --libs dbus-1)
  807. endif
  808. LIBS += $(DBUS_LIBS)
  809. ifndef DBUS_INCLUDE
  810. DBUS_INCLUDE := $(shell pkg-config --cflags dbus-1)
  811. endif
  812. dbus_version=$(subst ., ,$(shell pkg-config --modversion dbus-1))
  813. DBUS_VERSION_MAJOR=$(word 1,$(dbus_version))
  814. DBUS_VERSION_MINOR=$(word 2,$(dbus_version))
  815. ifeq ($(DBUS_VERSION_MAJOR),)
  816. DBUS_VERSION_MAJOR=0
  817. endif
  818. ifeq ($(DBUS_VERSION_MINOR),)
  819. DBUS_VERSION_MINOR=0
  820. endif
  821. DBUS_INCLUDE += -DDBUS_VERSION_MAJOR=$(DBUS_VERSION_MAJOR)
  822. DBUS_INCLUDE += -DDBUS_VERSION_MINOR=$(DBUS_VERSION_MINOR)
  823. CFLAGS += $(DBUS_INCLUDE)
  824. endif
  825.  
  826. ifdef CONFIG_READLINE
  827. CFLAGS += -DCONFIG_READLINE
  828. LIBS_c += -lncurses -lreadline
  829. endif
  830.  
  831. ifdef CONFIG_NATIVE_WINDOWS
  832. CFLAGS += -DCONFIG_NATIVE_WINDOWS
  833. LIBS += -lws2_32 -lgdi32 -lcrypt32
  834. LIBS_c += -lws2_32
  835. LIBS_p += -lws2_32 -lgdi32
  836. ifeq ($(CONFIG_CRYPTO), cryptoapi)
  837. LIBS_p += -lcrypt32
  838. endif
  839. endif
  840.  
  841. ifdef CONFIG_NO_STDOUT_DEBUG
  842. CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
  843. ifndef CONFIG_CTRL_IFACE
  844. CFLAGS += -DCONFIG_NO_WPA_MSG
  845. endif
  846. endif
  847.  
  848. ifdef CONFIG_IPV6
  849. # for eapol_test only
  850. CFLAGS += -DCONFIG_IPV6
  851. endif
  852.  
  853. ifdef CONFIG_PEERKEY
  854. CFLAGS += -DCONFIG_PEERKEY
  855. endif
  856.  
  857. ifdef CONFIG_IEEE80211W
  858. CFLAGS += -DCONFIG_IEEE80211W
  859. NEED_SHA256=y
  860. endif
  861.  
  862. ifdef CONFIG_IEEE80211R
  863. CFLAGS += -DCONFIG_IEEE80211R
  864. OBJS += ../src/rsn_supp/wpa_ft.o
  865. endif
  866.  
  867. ifndef CONFIG_NO_WPA
  868. OBJS += ../src/rsn_supp/wpa.o
  869. OBJS += ../src/rsn_supp/preauth.o
  870. OBJS += ../src/rsn_supp/pmksa_cache.o
  871. OBJS += ../src/rsn_supp/peerkey.o
  872. OBJS += ../src/rsn_supp/wpa_ie.o
  873. OBJS += ../src/common/wpa_common.o
  874. NEED_AES=y
  875. else
  876. CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2
  877. endif
  878.  
  879. ifdef CONFIG_NO_WPA2
  880. CFLAGS += -DCONFIG_NO_WPA2
  881. endif
  882.  
  883. ifdef CONFIG_NO_WPA_PASSPHRASE
  884. CFLAGS += -DCONFIG_NO_PBKDF2
  885. endif
  886.  
  887. ifdef CONFIG_NO_AES_EXTRAS
  888. CFLAGS += -DCONFIG_NO_AES_WRAP
  889. CFLAGS += -DCONFIG_NO_AES_CTR -DCONFIG_NO_AES_OMAC1
  890. CFLAGS += -DCONFIG_NO_AES_EAX -DCONFIG_NO_AES_CBC
  891. CFLAGS += -DCONFIG_NO_AES_ENCRYPT
  892. CFLAGS += -DCONFIG_NO_AES_ENCRYPT_BLOCK
  893. endif
  894.  
  895. ifdef NEED_AES
  896. OBJS += ../src/crypto/aes_wrap.o ../src/crypto/aes.o
  897. endif
  898.  
  899. ifdef NEED_DH_GROUPS
  900. OBJS += ../src/crypto/dh_groups.o
  901. endif
  902.  
  903. ifndef NEED_FIPS186_2_PRF
  904. CFLAGS += -DCONFIG_NO_FIPS186_2_PRF
  905. endif
  906.  
  907. ifndef NEED_T_PRF
  908. CFLAGS += -DCONFIG_NO_T_PRF
  909. endif
  910.  
  911. ifndef NEED_TLS_PRF
  912. CFLAGS += -DCONFIG_NO_TLS_PRF
  913. endif
  914.  
  915. ifdef NEED_BASE64
  916. OBJS += ../src/utils/base64.o
  917. endif
  918.  
  919. ifdef CONFIG_CLIENT_MLME
  920. OBJS += mlme.o
  921. CFLAGS += -DCONFIG_CLIENT_MLME
  922. endif
  923.  
  924. ifndef CONFIG_MAIN
  925. CONFIG_MAIN=main
  926. endif
  927.  
  928. ifdef CONFIG_DEBUG_FILE
  929. CFLAGS += -DCONFIG_DEBUG_FILE
  930. endif
  931.  
  932. OBJS += ../src/drivers/scan_helpers.o
  933.  
  934. OBJS_wpa_rm := ctrl_iface.o mlme.o ctrl_iface_unix.o
  935. OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o
  936. ifdef CONFIG_AUTHENTICATOR
  937. OBJS_wpa += tests/link_test.o
  938. endif
  939. OBJS_wpa += $(OBJS_l2)
  940. OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
  941. OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o ../src/radius/radius.o ../src/radius/radius_client.o
  942. OBJS_t += ../src/utils/ip_addr.o
  943. OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
  944. OBJS += $(CONFIG_MAIN).o
  945.  
  946. ifdef CONFIG_PRIVSEP
  947. OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o ../src/drivers/scan_helpers.o
  948. OBJS_priv += $(OBJS_l2)
  949. OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
  950. OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
  951. OBJS_priv += ../src/utils/common.o
  952. OBJS_priv += ../src/utils/wpa_debug.o
  953. OBJS_priv += wpa_priv.o
  954. ifdef CONFIG_DRIVER_TEST
  955. OBJS_priv += ../src/crypto/sha1.o
  956. OBJS_priv += ../src/crypto/md5.o
  957. ifeq ($(CONFIG_TLS), openssl)
  958. OBJS_priv += ../src/crypto/crypto_openssl.o
  959. endif
  960. ifeq ($(CONFIG_TLS), gnutls)
  961. OBJS_priv += ../src/crypto/crypto_gnutls.o
  962. endif
  963. ifeq ($(CONFIG_TLS), internal)
  964. ifeq ($(CONFIG_CRYPTO), libtomcrypt)
  965. OBJS_priv += ../src/crypto/crypto_libtomcrypt.o
  966. else
  967. OBJS_priv += ../src/crypto/crypto_internal.o
  968. endif
  969. endif
  970. endif # CONFIG_DRIVER_TEST
  971. OBJS += ../src/l2_packet/l2_packet_privsep.o
  972. OBJS += ../src/drivers/driver_privsep.o
  973. EXTRA_progs += wpa_priv
  974. else
  975. OBJS += $(OBJS_d) ../src/drivers/drivers.o
  976. OBJS += $(OBJS_l2)
  977. endif
  978.  
  979. ifdef CONFIG_NDIS_EVENTS_INTEGRATED
  980. CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
  981. OBJS += ../src/drivers/ndis_events.o
  982. EXTRALIBS += -loleaut32 -lole32 -luuid
  983. ifdef PLATFORMSDKLIB
  984. EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
  985. else
  986. EXTRALIBS += WbemUuid.Lib
  987. endif
  988. endif
  989.  
  990. ifndef LDO
  991. LDO=$(CC)
  992. endif
  993.  
  994. dynamic_eap_methods: $(EAPDYN)
  995.  
  996. wpa_priv: $(OBJS_priv)
  997. $(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
  998.  
  999. wpa_supplicant: .config $(OBJS) $(EXTRA_progs)
  1000. $(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
  1001.  
  1002. eapol_test: .config $(OBJS_t)
  1003. $(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
  1004.  
  1005. preauth_test: .config $(OBJS_t2)
  1006. $(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
  1007.  
  1008. wpa_passphrase: $(OBJS_p)
  1009. $(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
  1010.  
  1011. wpa_cli: $(OBJS_c)
  1012. $(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
  1013.  
  1014. link_test: $(OBJS) $(OBJS_h) tests/link_test.o
  1015. $(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS)
  1016.  
  1017. test_wpa: $(OBJS_wpa) $(OBJS_h)
  1018. $(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS)
  1019.  
  1020. OBJSa=../src/tls/asn1_test.o ../src/tls/asn1.o ../src/tls/x509v3.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \
  1021. ../src/crypto/crypto_$(CONFIG_CRYPTO).o ../src/crypto/md5.o ../src/crypto/sha1.o \
  1022. ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \
  1023. ../src/crypto/aes.o ../src/tls/bignum.o ../src/tls/rsa.o
  1024. asn1_test: $(OBJSa)
  1025. $(LDO) $(LDFLAGS) -o asn1_test $(OBJSa)
  1026.  
  1027. OBJSx=tests/test_x509v3.o ../src/tls/asn1.o ../src/tls/x509v3.o \
  1028. ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \
  1029. ../src/crypto/crypto_$(CONFIG_CRYPTO).o \
  1030. ../src/crypto/md5.o ../src/crypto/sha1.o ../src/crypto/aes.o \
  1031. ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \
  1032. ../src/tls/bignum.o ../src/tls/rsa.o
  1033. test_x509v3: $(OBJSx)
  1034. $(LDO) $(LDFLAGS) -o test_x509v3 $(OBJSx)
  1035.  
  1036. win_if_list: win_if_list.c
  1037. $(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
  1038.  
  1039. eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
  1040. $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
  1041. -Deap_peer_psk_register=eap_peer_method_dynamic_init
  1042.  
  1043. eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
  1044. $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
  1045. -Deap_peer_pax_register=eap_peer_method_dynamic_init
  1046.  
  1047. eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
  1048. $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
  1049. -Deap_peer_sake_register=eap_peer_method_dynamic_init
  1050.  
  1051. eap_ikev2.so: ../src/eap_peer/eap_ikev2.c ../src/eap_peer/ikev2.c ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.c
  1052. $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
  1053. -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
  1054.  
  1055. %.so: %.c
  1056. $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
  1057. -D$(*:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
  1058.  
  1059.  
  1060. wpa_supplicant.exe: wpa_supplicant
  1061. mv -f $< $@
  1062. wpa_cli.exe: wpa_cli
  1063. mv -f $< $@
  1064. wpa_passphrase.exe: wpa_passphrase
  1065. mv -f $< $@
  1066. win_if_list.exe: win_if_list
  1067. mv -f $< $@
  1068. eapol_test.exe: eapol_test
  1069. mv -f $< $@
  1070.  
  1071. WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
  1072.  
  1073. windows-bin: $(WINALL)
  1074. $(STRIP) $(WINALL)
  1075.  
  1076. wpa_gui/Makefile:
  1077. qmake -o wpa_gui/Makefile wpa_gui/wpa_gui.pro
  1078.  
  1079. wpa_gui: wpa_gui/Makefile
  1080. $(MAKE) -C wpa_gui
  1081.  
  1082. wpa_gui-qt4/Makefile:
  1083. qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
  1084.  
  1085. wpa_gui-qt4: wpa_gui-qt4/Makefile
  1086. $(MAKE) -C wpa_gui-qt4
  1087.  
  1088. TEST_MS_FUNCS_OBJS = ../src/crypto/crypto_openssl.o ../src/crypto/sha1.o ../src/crypto/md5.o \
  1089. ../src/utils/os_unix.o ../src/crypto/rc4.o tests/test_ms_funcs.o
  1090. test-ms_funcs: $(TEST_MS_FUNCS_OBJS)
  1091. $(LDO) $(LDFLAGS) -o $@ $(TEST_MS_FUNCS_OBJS) $(LIBS) -lcrypto
  1092. ./test-ms_funcs
  1093. rm test-ms_funcs
  1094.  
  1095. TEST_SHA1_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o tests/test_sha1.o #../src/crypto/crypto_openssl.o
  1096. test-sha1: $(TEST_SHA1_OBJS)
  1097. $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA1_OBJS) $(LIBS)
  1098. ./test-sha1
  1099. rm test-sha1
  1100.  
  1101. TEST_SHA256_OBJS = ../src/crypto/sha256.o ../src/crypto/md5.o tests/test_sha256.o ../src/crypto/crypto_openssl.o
  1102. test-sha256: $(TEST_SHA256_OBJS)
  1103. $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA256_OBJS) $(LIBS)
  1104. ./test-sha256
  1105. rm test-sha256
  1106.  
  1107. TEST_AES_OBJS = ../src/crypto/aes_wrap.o ../src/crypto/aes.o tests/test_aes.o
  1108. test-aes: $(TEST_AES_OBJS)
  1109. $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS)
  1110. ./test-aes
  1111. rm test-aes
  1112.  
  1113. TEST_EAP_SIM_COMMON_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o \
  1114. ../src/crypto/aes_wrap.o ../src/utils/common.o ../src/utils/os_unix.o \
  1115. ../src/utils/wpa_debug.o ../src/crypto/aes.o \
  1116. tests/test_eap_sim_common.o
  1117. test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS)
  1118. $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS)
  1119. ./test-eap_sim_common
  1120. rm test-eap_sim_common
  1121.  
  1122. TEST_MD4_OBJS = ../src/crypto/md4.o tests/test_md4.o #../src/crypto/crypto_openssl.o
  1123. test-md4: $(TEST_MD4_OBJS)
  1124. $(LDO) $(LDFLAGS) -o $@ $(TEST_MD4_OBJS) $(LIBS)
  1125. ./test-md4
  1126. rm test-md4
  1127.  
  1128. TEST_MD5_OBJS = ../src/crypto/md5.o tests/test_md5.o #../src/crypto/crypto_openssl.o
  1129. test-md5: $(TEST_MD5_OBJS)
  1130. $(LDO) $(LDFLAGS) -o $@ $(TEST_MD5_OBJS) $(LIBS)
  1131. ./test-md5
  1132. rm test-md5
  1133.  
  1134. tests: test-ms_funcs test-sha1 test-aes test-eap_sim_common test-md4 test-md5
  1135.  
  1136. clean:
  1137. $(MAKE) -C ../src clean
  1138. rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL)
  1139.  
  1140. %.eps: %.fig
  1141. fig2dev -L eps $*.fig $*.eps
  1142.  
  1143. %.png: %.fig
  1144. fig2dev -L png -m 3 $*.fig | pngtopnm | pnmscale 0.4 | pnmtopng \
  1145. > $*.png
  1146.  
  1147. docs-pics: doc/wpa_supplicant.png doc/wpa_supplicant.eps
  1148.  
  1149. docs: docs-pics
  1150. (cd ..; doxygen wpa_supplicant/doc/doxygen.full; cd wpa_supplicant)
  1151. $(MAKE) -C doc/latex
  1152. cp doc/latex/refman.pdf wpa_supplicant-devel.pdf
  1153.  
  1154. docs-fast: docs-pics
  1155. doxygen doc/doxygen.fast
  1156.  
  1157. clean-docs:
  1158. rm -rf doc/latex doc/html
  1159. rm -f doc/wpa_supplicant.{eps,png} wpa_supplicant-devel.pdf
  1160.  
  1161. wpa_supplicant-sparse: .config $(OBJS)
  1162. @echo Sparse run completed
  1163.  
  1164. run-sparse:
  1165. CC="sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -D__INT_MAX__=2147483647 -D__SHRT_MAX__=32767 -D__LONG_MAX__=2147483647 -D__SCHAR_MAX__=127 -Wbitwise" $(MAKE) wpa_supplicant-sparse
  1166.  
  1167. -include $(OBJS:%.o=%.d)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement