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