X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=hostapd%2FMakefile;h=00e9f605fbf7bd7964346c5284fbe8aae371cfb7;hb=598a792d8cd822fc0c7ac7d7be58cbf66d22e83c;hp=51eb9e8dcc5be4d59bf79d5df197dc62262b5bce;hpb=f88bd288361a09060d3aa283e8913bf55fd8469d;p=libeap.git diff --git a/hostapd/Makefile b/hostapd/Makefile index 51eb9e8..00e9f60 100644 --- a/hostapd/Makefile +++ b/hostapd/Makefile @@ -38,12 +38,17 @@ CFLAGS += -DCONFIG_NATIVE_WINDOWS LIBS += -lws2_32 endif -OBJS = hostapd.o ieee802_1x.o eapol_sm.o \ +OBJS = hostapd.o main.o ieee802_1x.o eapol_sm.o \ config.o ieee802_11_auth.o \ - sta_info.o wpa.o ctrl_iface.o \ - drivers.o preauth.o pmksa_cache.o \ - hw_features.o \ - mlme.o vlan_init.o wpa_auth_ie.o + sta_info.o wpa.o \ + preauth.o pmksa_cache.o \ + drv_callbacks.o \ + tkip_countermeasures.o \ + mlme.o wpa_auth_ie.o $(AESOBJS) + +OBJS += ../src/drivers/drivers.o +OBJS += ../src/drivers/scan_helpers.o +CFLAGS += -DHOSTAPD OBJS += ../src/utils/eloop.o OBJS += ../src/utils/common.o @@ -69,15 +74,24 @@ else OBJS += accounting.o endif +ifdef CONFIG_NO_VLAN +CFLAGS += -DCONFIG_NO_VLAN +else +OBJS += vlan_init.o +endif + +ifdef CONFIG_NO_CTRL_IFACE +CFLAGS += -DCONFIG_NO_CTRL_IFACE +else +OBJS += ctrl_iface.o +endif + OBJS += ../src/crypto/md5.o OBJS += ../src/crypto/rc4.o OBJS += ../src/crypto/md4.o OBJS += ../src/crypto/sha1.o -OBJS += ../src/crypto/des.o -OBJS += ../src/crypto/aes_wrap.o -OBJS += ../src/crypto/aes.o -HOBJS=../src/hlr_auc_gw/hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/hlr_auc_gw/milenage.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o +AESOBJS = ../src/crypto/aes_wrap.o CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX @@ -114,29 +128,36 @@ endif ifdef CONFIG_DRIVER_HOSTAP NEED_MLME=y CFLAGS += -DCONFIG_DRIVER_HOSTAP -OBJS += driver_hostap.o +OBJS += ../src/drivers/driver_hostap.o endif ifdef CONFIG_DRIVER_WIRED CFLAGS += -DCONFIG_DRIVER_WIRED -OBJS += driver_wired.o +OBJS += ../src/drivers/driver_wired.o endif ifdef CONFIG_DRIVER_MADWIFI CFLAGS += -DCONFIG_DRIVER_MADWIFI -OBJS += driver_madwifi.o +OBJS += ../src/drivers/driver_madwifi.o +CONFIG_L2_PACKET=y +endif + +ifdef CONFIG_DRIVER_ATHEROS +CFLAGS += -DCONFIG_DRIVER_ATHEROS +OBJS += ../src/drivers/driver_atheros.o CONFIG_L2_PACKET=y endif ifdef CONFIG_DRIVER_PRISM54 CFLAGS += -DCONFIG_DRIVER_PRISM54 -OBJS += driver_prism54.o +OBJS += ../src/drivers/driver_prism54.o endif ifdef CONFIG_DRIVER_NL80211 NEED_MLME=y CFLAGS += -DCONFIG_DRIVER_NL80211 -OBJS += driver_nl80211.o radiotap.o +OBJS += ../src/drivers/driver_nl80211.o +OBJS += ../src/utils/radiotap.o LIBS += -lnl ifdef CONFIG_LIBNL20 LIBS += -lnl-genl @@ -146,7 +167,7 @@ endif ifdef CONFIG_DRIVER_BSD CFLAGS += -DCONFIG_DRIVER_BSD -OBJS += driver_bsd.o +OBJS += ../src/drivers/driver_bsd.o CONFIG_L2_PACKET=y CONFIG_DNET_PCAP=y CONFIG_L2_FREEBSD=y @@ -155,12 +176,12 @@ endif ifdef CONFIG_DRIVER_TEST NEED_MLME=y CFLAGS += -DCONFIG_DRIVER_TEST -OBJS += driver_test.o +OBJS += ../src/drivers/driver_test.o endif ifdef CONFIG_DRIVER_NONE CFLAGS += -DCONFIG_DRIVER_NONE -OBJS += driver_none.o +OBJS += ../src/drivers/driver_none.o endif ifdef CONFIG_L2_PACKET @@ -181,19 +202,19 @@ endif ifdef CONFIG_EAP_MD5 -CFLAGS += -DEAP_MD5 +CFLAGS += -DEAP_SERVER_MD5 OBJS += ../src/eap_server/eap_md5.o CHAP=y endif ifdef CONFIG_EAP_TLS -CFLAGS += -DEAP_TLS +CFLAGS += -DEAP_SERVER_TLS OBJS += ../src/eap_server/eap_tls.o TLS_FUNCS=y endif ifdef CONFIG_EAP_PEAP -CFLAGS += -DEAP_PEAP +CFLAGS += -DEAP_SERVER_PEAP OBJS += ../src/eap_server/eap_peap.o OBJS += ../src/eap_common/eap_peap_common.o TLS_FUNCS=y @@ -201,37 +222,38 @@ CONFIG_EAP_MSCHAPV2=y endif ifdef CONFIG_EAP_TTLS -CFLAGS += -DEAP_TTLS +CFLAGS += -DEAP_SERVER_TTLS OBJS += ../src/eap_server/eap_ttls.o TLS_FUNCS=y CHAP=y endif ifdef CONFIG_EAP_MSCHAPV2 -CFLAGS += -DEAP_MSCHAPv2 +CFLAGS += -DEAP_SERVER_MSCHAPV2 OBJS += ../src/eap_server/eap_mschapv2.o MS_FUNCS=y endif ifdef CONFIG_EAP_GTC -CFLAGS += -DEAP_GTC +CFLAGS += -DEAP_SERVER_GTC OBJS += ../src/eap_server/eap_gtc.o endif ifdef CONFIG_EAP_SIM -CFLAGS += -DEAP_SIM +CFLAGS += -DEAP_SERVER_SIM OBJS += ../src/eap_server/eap_sim.o CONFIG_EAP_SIM_COMMON=y endif ifdef CONFIG_EAP_AKA -CFLAGS += -DEAP_AKA +CFLAGS += -DEAP_SERVER_AKA OBJS += ../src/eap_server/eap_aka.o CONFIG_EAP_SIM_COMMON=y +NEED_SHA256=y endif ifdef CONFIG_EAP_AKA_PRIME -CFLAGS += -DEAP_AKA_PRIME +CFLAGS += -DEAP_SERVER_AKA_PRIME endif ifdef CONFIG_EAP_SIM_COMMON @@ -244,36 +266,36 @@ NEED_FIPS186_2_PRF=y endif ifdef CONFIG_EAP_PAX -CFLAGS += -DEAP_PAX +CFLAGS += -DEAP_SERVER_PAX OBJS += ../src/eap_server/eap_pax.o ../src/eap_common/eap_pax_common.o endif ifdef CONFIG_EAP_PSK -CFLAGS += -DEAP_PSK +CFLAGS += -DEAP_SERVER_PSK OBJS += ../src/eap_server/eap_psk.o ../src/eap_common/eap_psk_common.o endif ifdef CONFIG_EAP_SAKE -CFLAGS += -DEAP_SAKE +CFLAGS += -DEAP_SERVER_SAKE OBJS += ../src/eap_server/eap_sake.o ../src/eap_common/eap_sake_common.o endif ifdef CONFIG_EAP_GPSK -CFLAGS += -DEAP_GPSK +CFLAGS += -DEAP_SERVER_GPSK OBJS += ../src/eap_server/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o ifdef CONFIG_EAP_GPSK_SHA256 -CFLAGS += -DEAP_GPSK_SHA256 +CFLAGS += -DEAP_SERVER_GPSK_SHA256 endif NEED_SHA256=y endif ifdef CONFIG_EAP_VENDOR_TEST -CFLAGS += -DEAP_VENDOR_TEST +CFLAGS += -DEAP_SERVER_VENDOR_TEST OBJS += ../src/eap_server/eap_vendor_test.o endif ifdef CONFIG_EAP_FAST -CFLAGS += -DEAP_FAST +CFLAGS += -DEAP_SERVER_FAST OBJS += ../src/eap_server/eap_fast.o OBJS += ../src/eap_common/eap_fast_common.o TLS_FUNCS=y @@ -281,7 +303,7 @@ NEED_T_PRF=y endif ifdef CONFIG_WPS -CFLAGS += -DCONFIG_WPS -DEAP_WSC +CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC OBJS += ../src/utils/uuid.o OBJS += wps_hostapd.o OBJS += ../src/eap_server/eap_wsc.o ../src/eap_common/eap_wsc_common.o @@ -297,20 +319,58 @@ NEED_DH_GROUPS=y NEED_SHA256=y NEED_CRYPTO=y NEED_BASE64=y + +ifdef CONFIG_WPS_UFD +CFLAGS += -DCONFIG_WPS_UFD +OBJS += ../src/wps/wps_ufd.o +NEED_WPS_OOB=y +endif + +ifdef CONFIG_WPS_NFC +CFLAGS += -DCONFIG_WPS_NFC +OBJS += ../src/wps/ndef.o +OBJS += ../src/wps/wps_nfc.o +NEED_WPS_OOB=y +ifdef CONFIG_WPS_NFC_PN531 +PN531_PATH ?= /usr/local/src/nfc +CFLAGS += -DCONFIG_WPS_NFC_PN531 +CFLAGS += -I${PN531_PATH}/inc +OBJS += ../src/wps/wps_nfc_pn531.o +LIBS += ${PN531_PATH}/lib/wpsnfc.dll +LIBS += ${PN531_PATH}/lib/libnfc_mapping_pn53x.dll +endif +endif + +ifdef NEED_WPS_OOB +CFLAGS += -DCONFIG_WPS_OOB +endif + +ifdef CONFIG_WPS_UPNP +CFLAGS += -DCONFIG_WPS_UPNP +OBJS += ../src/wps/wps_upnp.o +OBJS += ../src/wps/wps_upnp_ssdp.o +OBJS += ../src/wps/wps_upnp_web.o +OBJS += ../src/wps/wps_upnp_event.o +OBJS += ../src/wps/httpread.o +endif + endif ifdef CONFIG_EAP_IKEV2 -CFLAGS += -DEAP_IKEV2 +CFLAGS += -DEAP_SERVER_IKEV2 OBJS += ../src/eap_server/eap_ikev2.o ../src/eap_server/ikev2.o OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o NEED_DH_GROUPS=y endif ifdef CONFIG_EAP_TNC -CFLAGS += -DEAP_TNC +CFLAGS += -DEAP_SERVER_TNC OBJS += ../src/eap_server/eap_tnc.o OBJS += ../src/eap_server/tncs.o NEED_BASE64=y +ifndef CONFIG_DRIVER_BSD +LIBS += -ldl +endif endif # Basic EAP functionality is needed for EAPOL @@ -344,6 +404,7 @@ ifdef TLS_FUNCS # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) CFLAGS += -DEAP_TLS_FUNCS OBJS += ../src/eap_server/eap_tls_common.o +NEED_TLS_PRF=y ifeq ($(CONFIG_TLS), openssl) OBJS += ../src/crypto/tls_openssl.o LIBS += -lssl -lcrypto @@ -367,7 +428,7 @@ OBJS += ../src/tls/tlsv1_cred.o ../src/tls/tlsv1_server.o OBJS += ../src/tls/tlsv1_server_write.o ../src/tls/tlsv1_server_read.o OBJS += ../src/tls/asn1.o ../src/tls/x509v3.o OBJS_p += ../src/tls/asn1.o -OBJS_p += ../src/crypto/rc4.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o +OBJS_p += ../src/crypto/rc4.o $(AESOBJS) NEED_BASE64=y CFLAGS += -DCONFIG_TLS_INTERNAL CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER @@ -443,6 +504,15 @@ ifeq ($(CONFIG_CRYPTO), internal) OBJS += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o OBJS_p += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o CFLAGS += -DCONFIG_CRYPTO_INTERNAL +ifdef CONFIG_INTERNAL_LIBTOMMATH +CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH +ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST +CFLAGS += -DLTM_FAST +endif +else +LIBS += -ltommath +LIBS_p += -ltommath +endif CONFIG_INTERNAL_AES=y CONFIG_INTERNAL_DES=y CONFIG_INTERNAL_SHA1=y @@ -459,13 +529,10 @@ CONFIG_INTERNAL_SHA256=y endif ifdef CONFIG_INTERNAL_AES -CFLAGS += -DINTERNAL_AES +AESOBJS += ../src/crypto/aes-internal.o endif ifdef CONFIG_INTERNAL_SHA1 -CFLAGS += -DINTERNAL_SHA1 -endif -ifdef CONFIG_INTERNAL_SHA256 -CFLAGS += -DINTERNAL_SHA256 +OBJS += ../src/crypto/sha1-internal.o endif ifdef CONFIG_INTERNAL_MD5 CFLAGS += -DINTERNAL_MD5 @@ -474,11 +541,14 @@ ifdef CONFIG_INTERNAL_MD4 CFLAGS += -DINTERNAL_MD4 endif ifdef CONFIG_INTERNAL_DES -CFLAGS += -DINTERNAL_DES +OBJS += ../src/crypto/des-internal.o endif ifdef NEED_SHA256 OBJS += ../src/crypto/sha256.o +ifdef CONFIG_INTERNAL_SHA256 +OBJS += ../src/crypto/sha256-internal.o +endif endif ifdef NEED_DH_GROUPS @@ -493,6 +563,10 @@ ifndef NEED_T_PRF CFLAGS += -DCONFIG_NO_T_PRF endif +ifndef NEED_TLS_PRF +CFLAGS += -DCONFIG_NO_TLS_PRF +endif + ifdef CONFIG_RADIUS_SERVER CFLAGS += -DRADIUS_SERVER OBJS += ../src/radius/radius_server.o @@ -518,6 +592,7 @@ endif ifdef NEED_MLME OBJS += beacon.o wme.o ap_list.o ieee802_11.o +OBJS += hw_features.o CFLAGS += -DNEED_MLME endif @@ -525,10 +600,29 @@ ifdef CONFIG_NO_STDOUT_DEBUG CFLAGS += -DCONFIG_NO_STDOUT_DEBUG endif +ifdef CONFIG_NO_AES_EXTRAS +CFLAGS += -DCONFIG_NO_AES_UNWRAP +CFLAGS += -DCONFIG_NO_AES_CTR -DCONFIG_NO_AES_OMAC1 +CFLAGS += -DCONFIG_NO_AES_EAX -DCONFIG_NO_AES_CBC +CFLAGS += -DCONFIG_NO_AES_DECRYPT +CFLAGS += -DCONFIG_NO_AES_ENCRYPT_BLOCK +endif + ALL=hostapd hostapd_cli all: verify_config $(ALL) +Q=@ +E=echo +ifeq ($(V), 1) +Q= +E=true +endif + +%.o: %.c + $(Q)$(CC) -c -o $@ $(CFLAGS) $< + @$(E) " CC " $< + verify_config: @if [ ! -r .config ]; then \ echo 'Building hostapd requires a configuration file'; \ @@ -549,11 +643,16 @@ hostapd_cli: $(OBJS_c) $(CC) -o hostapd_cli $(OBJS_c) NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o ../src/crypto/sha1.o ../src/crypto/rc4.o ../src/crypto/md5.o +ifdef CONFIG_INTERNAL_SHA1 +NOBJS += ../src/crypto/sha1-internal.o +endif NOBJS += ../src/crypto/crypto_openssl.o ../src/utils/os_$(CONFIG_OS).o ifdef TLS_FUNCS LIBS_n += -lcrypto endif +HOBJS=../src/hlr_auc_gw/hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/hlr_auc_gw/milenage.o $(AESOBJS) + nt_password_hash: $(NOBJS) $(CC) -o nt_password_hash $(NOBJS) $(LIBS_n) @@ -586,10 +685,10 @@ clean-docs: rm -rf doc/latex doc/html rm -f doc/hostapd.{eps,png} hostapd-devel.pdf -TEST_SRC_MILENAGE = ../src/hlr_auc_gw/milenage.c ../src/crypto/aes_wrap.c ../src/crypto/aes.c ../src/utils/common.c ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).c +TEST_SRC_MILENAGE = ../src/hlr_auc_gw/milenage.c ../src/crypto/aes_wrap.c ../src/crypto/aes-internal.c ../src/utils/common.c ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).c test-milenage: $(TEST_SRC_MILENAGE) $(CC) -o test-milenage -Wall -Werror $(TEST_SRC_MILENAGE) \ - -DTEST_MAIN_MILENAGE -I. -DINTERNAL_AES \ + -DTEST_MAIN_MILENAGE -I. \ -I../src/crypto -I../src/utils ./test-milenage rm test-milenage