Home | History | Annotate | Download | only in wpa_supplicant
      1 #
      2 # Copyright (C) 2008 The Android Open Source Project
      3 #
      4 # This software may be distributed under the terms of the BSD license.
      5 # See README for more details.
      6 #
      7 
      8 LOCAL_PATH := $(call my-dir)
      9 PKG_CONFIG ?= pkg-config
     10 
     11 ifneq ($(BOARD_WPA_SUPPLICANT_DRIVER),)
     12   CONFIG_DRIVER_$(BOARD_WPA_SUPPLICANT_DRIVER) := y
     13 else
     14   CONFIG_DRIVER_TEST := y
     15 endif
     16 
     17 include $(LOCAL_PATH)/android.config
     18 
     19 # To ignore possible wrong network configurations
     20 L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS
     21 
     22 L_CFLAGS += -DVERSION_STR_POSTFIX=\"-$(PLATFORM_VERSION)\"
     23 
     24 # Set Android log name
     25 L_CFLAGS += -DANDROID_LOG_NAME=\"wpa_supplicant\"
     26 
     27 # Disable roaming in wpa_supplicant
     28 ifdef CONFIG_NO_ROAMING
     29 L_CFLAGS += -DCONFIG_NO_ROAMING
     30 endif
     31 
     32 ifeq ($(BOARD_WLAN_DEVICE), bcmdhd)
     33 L_CFLAGS += -DANDROID_P2P
     34 endif
     35 
     36 ifeq ($(BOARD_WLAN_DEVICE), qcwcn)
     37 L_CFLAGS += -DANDROID_QCOM_WCN
     38 L_CFLAGS += -DANDROID_P2P
     39 endif
     40 
     41 # Use Android specific directory for control interface sockets
     42 L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/misc/wifi/sockets\"
     43 L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/system/wpa_supplicant\"
     44 
     45 # To force sizeof(enum) = 4
     46 ifeq ($(TARGET_ARCH),arm)
     47 L_CFLAGS += -mabi=aapcs-linux
     48 endif
     49 
     50 # To allow non-ASCII characters in SSID
     51 L_CFLAGS += -DWPA_UNICODE_SSID
     52 
     53 INCLUDES = $(LOCAL_PATH)
     54 INCLUDES += $(LOCAL_PATH)/src
     55 INCLUDES += $(LOCAL_PATH)/src/common
     56 # INCLUDES += $(LOCAL_PATH)/src/crypto # To force proper includes
     57 INCLUDES += $(LOCAL_PATH)/src/drivers
     58 INCLUDES += $(LOCAL_PATH)/src/eap_common
     59 INCLUDES += $(LOCAL_PATH)/src/eapol_supp
     60 INCLUDES += $(LOCAL_PATH)/src/eap_peer
     61 INCLUDES += $(LOCAL_PATH)/src/eap_server
     62 INCLUDES += $(LOCAL_PATH)/src/hlr_auc_gw
     63 INCLUDES += $(LOCAL_PATH)/src/l2_packet
     64 INCLUDES += $(LOCAL_PATH)/src/radius
     65 INCLUDES += $(LOCAL_PATH)/src/rsn_supp
     66 INCLUDES += $(LOCAL_PATH)/src/tls
     67 INCLUDES += $(LOCAL_PATH)/src/utils
     68 INCLUDES += $(LOCAL_PATH)/src/wps
     69 INCLUDES += external/openssl/include
     70 INCLUDES += system/security/keystore
     71 ifdef CONFIG_DRIVER_NL80211
     72 INCLUDES += external/libnl-headers
     73 endif
     74 
     75 ifdef CONFIG_FIPS
     76 CONFIG_NO_RANDOM_POOL=
     77 CONFIG_OPENSSL_CMAC=y
     78 endif
     79 
     80 OBJS = config.c
     81 OBJS += notify.c
     82 OBJS += bss.c
     83 OBJS += eap_register.c
     84 OBJS += src/utils/common.c
     85 OBJS += src/utils/wpa_debug.c
     86 OBJS += src/utils/wpabuf.c
     87 OBJS_p = wpa_passphrase.c
     88 OBJS_p += src/utils/common.c
     89 OBJS_p += src/utils/wpa_debug.c
     90 OBJS_p += src/utils/wpabuf.c
     91 OBJS_c = wpa_cli.c src/common/wpa_ctrl.c
     92 OBJS_c += src/utils/wpa_debug.c
     93 OBJS_c += src/utils/common.c
     94 OBJS_d =
     95 OBJS_priv =
     96 
     97 ifndef CONFIG_OS
     98 ifdef CONFIG_NATIVE_WINDOWS
     99 CONFIG_OS=win32
    100 else
    101 CONFIG_OS=unix
    102 endif
    103 endif
    104 
    105 ifeq ($(CONFIG_OS), internal)
    106 L_CFLAGS += -DOS_NO_C_LIB_DEFINES
    107 endif
    108 
    109 OBJS += src/utils/os_$(CONFIG_OS).c
    110 OBJS_p += src/utils/os_$(CONFIG_OS).c
    111 OBJS_c += src/utils/os_$(CONFIG_OS).c
    112 
    113 ifdef CONFIG_WPA_TRACE
    114 L_CFLAGS += -DWPA_TRACE
    115 OBJS += src/utils/trace.c
    116 OBJS_p += src/utils/trace.c
    117 OBJS_c += src/utils/trace.c
    118 LDFLAGS += -rdynamic
    119 L_CFLAGS += -funwind-tables
    120 ifdef CONFIG_WPA_TRACE_BFD
    121 L_CFLAGS += -DWPA_TRACE_BFD
    122 LIBS += -lbfd
    123 LIBS_p += -lbfd
    124 LIBS_c += -lbfd
    125 endif
    126 endif
    127 
    128 ifndef CONFIG_ELOOP
    129 CONFIG_ELOOP=eloop
    130 endif
    131 OBJS += src/utils/$(CONFIG_ELOOP).c
    132 OBJS_c += src/utils/$(CONFIG_ELOOP).c
    133 
    134 ifdef CONFIG_ELOOP_POLL
    135 L_CFLAGS += -DCONFIG_ELOOP_POLL
    136 endif
    137 
    138 ifdef CONFIG_EAPOL_TEST
    139 L_CFLAGS += -Werror -DEAPOL_TEST
    140 endif
    141 
    142 ifdef CONFIG_HT_OVERRIDES
    143 L_CFLAGS += -DCONFIG_HT_OVERRIDES
    144 endif
    145 
    146 ifndef CONFIG_BACKEND
    147 CONFIG_BACKEND=file
    148 endif
    149 
    150 ifeq ($(CONFIG_BACKEND), file)
    151 OBJS += config_file.c
    152 ifndef CONFIG_NO_CONFIG_BLOBS
    153 NEED_BASE64=y
    154 endif
    155 L_CFLAGS += -DCONFIG_BACKEND_FILE
    156 endif
    157 
    158 ifeq ($(CONFIG_BACKEND), winreg)
    159 OBJS += config_winreg.c
    160 endif
    161 
    162 ifeq ($(CONFIG_BACKEND), none)
    163 OBJS += config_none.c
    164 endif
    165 
    166 ifdef CONFIG_NO_CONFIG_WRITE
    167 L_CFLAGS += -DCONFIG_NO_CONFIG_WRITE
    168 endif
    169 
    170 ifdef CONFIG_NO_CONFIG_BLOBS
    171 L_CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
    172 endif
    173 
    174 ifdef CONFIG_NO_SCAN_PROCESSING
    175 L_CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
    176 endif
    177 
    178 ifdef CONFIG_IEEE80211W
    179 L_CFLAGS += -DCONFIG_IEEE80211W
    180 NEED_SHA256=y
    181 NEED_AES_OMAC1=y
    182 endif
    183 
    184 ifdef CONFIG_IEEE80211R
    185 L_CFLAGS += -DCONFIG_IEEE80211R
    186 OBJS += src/rsn_supp/wpa_ft.c
    187 NEED_80211_COMMON=y
    188 NEED_SHA256=y
    189 NEED_AES_OMAC1=y
    190 endif
    191 
    192 ifdef CONFIG_IEEE80211V
    193 L_CFLAGS += -DCONFIG_IEEE80211V
    194 OBJS += wnm_sta.c
    195 endif
    196 
    197 ifdef CONFIG_TDLS
    198 L_CFLAGS += -DCONFIG_TDLS
    199 OBJS += src/rsn_supp/tdls.c
    200 NEED_SHA256=y
    201 NEED_AES_OMAC1=y
    202 endif
    203 
    204 ifdef CONFIG_TDLS_TESTING
    205 L_CFLAGS += -DCONFIG_TDLS_TESTING
    206 endif
    207 
    208 ifdef CONFIG_PEERKEY
    209 L_CFLAGS += -DCONFIG_PEERKEY
    210 endif
    211 
    212 ifndef CONFIG_NO_WPA
    213 OBJS += src/rsn_supp/wpa.c
    214 OBJS += src/rsn_supp/preauth.c
    215 OBJS += src/rsn_supp/pmksa_cache.c
    216 OBJS += src/rsn_supp/peerkey.c
    217 OBJS += src/rsn_supp/wpa_ie.c
    218 OBJS += src/common/wpa_common.c
    219 NEED_AES=y
    220 NEED_SHA1=y
    221 NEED_MD5=y
    222 NEED_RC4=y
    223 else
    224 L_CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2
    225 endif
    226 
    227 ifdef CONFIG_IBSS_RSN
    228 NEED_RSN_AUTHENTICATOR=y
    229 L_CFLAGS += -DCONFIG_IBSS_RSN
    230 OBJS += ibss_rsn.c
    231 endif
    232 
    233 ifdef CONFIG_P2P
    234 OBJS += p2p_supplicant.c
    235 OBJS += src/p2p/p2p.c
    236 OBJS += src/p2p/p2p_utils.c
    237 OBJS += src/p2p/p2p_parse.c
    238 OBJS += src/p2p/p2p_build.c
    239 OBJS += src/p2p/p2p_go_neg.c
    240 OBJS += src/p2p/p2p_sd.c
    241 OBJS += src/p2p/p2p_pd.c
    242 OBJS += src/p2p/p2p_invitation.c
    243 OBJS += src/p2p/p2p_dev_disc.c
    244 OBJS += src/p2p/p2p_group.c
    245 OBJS += src/ap/p2p_hostapd.c
    246 L_CFLAGS += -DCONFIG_P2P
    247 NEED_GAS=y
    248 NEED_OFFCHANNEL=y
    249 NEED_80211_COMMON=y
    250 CONFIG_WPS=y
    251 CONFIG_AP=y
    252 ifdef CONFIG_P2P_STRICT
    253 L_CFLAGS += -DCONFIG_P2P_STRICT
    254 endif
    255 endif
    256 
    257 ifdef CONFIG_WIFI_DISPLAY
    258 L_CFLAGS += -DCONFIG_WIFI_DISPLAY
    259 OBJS += wifi_display.c
    260 endif
    261 
    262 ifdef CONFIG_HS20
    263 OBJS += hs20_supplicant.c
    264 L_CFLAGS += -DCONFIG_HS20
    265 CONFIG_INTERWORKING=y
    266 endif
    267 
    268 ifdef CONFIG_INTERWORKING
    269 OBJS += interworking.c
    270 L_CFLAGS += -DCONFIG_INTERWORKING
    271 NEED_GAS=y
    272 endif
    273 
    274 ifdef CONFIG_NO_WPA2
    275 L_CFLAGS += -DCONFIG_NO_WPA2
    276 endif
    277 
    278 include $(LOCAL_PATH)/src/drivers/drivers.mk
    279 
    280 ifdef CONFIG_AP
    281 OBJS_d += $(DRV_BOTH_OBJS)
    282 L_CFLAGS += $(DRV_BOTH_CFLAGS)
    283 LDFLAGS += $(DRV_BOTH_LDFLAGS)
    284 LIBS += $(DRV_BOTH_LIBS)
    285 else
    286 NEED_AP_MLME=
    287 OBJS_d += $(DRV_WPA_OBJS)
    288 L_CFLAGS += $(DRV_WPA_CFLAGS)
    289 LDFLAGS += $(DRV_WPA_LDFLAGS)
    290 LIBS += $(DRV_WPA_LIBS)
    291 endif
    292 
    293 ifndef CONFIG_L2_PACKET
    294 CONFIG_L2_PACKET=linux
    295 endif
    296 
    297 OBJS_l2 += src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).c
    298 
    299 ifeq ($(CONFIG_L2_PACKET), pcap)
    300 ifdef CONFIG_WINPCAP
    301 L_CFLAGS += -DCONFIG_WINPCAP
    302 LIBS += -lwpcap -lpacket
    303 LIBS_w += -lwpcap
    304 else
    305 LIBS += -ldnet -lpcap
    306 endif
    307 endif
    308 
    309 ifeq ($(CONFIG_L2_PACKET), winpcap)
    310 LIBS += -lwpcap -lpacket
    311 LIBS_w += -lwpcap
    312 endif
    313 
    314 ifeq ($(CONFIG_L2_PACKET), freebsd)
    315 LIBS += -lpcap
    316 endif
    317 
    318 ifdef CONFIG_EAP_TLS
    319 # EAP-TLS
    320 ifeq ($(CONFIG_EAP_TLS), dyn)
    321 L_CFLAGS += -DEAP_TLS_DYNAMIC
    322 EAPDYN += src/eap_peer/eap_tls.so
    323 else
    324 L_CFLAGS += -DEAP_TLS
    325 OBJS += src/eap_peer/eap_tls.c
    326 OBJS_h += src/eap_server/eap_server_tls.c
    327 endif
    328 TLS_FUNCS=y
    329 CONFIG_IEEE8021X_EAPOL=y
    330 endif
    331 
    332 ifdef CONFIG_EAP_PEAP
    333 # EAP-PEAP
    334 ifeq ($(CONFIG_EAP_PEAP), dyn)
    335 L_CFLAGS += -DEAP_PEAP_DYNAMIC
    336 EAPDYN += src/eap_peer/eap_peap.so
    337 else
    338 L_CFLAGS += -DEAP_PEAP
    339 OBJS += src/eap_peer/eap_peap.c
    340 OBJS += src/eap_common/eap_peap_common.c
    341 OBJS_h += src/eap_server/eap_server_peap.c
    342 endif
    343 TLS_FUNCS=y
    344 CONFIG_IEEE8021X_EAPOL=y
    345 endif
    346 
    347 ifdef CONFIG_EAP_TTLS
    348 # EAP-TTLS
    349 ifeq ($(CONFIG_EAP_TTLS), dyn)
    350 L_CFLAGS += -DEAP_TTLS_DYNAMIC
    351 EAPDYN += src/eap_peer/eap_ttls.so
    352 else
    353 L_CFLAGS += -DEAP_TTLS
    354 OBJS += src/eap_peer/eap_ttls.c
    355 OBJS_h += src/eap_server/eap_server_ttls.c
    356 endif
    357 MS_FUNCS=y
    358 TLS_FUNCS=y
    359 CHAP=y
    360 CONFIG_IEEE8021X_EAPOL=y
    361 endif
    362 
    363 ifdef CONFIG_EAP_MD5
    364 # EAP-MD5
    365 ifeq ($(CONFIG_EAP_MD5), dyn)
    366 L_CFLAGS += -DEAP_MD5_DYNAMIC
    367 EAPDYN += src/eap_peer/eap_md5.so
    368 else
    369 L_CFLAGS += -DEAP_MD5
    370 OBJS += src/eap_peer/eap_md5.c
    371 OBJS_h += src/eap_server/eap_server_md5.c
    372 endif
    373 CHAP=y
    374 CONFIG_IEEE8021X_EAPOL=y
    375 endif
    376 
    377 # backwards compatibility for old spelling
    378 ifdef CONFIG_MSCHAPV2
    379 ifndef CONFIG_EAP_MSCHAPV2
    380 CONFIG_EAP_MSCHAPV2=y
    381 endif
    382 endif
    383 
    384 ifdef CONFIG_EAP_MSCHAPV2
    385 # EAP-MSCHAPv2
    386 ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
    387 L_CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
    388 EAPDYN += src/eap_peer/eap_mschapv2.so
    389 EAPDYN += src/eap_peer/mschapv2.so
    390 else
    391 L_CFLAGS += -DEAP_MSCHAPv2
    392 OBJS += src/eap_peer/eap_mschapv2.c
    393 OBJS += src/eap_peer/mschapv2.c
    394 OBJS_h += src/eap_server/eap_server_mschapv2.c
    395 endif
    396 MS_FUNCS=y
    397 CONFIG_IEEE8021X_EAPOL=y
    398 endif
    399 
    400 ifdef CONFIG_EAP_GTC
    401 # EAP-GTC
    402 ifeq ($(CONFIG_EAP_GTC), dyn)
    403 L_CFLAGS += -DEAP_GTC_DYNAMIC
    404 EAPDYN += src/eap_peer/eap_gtc.so
    405 else
    406 L_CFLAGS += -DEAP_GTC
    407 OBJS += src/eap_peer/eap_gtc.c
    408 OBJS_h += src/eap_server/eap_server_gtc.c
    409 endif
    410 CONFIG_IEEE8021X_EAPOL=y
    411 endif
    412 
    413 ifdef CONFIG_EAP_OTP
    414 # EAP-OTP
    415 ifeq ($(CONFIG_EAP_OTP), dyn)
    416 L_CFLAGS += -DEAP_OTP_DYNAMIC
    417 EAPDYN += src/eap_peer/eap_otp.so
    418 else
    419 L_CFLAGS += -DEAP_OTP
    420 OBJS += src/eap_peer/eap_otp.c
    421 endif
    422 CONFIG_IEEE8021X_EAPOL=y
    423 endif
    424 
    425 ifdef CONFIG_EAP_SIM
    426 # EAP-SIM
    427 ifeq ($(CONFIG_EAP_SIM), dyn)
    428 L_CFLAGS += -DEAP_SIM_DYNAMIC
    429 EAPDYN += src/eap_peer/eap_sim.so
    430 else
    431 L_CFLAGS += -DEAP_SIM
    432 OBJS += src/eap_peer/eap_sim.c
    433 OBJS_h += src/eap_server/eap_server_sim.c
    434 endif
    435 CONFIG_IEEE8021X_EAPOL=y
    436 CONFIG_EAP_SIM_COMMON=y
    437 NEED_AES_CBC=y
    438 endif
    439 
    440 ifdef CONFIG_EAP_LEAP
    441 # EAP-LEAP
    442 ifeq ($(CONFIG_EAP_LEAP), dyn)
    443 L_CFLAGS += -DEAP_LEAP_DYNAMIC
    444 EAPDYN += src/eap_peer/eap_leap.so
    445 else
    446 L_CFLAGS += -DEAP_LEAP
    447 OBJS += src/eap_peer/eap_leap.c
    448 endif
    449 MS_FUNCS=y
    450 CONFIG_IEEE8021X_EAPOL=y
    451 endif
    452 
    453 ifdef CONFIG_EAP_PSK
    454 # EAP-PSK
    455 ifeq ($(CONFIG_EAP_PSK), dyn)
    456 L_CFLAGS += -DEAP_PSK_DYNAMIC
    457 EAPDYN += src/eap_peer/eap_psk.so
    458 else
    459 L_CFLAGS += -DEAP_PSK
    460 OBJS += src/eap_peer/eap_psk.c src/eap_common/eap_psk_common.c
    461 OBJS_h += src/eap_server/eap_server_psk.c
    462 endif
    463 CONFIG_IEEE8021X_EAPOL=y
    464 NEED_AES=y
    465 NEED_AES_OMAC1=y
    466 NEED_AES_ENCBLOCK=y
    467 NEED_AES_EAX=y
    468 endif
    469 
    470 ifdef CONFIG_EAP_AKA
    471 # EAP-AKA
    472 ifeq ($(CONFIG_EAP_AKA), dyn)
    473 L_CFLAGS += -DEAP_AKA_DYNAMIC
    474 EAPDYN += src/eap_peer/eap_aka.so
    475 else
    476 L_CFLAGS += -DEAP_AKA
    477 OBJS += src/eap_peer/eap_aka.c
    478 OBJS_h += src/eap_server/eap_server_aka.c
    479 endif
    480 CONFIG_IEEE8021X_EAPOL=y
    481 CONFIG_EAP_SIM_COMMON=y
    482 NEED_AES_CBC=y
    483 endif
    484 
    485 ifdef CONFIG_EAP_AKA_PRIME
    486 # EAP-AKA'
    487 ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
    488 L_CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
    489 else
    490 L_CFLAGS += -DEAP_AKA_PRIME
    491 endif
    492 NEED_SHA256=y
    493 endif
    494 
    495 ifdef CONFIG_EAP_SIM_COMMON
    496 OBJS += src/eap_common/eap_sim_common.c
    497 OBJS_h += src/eap_server/eap_sim_db.c
    498 NEED_AES=y
    499 NEED_FIPS186_2_PRF=y
    500 endif
    501 
    502 ifdef CONFIG_EAP_FAST
    503 # EAP-FAST
    504 ifeq ($(CONFIG_EAP_FAST), dyn)
    505 L_CFLAGS += -DEAP_FAST_DYNAMIC
    506 EAPDYN += src/eap_peer/eap_fast.so
    507 EAPDYN += src/eap_common/eap_fast_common.c
    508 else
    509 L_CFLAGS += -DEAP_FAST
    510 OBJS += src/eap_peer/eap_fast.c src/eap_peer/eap_fast_pac.c
    511 OBJS += src/eap_common/eap_fast_common.c
    512 OBJS_h += src/eap_server/eap_server_fast.c
    513 endif
    514 TLS_FUNCS=y
    515 CONFIG_IEEE8021X_EAPOL=y
    516 NEED_T_PRF=y
    517 endif
    518 
    519 ifdef CONFIG_EAP_PAX
    520 # EAP-PAX
    521 ifeq ($(CONFIG_EAP_PAX), dyn)
    522 L_CFLAGS += -DEAP_PAX_DYNAMIC
    523 EAPDYN += src/eap_peer/eap_pax.so
    524 else
    525 L_CFLAGS += -DEAP_PAX
    526 OBJS += src/eap_peer/eap_pax.c src/eap_common/eap_pax_common.c
    527 OBJS_h += src/eap_server/eap_server_pax.c
    528 endif
    529 CONFIG_IEEE8021X_EAPOL=y
    530 endif
    531 
    532 ifdef CONFIG_EAP_SAKE
    533 # EAP-SAKE
    534 ifeq ($(CONFIG_EAP_SAKE), dyn)
    535 L_CFLAGS += -DEAP_SAKE_DYNAMIC
    536 EAPDYN += src/eap_peer/eap_sake.so
    537 else
    538 L_CFLAGS += -DEAP_SAKE
    539 OBJS += src/eap_peer/eap_sake.c src/eap_common/eap_sake_common.c
    540 OBJS_h += src/eap_server/eap_server_sake.c
    541 endif
    542 CONFIG_IEEE8021X_EAPOL=y
    543 endif
    544 
    545 ifdef CONFIG_EAP_GPSK
    546 # EAP-GPSK
    547 ifeq ($(CONFIG_EAP_GPSK), dyn)
    548 L_CFLAGS += -DEAP_GPSK_DYNAMIC
    549 EAPDYN += src/eap_peer/eap_gpsk.so
    550 else
    551 L_CFLAGS += -DEAP_GPSK
    552 OBJS += src/eap_peer/eap_gpsk.c src/eap_common/eap_gpsk_common.c
    553 OBJS_h += src/eap_server/eap_server_gpsk.c
    554 endif
    555 CONFIG_IEEE8021X_EAPOL=y
    556 ifdef CONFIG_EAP_GPSK_SHA256
    557 L_CFLAGS += -DEAP_GPSK_SHA256
    558 endif
    559 NEED_SHA256=y
    560 NEED_AES_OMAC1=y
    561 endif
    562 
    563 ifdef CONFIG_EAP_PWD
    564 L_CFLAGS += -DEAP_PWD
    565 OBJS += src/eap_peer/eap_pwd.c src/eap_common/eap_pwd_common.c
    566 OBJS_h += src/eap_server/eap_pwd.c
    567 CONFIG_IEEE8021X_EAPOL=y
    568 NEED_SHA256=y
    569 endif
    570 
    571 ifdef CONFIG_WPS
    572 ifdef CONFIG_WPS2
    573 L_CFLAGS += -DCONFIG_WPS2
    574 endif
    575 
    576 # EAP-WSC
    577 L_CFLAGS += -DCONFIG_WPS -DEAP_WSC
    578 OBJS += wps_supplicant.c
    579 OBJS += src/utils/uuid.c
    580 OBJS += src/eap_peer/eap_wsc.c src/eap_common/eap_wsc_common.c
    581 OBJS += src/wps/wps.c
    582 OBJS += src/wps/wps_common.c
    583 OBJS += src/wps/wps_attr_parse.c
    584 OBJS += src/wps/wps_attr_build.c
    585 OBJS += src/wps/wps_attr_process.c
    586 OBJS += src/wps/wps_dev_attr.c
    587 OBJS += src/wps/wps_enrollee.c
    588 OBJS += src/wps/wps_registrar.c
    589 OBJS_h += src/eap_server/eap_server_wsc.c
    590 CONFIG_IEEE8021X_EAPOL=y
    591 NEED_DH_GROUPS=y
    592 NEED_SHA256=y
    593 NEED_BASE64=y
    594 NEED_80211_COMMON=y
    595 NEED_AES_CBC=y
    596 NEED_MODEXP=y
    597 
    598 ifdef CONFIG_WPS_UFD
    599 L_CFLAGS += -DCONFIG_WPS_UFD
    600 OBJS += src/wps/wps_ufd.c
    601 NEED_WPS_OOB=y
    602 endif
    603 
    604 ifdef CONFIG_WPS_NFC
    605 L_CFLAGS += -DCONFIG_WPS_NFC
    606 OBJS += src/wps/ndef.c
    607 OBJS += src/wps/wps_nfc.c
    608 NEED_WPS_OOB=y
    609 ifdef CONFIG_WPS_NFC_PN531
    610 PN531_PATH ?= /usr/local/src/nfc
    611 L_CFLAGS += -DCONFIG_WPS_NFC_PN531
    612 L_CFLAGS += -I${PN531_PATH}/inc
    613 OBJS += src/wps/wps_nfc_pn531.c
    614 LIBS += ${PN531_PATH}/lib/wpsnfc.dll
    615 LIBS += ${PN531_PATH}/lib/libnfc_mapping_pn53x.dll
    616 endif
    617 endif
    618 
    619 ifdef NEED_WPS_OOB
    620 L_CFLAGS += -DCONFIG_WPS_OOB
    621 endif
    622 
    623 ifdef CONFIG_WPS_ER
    624 CONFIG_WPS_UPNP=y
    625 L_CFLAGS += -DCONFIG_WPS_ER
    626 OBJS += src/wps/wps_er.c
    627 OBJS += src/wps/wps_er_ssdp.c
    628 endif
    629 
    630 ifdef CONFIG_WPS_UPNP
    631 L_CFLAGS += -DCONFIG_WPS_UPNP
    632 OBJS += src/wps/wps_upnp.c
    633 OBJS += src/wps/wps_upnp_ssdp.c
    634 OBJS += src/wps/wps_upnp_web.c
    635 OBJS += src/wps/wps_upnp_event.c
    636 OBJS += src/wps/wps_upnp_ap.c
    637 OBJS += src/wps/upnp_xml.c
    638 OBJS += src/wps/httpread.c
    639 OBJS += src/wps/http_client.c
    640 OBJS += src/wps/http_server.c
    641 endif
    642 
    643 ifdef CONFIG_WPS_STRICT
    644 L_CFLAGS += -DCONFIG_WPS_STRICT
    645 OBJS += src/wps/wps_validate.c
    646 endif
    647 
    648 ifdef CONFIG_WPS_TESTING
    649 L_CFLAGS += -DCONFIG_WPS_TESTING
    650 endif
    651 
    652 ifdef CONFIG_WPS_REG_DISABLE_OPEN
    653 L_CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
    654 endif
    655 
    656 endif
    657 
    658 ifdef CONFIG_EAP_IKEV2
    659 # EAP-IKEv2
    660 ifeq ($(CONFIG_EAP_IKEV2), dyn)
    661 L_CFLAGS += -DEAP_IKEV2_DYNAMIC
    662 EAPDYN += src/eap_peer/eap_ikev2.so src/eap_peer/ikev2.c
    663 EAPDYN += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
    664 else
    665 L_CFLAGS += -DEAP_IKEV2
    666 OBJS += src/eap_peer/eap_ikev2.c src/eap_peer/ikev2.c
    667 OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
    668 OBJS_h += src/eap_server/eap_server_ikev2.c
    669 OBJS_h += src/eap_server/ikev2.c
    670 endif
    671 CONFIG_IEEE8021X_EAPOL=y
    672 NEED_DH_GROUPS=y
    673 NEED_DH_GROUPS_ALL=y
    674 NEED_MODEXP=y
    675 NEED_CIPHER=y
    676 endif
    677 
    678 ifdef CONFIG_EAP_VENDOR_TEST
    679 ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
    680 L_CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
    681 EAPDYN += src/eap_peer/eap_vendor_test.so
    682 else
    683 L_CFLAGS += -DEAP_VENDOR_TEST
    684 OBJS += src/eap_peer/eap_vendor_test.c
    685 OBJS_h += src/eap_server/eap_server_vendor_test.c
    686 endif
    687 CONFIG_IEEE8021X_EAPOL=y
    688 endif
    689 
    690 ifdef CONFIG_EAP_TNC
    691 # EAP-TNC
    692 L_CFLAGS += -DEAP_TNC
    693 OBJS += src/eap_peer/eap_tnc.c
    694 OBJS += src/eap_peer/tncc.c
    695 OBJS_h += src/eap_server/eap_server_tnc.c
    696 OBJS_h += src/eap_server/tncs.c
    697 NEED_BASE64=y
    698 ifndef CONFIG_NATIVE_WINDOWS
    699 ifndef CONFIG_DRIVER_BSD
    700 LIBS += -ldl
    701 endif
    702 endif
    703 endif
    704 
    705 ifdef CONFIG_IEEE8021X_EAPOL
    706 # IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
    707 L_CFLAGS += -DIEEE8021X_EAPOL
    708 OBJS += src/eapol_supp/eapol_supp_sm.c
    709 OBJS += src/eap_peer/eap.c src/eap_peer/eap_methods.c
    710 NEED_EAP_COMMON=y
    711 ifdef CONFIG_DYNAMIC_EAP_METHODS
    712 L_CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
    713 LIBS += -ldl -rdynamic
    714 endif
    715 endif
    716 
    717 ifdef CONFIG_AP
    718 NEED_80211_COMMON=y
    719 NEED_EAP_COMMON=y
    720 NEED_RSN_AUTHENTICATOR=y
    721 L_CFLAGS += -DCONFIG_AP
    722 OBJS += ap.c
    723 L_CFLAGS += -DCONFIG_NO_RADIUS
    724 L_CFLAGS += -DCONFIG_NO_ACCOUNTING
    725 L_CFLAGS += -DCONFIG_NO_VLAN
    726 OBJS += src/ap/hostapd.c
    727 OBJS += src/ap/wpa_auth_glue.c
    728 OBJS += src/ap/utils.c
    729 OBJS += src/ap/authsrv.c
    730 OBJS += src/ap/ap_config.c
    731 OBJS += src/utils/ip_addr.c
    732 OBJS += src/ap/sta_info.c
    733 OBJS += src/ap/tkip_countermeasures.c
    734 OBJS += src/ap/ap_mlme.c
    735 OBJS += src/ap/ieee802_1x.c
    736 OBJS += src/eapol_auth/eapol_auth_sm.c
    737 OBJS += src/ap/ieee802_11_auth.c
    738 OBJS += src/ap/ieee802_11_shared.c
    739 OBJS += src/ap/drv_callbacks.c
    740 OBJS += src/ap/ap_drv_ops.c
    741 OBJS += src/ap/beacon.c
    742 ifdef CONFIG_IEEE80211N
    743 OBJS += src/ap/ieee802_11_ht.c
    744 endif
    745 ifdef CONFIG_CTRL_IFACE
    746 OBJS += src/ap/ctrl_iface_ap.c
    747 endif
    748 
    749 L_CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
    750 OBJS += src/eap_server/eap_server.c
    751 OBJS += src/eap_server/eap_server_identity.c
    752 OBJS += src/eap_server/eap_server_methods.c
    753 
    754 ifdef CONFIG_IEEE80211N
    755 L_CFLAGS += -DCONFIG_IEEE80211N
    756 endif
    757 
    758 ifdef CONFIG_WNM
    759 L_CFLAGS += -DCONFIG_WNM
    760 endif
    761 
    762 ifdef NEED_AP_MLME
    763 OBJS += src/ap/wmm.c
    764 OBJS += src/ap/ap_list.c
    765 OBJS += src/ap/ieee802_11.c
    766 OBJS += src/ap/hw_features.c
    767 L_CFLAGS += -DNEED_AP_MLME
    768 endif
    769 ifdef CONFIG_WPS
    770 L_CFLAGS += -DEAP_SERVER_WSC
    771 OBJS += src/ap/wps_hostapd.c
    772 OBJS += src/eap_server/eap_server_wsc.c
    773 endif
    774 ifdef CONFIG_INTERWORKING
    775 OBJS += src/ap/gas_serv.c
    776 endif
    777 ifdef CONFIG_HS20
    778 OBJS += src/ap/hs20.c
    779 endif
    780 endif
    781 
    782 ifdef NEED_RSN_AUTHENTICATOR
    783 L_CFLAGS += -DCONFIG_NO_RADIUS
    784 NEED_AES_WRAP=y
    785 OBJS += src/ap/wpa_auth.c
    786 OBJS += src/ap/wpa_auth_ie.c
    787 OBJS += src/ap/pmksa_cache_auth.c
    788 ifdef CONFIG_IEEE80211R
    789 OBJS += src/ap/wpa_auth_ft.c
    790 endif
    791 ifdef CONFIG_PEERKEY
    792 OBJS += src/ap/peerkey_auth.c
    793 endif
    794 endif
    795 
    796 ifdef CONFIG_EAP_SERVER
    797 L_CFLAGS += -DEAP_SERVER
    798 OBJS_h += src/eap_server/eap_server.c
    799 OBJS_h += src/eap_server/eap_server_identity.c
    800 OBJS_h += src/eap_server/eap_server_methods.c
    801 endif
    802 
    803 ifdef CONFIG_RADIUS_CLIENT
    804 OBJS_h += src/utils/ip_addr.c
    805 OBJS_h += src/radius/radius.c
    806 OBJS_h += src/radius/radius_client.c
    807 endif
    808 
    809 ifdef CONFIG_AUTHENTICATOR
    810 OBJS_h += src/eapol_auth/eapol_auth_sm.c
    811 OBJS_h += src/ap/ieee802_1x.c
    812 endif
    813 
    814 ifdef CONFIG_WPA_AUTHENTICATOR
    815 OBJS_h += src/ap/wpa_auth.c
    816 OBJS_h += src/ap/wpa_auth_ie.c
    817 OBJS_h += src/ap/pmksa_cache_auth.c
    818 ifdef CONFIG_IEEE80211R
    819 OBJS_h += src/ap/wpa_auth_ft.c
    820 endif
    821 ifdef CONFIG_PEERKEY
    822 OBJS_h += src/ap/peerkey_auth.c
    823 endif
    824 endif
    825 
    826 ifdef CONFIG_PCSC
    827 # PC/SC interface for smartcards (USIM, GSM SIM)
    828 L_CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
    829 OBJS += src/utils/pcsc_funcs.c
    830 # -lpthread may not be needed depending on how pcsc-lite was configured
    831 ifdef CONFIG_NATIVE_WINDOWS
    832 #Once MinGW gets support for WinScard, -lwinscard could be used instead of the
    833 #dynamic symbol loading that is now used in pcsc_funcs.c
    834 #LIBS += -lwinscard
    835 else
    836 LIBS += -lpcsclite -lpthread
    837 endif
    838 endif
    839 
    840 ifdef CONFIG_SIM_SIMULATOR
    841 L_CFLAGS += -DCONFIG_SIM_SIMULATOR
    842 NEED_MILENAGE=y
    843 endif
    844 
    845 ifdef CONFIG_USIM_SIMULATOR
    846 L_CFLAGS += -DCONFIG_USIM_SIMULATOR
    847 NEED_MILENAGE=y
    848 endif
    849 
    850 ifdef NEED_MILENAGE
    851 OBJS += src/crypto/milenage.c
    852 NEED_AES_ENCBLOCK=y
    853 endif
    854 
    855 ifdef CONFIG_PKCS12
    856 L_CFLAGS += -DPKCS12_FUNCS
    857 endif
    858 
    859 ifdef CONFIG_SMARTCARD
    860 L_CFLAGS += -DCONFIG_SMARTCARD
    861 endif
    862 
    863 ifdef MS_FUNCS
    864 OBJS += src/crypto/ms_funcs.c
    865 NEED_DES=y
    866 NEED_MD4=y
    867 endif
    868 
    869 ifdef CHAP
    870 OBJS += src/eap_common/chap.c
    871 endif
    872 
    873 ifdef TLS_FUNCS
    874 NEED_DES=y
    875 # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
    876 OBJS += src/eap_peer/eap_tls_common.c
    877 OBJS_h += src/eap_server/eap_server_tls_common.c
    878 ifndef CONFIG_FIPS
    879 NEED_TLS_PRF=y
    880 endif
    881 endif
    882 
    883 ifndef CONFIG_TLS
    884 CONFIG_TLS=openssl
    885 endif
    886 
    887 ifdef CONFIG_TLSV11
    888 L_CFLAGS += -DCONFIG_TLSV11
    889 endif
    890 
    891 ifdef CONFIG_TLSV12
    892 L_CFLAGS += -DCONFIG_TLSV12
    893 NEED_SHA256=y
    894 endif
    895 
    896 ifeq ($(CONFIG_TLS), openssl)
    897 ifdef TLS_FUNCS
    898 L_CFLAGS += -DEAP_TLS_OPENSSL
    899 OBJS += src/crypto/tls_openssl.c
    900 LIBS += -lssl
    901 endif
    902 OBJS += src/crypto/crypto_openssl.c
    903 OBJS_p += src/crypto/crypto_openssl.c
    904 ifdef NEED_FIPS186_2_PRF
    905 OBJS += src/crypto/fips_prf_openssl.c
    906 endif
    907 LIBS += -lcrypto
    908 LIBS_p += -lcrypto
    909 endif
    910 
    911 ifeq ($(CONFIG_TLS), gnutls)
    912 ifdef TLS_FUNCS
    913 OBJS += src/crypto/tls_gnutls.c
    914 LIBS += -lgnutls -lgpg-error
    915 endif
    916 OBJS += src/crypto/crypto_gnutls.c
    917 OBJS_p += src/crypto/crypto_gnutls.c
    918 ifdef NEED_FIPS186_2_PRF
    919 OBJS += src/crypto/fips_prf_gnutls.c
    920 endif
    921 LIBS += -lgcrypt
    922 LIBS_p += -lgcrypt
    923 CONFIG_INTERNAL_SHA256=y
    924 CONFIG_INTERNAL_RC4=y
    925 CONFIG_INTERNAL_DH_GROUP5=y
    926 endif
    927 
    928 ifeq ($(CONFIG_TLS), schannel)
    929 ifdef TLS_FUNCS
    930 OBJS += src/crypto/tls_schannel.c
    931 endif
    932 OBJS += src/crypto/crypto_cryptoapi.c
    933 OBJS_p += src/crypto/crypto_cryptoapi.c
    934 ifdef NEED_FIPS186_2_PRF
    935 OBJS += src/crypto/fips_prf_cryptoapi.c
    936 endif
    937 CONFIG_INTERNAL_SHA256=y
    938 CONFIG_INTERNAL_RC4=y
    939 CONFIG_INTERNAL_DH_GROUP5=y
    940 endif
    941 
    942 ifeq ($(CONFIG_TLS), nss)
    943 ifdef TLS_FUNCS
    944 OBJS += src/crypto/tls_nss.c
    945 LIBS += -lssl3
    946 endif
    947 OBJS += src/crypto/crypto_nss.c
    948 OBJS_p += src/crypto/crypto_nss.c
    949 ifdef NEED_FIPS186_2_PRF
    950 OBJS += src/crypto/fips_prf_nss.c
    951 endif
    952 LIBS += -lnss3
    953 LIBS_p += -lnss3
    954 CONFIG_INTERNAL_MD4=y
    955 CONFIG_INTERNAL_DH_GROUP5=y
    956 endif
    957 
    958 ifeq ($(CONFIG_TLS), internal)
    959 ifndef CONFIG_CRYPTO
    960 CONFIG_CRYPTO=internal
    961 endif
    962 ifdef TLS_FUNCS
    963 OBJS += src/crypto/crypto_internal-rsa.c
    964 OBJS += src/crypto/tls_internal.c
    965 OBJS += src/tls/tlsv1_common.c
    966 OBJS += src/tls/tlsv1_record.c
    967 OBJS += src/tls/tlsv1_cred.c
    968 OBJS += src/tls/tlsv1_client.c
    969 OBJS += src/tls/tlsv1_client_write.c
    970 OBJS += src/tls/tlsv1_client_read.c
    971 OBJS += src/tls/asn1.c
    972 OBJS += src/tls/rsa.c
    973 OBJS += src/tls/x509v3.c
    974 OBJS += src/tls/pkcs1.c
    975 OBJS += src/tls/pkcs5.c
    976 OBJS += src/tls/pkcs8.c
    977 NEED_SHA256=y
    978 NEED_BASE64=y
    979 NEED_TLS_PRF=y
    980 ifdef CONFIG_TLSV12
    981 NEED_TLS_PRF_SHA256=y
    982 endif
    983 NEED_MODEXP=y
    984 NEED_CIPHER=y
    985 L_CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
    986 endif
    987 ifdef NEED_CIPHER
    988 NEED_DES=y
    989 OBJS += src/crypto/crypto_internal-cipher.c
    990 endif
    991 ifdef NEED_MODEXP
    992 OBJS += src/crypto/crypto_internal-modexp.c
    993 OBJS += src/tls/bignum.c
    994 endif
    995 ifeq ($(CONFIG_CRYPTO), libtomcrypt)
    996 OBJS += src/crypto/crypto_libtomcrypt.c
    997 OBJS_p += src/crypto/crypto_libtomcrypt.c
    998 LIBS += -ltomcrypt -ltfm
    999 LIBS_p += -ltomcrypt -ltfm
   1000 CONFIG_INTERNAL_SHA256=y
   1001 CONFIG_INTERNAL_RC4=y
   1002 CONFIG_INTERNAL_DH_GROUP5=y
   1003 endif
   1004 ifeq ($(CONFIG_CRYPTO), internal)
   1005 OBJS += src/crypto/crypto_internal.c
   1006 OBJS_p += src/crypto/crypto_internal.c
   1007 NEED_AES_ENC=y
   1008 L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL
   1009 ifdef CONFIG_INTERNAL_LIBTOMMATH
   1010 L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
   1011 ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
   1012 L_CFLAGS += -DLTM_FAST
   1013 endif
   1014 else
   1015 LIBS += -ltommath
   1016 LIBS_p += -ltommath
   1017 endif
   1018 CONFIG_INTERNAL_AES=y
   1019 CONFIG_INTERNAL_DES=y
   1020 CONFIG_INTERNAL_SHA1=y
   1021 CONFIG_INTERNAL_MD4=y
   1022 CONFIG_INTERNAL_MD5=y
   1023 CONFIG_INTERNAL_SHA256=y
   1024 CONFIG_INTERNAL_RC4=y
   1025 CONFIG_INTERNAL_DH_GROUP5=y
   1026 endif
   1027 ifeq ($(CONFIG_CRYPTO), cryptoapi)
   1028 OBJS += src/crypto/crypto_cryptoapi.c
   1029 OBJS_p += src/crypto/crypto_cryptoapi.c
   1030 L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
   1031 CONFIG_INTERNAL_SHA256=y
   1032 CONFIG_INTERNAL_RC4=y
   1033 endif
   1034 endif
   1035 
   1036 ifeq ($(CONFIG_TLS), none)
   1037 ifdef TLS_FUNCS
   1038 OBJS += src/crypto/tls_none.c
   1039 L_CFLAGS += -DEAP_TLS_NONE
   1040 CONFIG_INTERNAL_AES=y
   1041 CONFIG_INTERNAL_SHA1=y
   1042 CONFIG_INTERNAL_MD5=y
   1043 endif
   1044 OBJS += src/crypto/crypto_none.c
   1045 OBJS_p += src/crypto/crypto_none.c
   1046 CONFIG_INTERNAL_SHA256=y
   1047 CONFIG_INTERNAL_RC4=y
   1048 endif
   1049 
   1050 ifdef TLS_FUNCS
   1051 ifdef CONFIG_SMARTCARD
   1052 ifndef CONFIG_NATIVE_WINDOWS
   1053 ifneq ($(CONFIG_L2_PACKET), freebsd)
   1054 LIBS += -ldl
   1055 endif
   1056 endif
   1057 endif
   1058 endif
   1059 
   1060 ifndef TLS_FUNCS
   1061 OBJS += src/crypto/tls_none.c
   1062 ifeq ($(CONFIG_TLS), internal)
   1063 CONFIG_INTERNAL_AES=y
   1064 CONFIG_INTERNAL_SHA1=y
   1065 CONFIG_INTERNAL_MD5=y
   1066 CONFIG_INTERNAL_RC4=y
   1067 endif
   1068 endif
   1069 
   1070 AESOBJS = # none so far (see below)
   1071 ifdef CONFIG_INTERNAL_AES
   1072 AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-dec.c
   1073 endif
   1074 
   1075 AESOBJS += src/crypto/aes-unwrap.c
   1076 ifdef NEED_AES_EAX
   1077 AESOBJS += src/crypto/aes-eax.c
   1078 NEED_AES_CTR=y
   1079 endif
   1080 ifdef NEED_AES_CTR
   1081 AESOBJS += src/crypto/aes-ctr.c
   1082 endif
   1083 ifdef NEED_AES_ENCBLOCK
   1084 AESOBJS += src/crypto/aes-encblock.c
   1085 endif
   1086 ifdef NEED_AES_OMAC1
   1087 NEED_AES_ENC=y
   1088 ifdef CONFIG_OPENSSL_CMAC
   1089 CFLAGS += -DCONFIG_OPENSSL_CMAC
   1090 else
   1091 AESOBJS += src/crypto/aes-omac1.c
   1092 endif
   1093 endif
   1094 ifdef NEED_AES_WRAP
   1095 NEED_AES_ENC=y
   1096 AESOBJS += src/crypto/aes-wrap.c
   1097 endif
   1098 ifdef NEED_AES_CBC
   1099 NEED_AES_ENC=y
   1100 AESOBJS += src/crypto/aes-cbc.c
   1101 endif
   1102 ifdef NEED_AES_ENC
   1103 ifdef CONFIG_INTERNAL_AES
   1104 AESOBJS += src/crypto/aes-internal-enc.c
   1105 endif
   1106 endif
   1107 ifdef NEED_AES
   1108 OBJS += $(AESOBJS)
   1109 endif
   1110 
   1111 SHA1OBJS =
   1112 ifdef NEED_SHA1
   1113 ifneq ($(CONFIG_TLS), openssl)
   1114 SHA1OBJS += src/crypto/sha1.c
   1115 endif
   1116 SHA1OBJS += src/crypto/sha1-prf.c
   1117 ifdef CONFIG_INTERNAL_SHA1
   1118 SHA1OBJS += src/crypto/sha1-internal.c
   1119 ifdef NEED_FIPS186_2_PRF
   1120 SHA1OBJS += src/crypto/fips_prf_internal.c
   1121 endif
   1122 endif
   1123 ifdef CONFIG_NO_WPA_PASSPHRASE
   1124 L_CFLAGS += -DCONFIG_NO_PBKDF2
   1125 else
   1126 ifneq ($(CONFIG_TLS), openssl)
   1127 SHA1OBJS += src/crypto/sha1-pbkdf2.c
   1128 endif
   1129 endif
   1130 ifdef NEED_T_PRF
   1131 SHA1OBJS += src/crypto/sha1-tprf.c
   1132 endif
   1133 ifdef NEED_TLS_PRF
   1134 SHA1OBJS += src/crypto/sha1-tlsprf.c
   1135 endif
   1136 endif
   1137 
   1138 MD5OBJS =
   1139 ifndef CONFIG_FIPS
   1140 MD5OBJS += src/crypto/md5.c
   1141 endif
   1142 ifdef NEED_MD5
   1143 ifdef CONFIG_INTERNAL_MD5
   1144 MD5OBJS += src/crypto/md5-internal.c
   1145 endif
   1146 OBJS += $(MD5OBJS)
   1147 OBJS_p += $(MD5OBJS)
   1148 endif
   1149 
   1150 ifdef NEED_MD4
   1151 ifdef CONFIG_INTERNAL_MD4
   1152 OBJS += src/crypto/md4-internal.c
   1153 endif
   1154 endif
   1155 
   1156 DESOBJS = # none needed when not internal
   1157 ifdef NEED_DES
   1158 ifdef CONFIG_INTERNAL_DES
   1159 DESOBJS += src/crypto/des-internal.c
   1160 endif
   1161 endif
   1162 
   1163 ifdef NEED_RC4
   1164 ifdef CONFIG_INTERNAL_RC4
   1165 OBJS += src/crypto/rc4.c
   1166 endif
   1167 endif
   1168 
   1169 SHA256OBJS = # none by default
   1170 ifdef NEED_SHA256
   1171 L_CFLAGS += -DCONFIG_SHA256
   1172 ifneq ($(CONFIG_TLS), openssl)
   1173 SHA256OBJS += src/crypto/sha256.c
   1174 endif
   1175 SHA256OBJS += src/crypto/sha256-prf.c
   1176 ifdef CONFIG_INTERNAL_SHA256
   1177 SHA256OBJS += src/crypto/sha256-internal.c
   1178 endif
   1179 ifdef NEED_TLS_PRF_SHA256
   1180 SHA256OBJS += src/crypto/sha256-tlsprf.c
   1181 endif
   1182 OBJS += $(SHA256OBJS)
   1183 endif
   1184 
   1185 ifdef NEED_DH_GROUPS
   1186 OBJS += src/crypto/dh_groups.c
   1187 endif
   1188 ifdef NEED_DH_GROUPS_ALL
   1189 L_CFLAGS += -DALL_DH_GROUPS
   1190 endif
   1191 ifdef CONFIG_INTERNAL_DH_GROUP5
   1192 ifdef NEED_DH_GROUPS
   1193 OBJS += src/crypto/dh_group5.c
   1194 endif
   1195 endif
   1196 
   1197 ifdef CONFIG_NO_RANDOM_POOL
   1198 L_CFLAGS += -DCONFIG_NO_RANDOM_POOL
   1199 else
   1200 OBJS += src/crypto/random.c
   1201 endif
   1202 
   1203 ifdef CONFIG_CTRL_IFACE
   1204 ifeq ($(CONFIG_CTRL_IFACE), y)
   1205 ifdef CONFIG_NATIVE_WINDOWS
   1206 CONFIG_CTRL_IFACE=named_pipe
   1207 else
   1208 CONFIG_CTRL_IFACE=unix
   1209 endif
   1210 endif
   1211 L_CFLAGS += -DCONFIG_CTRL_IFACE
   1212 ifeq ($(CONFIG_CTRL_IFACE), unix)
   1213 L_CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
   1214 endif
   1215 ifeq ($(CONFIG_CTRL_IFACE), udp)
   1216 L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
   1217 endif
   1218 ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
   1219 L_CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
   1220 endif
   1221 ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
   1222 CONFIG_CTRL_IFACE=udp
   1223 L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP
   1224 L_CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
   1225 endif
   1226 OBJS += ctrl_iface.c ctrl_iface_$(CONFIG_CTRL_IFACE).c
   1227 endif
   1228 
   1229 ifdef CONFIG_CTRL_IFACE_DBUS
   1230 DBUS=y
   1231 DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
   1232 DBUS_OBJS += dbus/dbus_old.c dbus/dbus_old_handlers.c
   1233 ifdef CONFIG_WPS
   1234 DBUS_OBJS += dbus/dbus_old_handlers_wps.c
   1235 endif
   1236 DBUS_OBJS += dbus/dbus_dict_helpers.c
   1237 ifndef DBUS_LIBS
   1238 DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
   1239 endif
   1240 ifndef DBUS_INCLUDE
   1241 DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
   1242 endif
   1243 DBUS_CFLAGS += $(DBUS_INCLUDE)
   1244 endif
   1245 
   1246 ifdef CONFIG_CTRL_IFACE_DBUS_NEW
   1247 DBUS=y
   1248 DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
   1249 DBUS_OBJS ?= dbus/dbus_dict_helpers.c
   1250 DBUS_OBJS += dbus/dbus_new_helpers.c
   1251 DBUS_OBJS += dbus/dbus_new.c dbus/dbus_new_handlers.c
   1252 ifdef CONFIG_WPS
   1253 DBUS_OBJS += dbus/dbus_new_handlers_wps.c
   1254 endif
   1255 ifdef CONFIG_P2P
   1256 DBUS_OBJS += dbus/dbus_new_handlers_p2p.c
   1257 endif
   1258 ifndef DBUS_LIBS
   1259 DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
   1260 endif
   1261 ifndef DBUS_INCLUDE
   1262 DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
   1263 endif
   1264 ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
   1265 DBUS_OBJS += dbus/dbus_new_introspect.c
   1266 DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
   1267 endif
   1268 DBUS_CFLAGS += $(DBUS_INCLUDE)
   1269 endif
   1270 
   1271 ifdef DBUS
   1272 DBUS_CFLAGS += -DCONFIG_DBUS
   1273 DBUS_OBJS += dbus/dbus_common.c
   1274 endif
   1275 
   1276 OBJS += $(DBUS_OBJS)
   1277 L_CFLAGS += $(DBUS_CFLAGS)
   1278 LIBS += $(DBUS_LIBS)
   1279 
   1280 ifdef CONFIG_READLINE
   1281 OBJS_c += src/utils/edit_readline.c
   1282 LIBS_c += -lncurses -lreadline
   1283 else
   1284 ifdef CONFIG_WPA_CLI_EDIT
   1285 OBJS_c += src/utils/edit.c
   1286 else
   1287 OBJS_c += src/utils/edit_simple.c
   1288 endif
   1289 endif
   1290 
   1291 ifdef CONFIG_NATIVE_WINDOWS
   1292 L_CFLAGS += -DCONFIG_NATIVE_WINDOWS
   1293 LIBS += -lws2_32 -lgdi32 -lcrypt32
   1294 LIBS_c += -lws2_32
   1295 LIBS_p += -lws2_32 -lgdi32
   1296 ifeq ($(CONFIG_CRYPTO), cryptoapi)
   1297 LIBS_p += -lcrypt32
   1298 endif
   1299 endif
   1300 
   1301 ifdef CONFIG_NO_STDOUT_DEBUG
   1302 L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
   1303 ifndef CONFIG_CTRL_IFACE
   1304 L_CFLAGS += -DCONFIG_NO_WPA_MSG
   1305 endif
   1306 endif
   1307 
   1308 ifdef CONFIG_ANDROID_LOG
   1309 L_CFLAGS += -DCONFIG_ANDROID_LOG
   1310 endif
   1311 
   1312 ifdef CONFIG_IPV6
   1313 # for eapol_test only
   1314 L_CFLAGS += -DCONFIG_IPV6
   1315 endif
   1316 
   1317 ifdef NEED_BASE64
   1318 OBJS += src/utils/base64.c
   1319 endif
   1320 
   1321 ifdef NEED_SME
   1322 NEED_80211_COMMON=y
   1323 OBJS += sme.c
   1324 L_CFLAGS += -DCONFIG_SME
   1325 endif
   1326 
   1327 ifdef NEED_80211_COMMON
   1328 OBJS += src/common/ieee802_11_common.c
   1329 endif
   1330 
   1331 ifdef NEED_EAP_COMMON
   1332 OBJS += src/eap_common/eap_common.c
   1333 endif
   1334 
   1335 ifndef CONFIG_MAIN
   1336 CONFIG_MAIN=main
   1337 endif
   1338 
   1339 ifdef CONFIG_DEBUG_SYSLOG
   1340 L_CFLAGS += -DCONFIG_DEBUG_SYSLOG
   1341 ifdef CONFIG_DEBUG_SYSLOG_FACILITY
   1342 L_CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
   1343 endif
   1344 endif
   1345 
   1346 ifdef CONFIG_DEBUG_LINUX_TRACING
   1347 L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
   1348 endif
   1349 
   1350 ifdef CONFIG_DEBUG_FILE
   1351 L_CFLAGS += -DCONFIG_DEBUG_FILE
   1352 endif
   1353 
   1354 ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
   1355 L_CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
   1356 endif
   1357 
   1358 ifdef CONFIG_FIPS
   1359 L_CFLAGS += -DCONFIG_FIPS
   1360 endif
   1361 
   1362 OBJS += $(SHA1OBJS) $(DESOBJS)
   1363 
   1364 OBJS_p += $(SHA1OBJS)
   1365 OBJS_p += $(SHA256OBJS)
   1366 
   1367 ifdef CONFIG_BGSCAN_SIMPLE
   1368 L_CFLAGS += -DCONFIG_BGSCAN_SIMPLE
   1369 OBJS += bgscan_simple.c
   1370 NEED_BGSCAN=y
   1371 endif
   1372 
   1373 ifdef CONFIG_BGSCAN_LEARN
   1374 L_CFLAGS += -DCONFIG_BGSCAN_LEARN
   1375 OBJS += bgscan_learn.c
   1376 NEED_BGSCAN=y
   1377 endif
   1378 
   1379 ifdef NEED_BGSCAN
   1380 L_CFLAGS += -DCONFIG_BGSCAN
   1381 OBJS += bgscan.c
   1382 endif
   1383 
   1384 ifdef CONFIG_AUTOSCAN_EXPONENTIAL
   1385 L_CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
   1386 OBJS += autoscan_exponential.c
   1387 NEED_AUTOSCAN=y
   1388 endif
   1389 
   1390 ifdef CONFIG_AUTOSCAN_PERIODIC
   1391 CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
   1392 OBJS += autoscan_periodic.c
   1393 NEED_AUTOSCAN=y
   1394 endif
   1395 
   1396 ifdef NEED_AUTOSCAN
   1397 L_CFLAGS += -DCONFIG_AUTOSCAN
   1398 OBJS += autoscan.c
   1399 endif
   1400 
   1401 ifdef CONFIG_EXT_PASSWORD_TEST
   1402 OBJS += src/utils/ext_password_test.c
   1403 L_CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
   1404 NEED_EXT_PASSWORD=y
   1405 endif
   1406 
   1407 ifdef NEED_EXT_PASSWORD
   1408 OBJS += src/utils/ext_password.c
   1409 L_CFLAGS += -DCONFIG_EXT_PASSWORD
   1410 endif
   1411 
   1412 ifdef NEED_GAS
   1413 OBJS += src/common/gas.c
   1414 OBJS += gas_query.c
   1415 L_CFLAGS += -DCONFIG_GAS
   1416 NEED_OFFCHANNEL=y
   1417 endif
   1418 
   1419 ifdef NEED_OFFCHANNEL
   1420 OBJS += offchannel.c
   1421 L_CFLAGS += -DCONFIG_OFFCHANNEL
   1422 endif
   1423 
   1424 OBJS += src/drivers/driver_common.c
   1425 
   1426 OBJS_wpa_rm := ctrl_iface.c ctrl_iface_unix.c
   1427 OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.c
   1428 ifdef CONFIG_AUTHENTICATOR
   1429 OBJS_wpa += tests/link_test.c
   1430 endif
   1431 OBJS_wpa += $(OBJS_l2)
   1432 OBJS += wpa_supplicant.c events.c blacklist.c wpas_glue.c scan.c
   1433 OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.c
   1434 OBJS_t += src/radius/radius_client.c
   1435 OBJS_t += src/radius/radius.c
   1436 ifndef CONFIG_AP
   1437 OBJS_t += src/utils/ip_addr.c
   1438 endif
   1439 OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.c
   1440 OBJS += $(CONFIG_MAIN).c
   1441 
   1442 ifdef CONFIG_PRIVSEP
   1443 OBJS_priv += $(OBJS_d) src/drivers/drivers.c
   1444 OBJS_priv += $(OBJS_l2)
   1445 OBJS_priv += src/utils/os_$(CONFIG_OS).c
   1446 OBJS_priv += src/utils/$(CONFIG_ELOOP).c
   1447 OBJS_priv += src/utils/common.c
   1448 OBJS_priv += src/utils/wpa_debug.c
   1449 OBJS_priv += src/utils/wpabuf.c
   1450 OBJS_priv += wpa_priv.c
   1451 ifdef CONFIG_DRIVER_NL80211
   1452 OBJS_priv += src/common/ieee802_11_common.c
   1453 endif
   1454 ifdef CONFIG_DRIVER_TEST
   1455 OBJS_priv += $(SHA1OBJS)
   1456 OBJS_priv += $(MD5OBJS)
   1457 ifeq ($(CONFIG_TLS), openssl)
   1458 OBJS_priv += src/crypto/crypto_openssl.c
   1459 endif
   1460 ifeq ($(CONFIG_TLS), gnutls)
   1461 OBJS_priv += src/crypto/crypto_gnutls.c
   1462 endif
   1463 ifeq ($(CONFIG_TLS), nss)
   1464 OBJS_priv += src/crypto/crypto_nss.c
   1465 endif
   1466 ifeq ($(CONFIG_TLS), internal)
   1467 ifeq ($(CONFIG_CRYPTO), libtomcrypt)
   1468 OBJS_priv += src/crypto/crypto_libtomcrypt.c
   1469 else
   1470 OBJS_priv += src/crypto/crypto_internal.c
   1471 endif
   1472 endif
   1473 endif # CONFIG_DRIVER_TEST
   1474 OBJS += src/l2_packet/l2_packet_privsep.c
   1475 OBJS += src/drivers/driver_privsep.c
   1476 EXTRA_progs += wpa_priv
   1477 else
   1478 OBJS += $(OBJS_d) src/drivers/drivers.c
   1479 OBJS += $(OBJS_l2)
   1480 endif
   1481 
   1482 ifdef CONFIG_NDIS_EVENTS_INTEGRATED
   1483 L_CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
   1484 OBJS += src/drivers/ndis_events.c
   1485 EXTRALIBS += -loleaut32 -lole32 -luuid
   1486 ifdef PLATFORMSDKLIB
   1487 EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
   1488 else
   1489 EXTRALIBS += WbemUuid.Lib
   1490 endif
   1491 endif
   1492 
   1493 ifndef LDO
   1494 LDO=$(CC)
   1495 endif
   1496 
   1497 ########################
   1498 
   1499 include $(CLEAR_VARS)
   1500 LOCAL_MODULE := wpa_cli
   1501 LOCAL_MODULE_TAGS := debug
   1502 LOCAL_SHARED_LIBRARIES := libc libcutils
   1503 LOCAL_CFLAGS := $(L_CFLAGS)
   1504 LOCAL_SRC_FILES := $(OBJS_c)
   1505 LOCAL_C_INCLUDES := $(INCLUDES)
   1506 include $(BUILD_EXECUTABLE)
   1507 
   1508 ########################
   1509 include $(CLEAR_VARS)
   1510 LOCAL_MODULE := wpa_supplicant
   1511 ifdef CONFIG_DRIVER_CUSTOM
   1512 LOCAL_STATIC_LIBRARIES := libCustomWifi
   1513 endif
   1514 ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),)
   1515 LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB)
   1516 endif
   1517 LOCAL_SHARED_LIBRARIES := libc libcutils
   1518 ifeq ($(CONFIG_TLS), openssl)
   1519 LOCAL_SHARED_LIBRARIES += libcrypto libssl
   1520 endif
   1521 ifdef CONFIG_DRIVER_NL80211
   1522 LOCAL_STATIC_LIBRARIES += libnl_2
   1523 endif
   1524 LOCAL_CFLAGS := $(L_CFLAGS)
   1525 LOCAL_SRC_FILES := $(OBJS)
   1526 LOCAL_C_INCLUDES := $(INCLUDES)
   1527 include $(BUILD_EXECUTABLE)
   1528 
   1529 ########################
   1530 #
   1531 #include $(CLEAR_VARS)
   1532 #LOCAL_MODULE := eapol_test
   1533 #ifdef CONFIG_DRIVER_CUSTOM
   1534 #LOCAL_STATIC_LIBRARIES := libCustomWifi
   1535 #endif
   1536 #LOCAL_SHARED_LIBRARIES := libc libcrypto libssl
   1537 #LOCAL_CFLAGS := $(L_CFLAGS)
   1538 #LOCAL_SRC_FILES := $(OBJS_t)
   1539 #LOCAL_C_INCLUDES := $(INCLUDES)
   1540 #include $(BUILD_EXECUTABLE)
   1541 #
   1542 ########################
   1543 #
   1544 #local_target_dir := $(TARGET_OUT)/etc/wifi
   1545 #
   1546 #include $(CLEAR_VARS)
   1547 #LOCAL_MODULE := wpa_supplicant.conf
   1548 #LOCAL_MODULE_CLASS := ETC
   1549 #LOCAL_MODULE_PATH := $(local_target_dir)
   1550 #LOCAL_SRC_FILES := $(LOCAL_MODULE)
   1551 #include $(BUILD_PREBUILT)
   1552 #
   1553 ########################
   1554 
   1555 include $(CLEAR_VARS)
   1556 LOCAL_MODULE = libwpa_client
   1557 LOCAL_CFLAGS = $(L_CFLAGS)
   1558 LOCAL_SRC_FILES = src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c
   1559 LOCAL_C_INCLUDES = $(INCLUDES)
   1560 LOCAL_SHARED_LIBRARIES := libcutils
   1561 LOCAL_COPY_HEADERS_TO := libwpa_client
   1562 LOCAL_COPY_HEADERS := src/common/wpa_ctrl.h
   1563 include $(BUILD_SHARED_LIBRARY)
   1564