X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=wpa_supplicant%2FMakefile;h=f0eb36439aa82b2253b6929bea10c2691aef20b4;hb=ad01a5315e6b23c8bc31d65a3f192f41d7a8595b;hp=9f7a785bc747c62c63fbe7b2ae6cd9b946a5f4d5;hpb=b77eab282a2820fd8d67785eb2e045aa59f49b82;p=libeap.git diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile index 9f7a785..f0eb364 100644 --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile @@ -6,6 +6,9 @@ ifndef CFLAGS CFLAGS = -MMD -O2 -Wall -g endif +export LIBDIR ?= /usr/local/lib/ +export BINDIR ?= /usr/local/sbin/ + CFLAGS += -I../src CFLAGS += -I../src/crypto CFLAGS += -I../src/utils @@ -32,28 +35,27 @@ mkconfig: fi echo CONFIG_DRIVER_HOSTAP=y >> .config echo CONFIG_DRIVER_WEXT=y >> .config - echo CONFIG_WIRELESS_EXTENSION=y >> .config install: all - mkdir -p $(DESTDIR)/usr/local/sbin/ - for i in $(ALL); do cp $$i $(DESTDIR)/usr/local/sbin/$$i; done + mkdir -p $(DESTDIR)$(BINDIR) + for i in $(ALL); do cp $$i $(DESTDIR)$(BINDIR)/$$i; done + $(MAKE) -C ../src install + +SHA1OBJS = ../src/crypto/sha1.o +DESOBJS = # none needed when not internal +AESOBJS = ../src/crypto/aes_wrap.o +SHA256OBJS = # none by default +MD4OBJS = # none by default +MD5OBJS = ../src/crypto/md5.o OBJS = config.o OBJS += ../src/utils/common.o OBJS += ../src/utils/wpa_debug.o OBJS += ../src/utils/wpabuf.o -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_p = wpa_passphrase.o OBJS_p += ../src/utils/common.o OBJS_p += ../src/utils/wpa_debug.o -OBJS_p += ../src/crypto/md5.o -OBJS_p += ../src/crypto/md4.o -OBJS_p += ../src/crypto/sha1.o -OBJS_p += ../src/crypto/des.o OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o -include .config @@ -131,9 +133,15 @@ ifdef CONFIG_DRIVER_NL80211 CFLAGS += -DCONFIG_DRIVER_NL80211 OBJS_d += ../src/drivers/driver_nl80211.o LIBS += -lnl +ifdef CONFIG_LIBNL20 +LIBS += -lnl-genl +CFLAGS += -DCONFIG_LIBNL20 +endif ifdef CONFIG_CLIENT_MLME OBJS_d += ../src/utils/radiotap.o endif +NEED_SME=y +NEED_AP_MLME=y endif ifdef CONFIG_DRIVER_PRISM54 @@ -457,6 +465,7 @@ OBJS += ../src/eap_common/eap_fast_common.o OBJS_h += ../src/eap_server/eap_fast.o endif TLS_FUNCS=y +CONFIG_IEEE8021X_EAPOL=y NEED_T_PRF=y endif @@ -505,10 +514,6 @@ endif ifdef CONFIG_WPS # EAP-WSC -ifeq ($(CONFIG_EAP_WSC), dyn) -CFLAGS += -DCONFIG_WPS -DEAP_WSC_DYNAMIC -EAPDYN += ../src/eap_peer/eap_wsc.so -else CFLAGS += -DCONFIG_WPS -DEAP_WSC OBJS += wps_supplicant.o OBJS += ../src/utils/uuid.o @@ -522,11 +527,46 @@ OBJS += ../src/wps/wps_dev_attr.o OBJS += ../src/wps/wps_enrollee.o OBJS += ../src/wps/wps_registrar.o OBJS_h += ../src/eap_server/eap_wsc.o -endif CONFIG_IEEE8021X_EAPOL=y NEED_DH_GROUPS=y NEED_SHA256=y NEED_BASE64=y +NEED_CRYPTO=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 @@ -566,8 +606,12 @@ OBJS += ../src/eap_peer/tncc.o OBJS_h += ../src/eap_server/eap_tnc.o OBJS_h += ../src/eap_server/tncs.o NEED_BASE64=y +ifndef CONFIG_NATIVE_WINDOWS +ifndef CONFIG_DRIVER_BSD LIBS += -ldl endif +endif +endif ifdef CONFIG_IEEE8021X_EAPOL # IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication) @@ -579,6 +623,52 @@ LIBS += -ldl -rdynamic endif endif +ifdef CONFIG_AP +CFLAGS += -DCONFIG_AP +OBJS += ap.o +CFLAGS += -DCONFIG_NO_RADIUS +CFLAGS += -DCONFIG_NO_ACCOUNTING +CFLAGS += -DCONFIG_NO_VLAN +OBJS += ../hostapd/hostapd.o +OBJS += ../hostapd/config.o +OBJS += ../src/utils/ip_addr.o +OBJS += ../hostapd/sta_info.o +OBJS += ../hostapd/wpa.o +OBJS += ../hostapd/pmksa_cache.o +OBJS += ../hostapd/wpa_auth_ie.o +OBJS += ../hostapd/tkip_countermeasures.o +OBJS += ../hostapd/mlme.o +OBJS += ../hostapd/ieee802_1x.o +OBJS += ../hostapd/eapol_sm.o +OBJS += ../hostapd/ieee802_11_auth.o +OBJS += ../hostapd/drv_callbacks.o +ifdef CONFIG_IEEE80211R +OBJS += ../hostapd/wpa_ft.o +endif +ifdef CONFIG_PEERKEY +OBJS += ../hostapd/peerkey.o +endif + +CFLAGS += -DEAP_SERVER +OBJS += ../src/eap_server/eap.o +OBJS += ../src/eap_server/eap_identity.o +OBJS += ../src/eap_server/eap_methods.o + +ifdef NEED_AP_MLME +OBJS += ../hostapd/beacon.o +OBJS += ../hostapd/wme.o +OBJS += ../hostapd/ap_list.o +OBJS += ../hostapd/ieee802_11.o +OBJS += ../hostapd/hw_features.o +CFLAGS += -DNEED_MLME +endif +ifdef CONFIG_WPS +CFLAGS += -DEAP_SERVER_WSC +OBJS += ../hostapd/wps_hostapd.o +OBJS += ../src/eap_server/eap_wsc.o +endif +endif + ifdef CONFIG_EAP_SERVER CFLAGS += -DEAP_SERVER OBJS_h += ../src/eap_server/eap.o @@ -682,23 +772,14 @@ OBJS += ../src/crypto/tls_internal.o OBJS += ../src/tls/tlsv1_common.o ../src/tls/tlsv1_record.o OBJS += ../src/tls/tlsv1_cred.o ../src/tls/tlsv1_client.o OBJS += ../src/tls/tlsv1_client_write.o ../src/tls/tlsv1_client_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 += ../src/tls/asn1.o ../src/tls/rsa.o ../src/tls/x509v3.o +OBJS_p += ../src/tls/asn1.o ../src/tls/rsa.o +OBJS_p += ../src/crypto/rc4.o NEED_BASE64=y NEED_TLS_PRF=y CFLAGS += -DCONFIG_TLS_INTERNAL CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT ifeq ($(CONFIG_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 endif ifeq ($(CONFIG_CRYPTO), libtomcrypt) LIBS += -ltomcrypt -ltfm @@ -783,9 +864,18 @@ OBJS_p += ../src/crypto/crypto_libtomcrypt.o CONFIG_INTERNAL_SHA256=y endif 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 +OBJS += ../src/crypto/crypto_internal.o ../src/tls/bignum.o +OBJS_p += ../src/crypto/crypto_internal.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 @@ -812,22 +902,22 @@ CONFIG_INTERNAL_MD5=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 +SHA1OBJS += ../src/crypto/sha1-internal.o endif ifdef CONFIG_INTERNAL_MD5 -CFLAGS += -DINTERNAL_MD5 +MD5OBJS += ../src/crypto/md5-internal.o endif ifdef CONFIG_INTERNAL_MD4 -CFLAGS += -DINTERNAL_MD4 +MD4OBJS += ../src/crypto/md4-internal.o endif +OBJS += $(MD4OBJS) $(MD5OBJS) +OBJS_p += $(MD4OBJS) $(MD5OBJS) + ifdef CONFIG_INTERNAL_DES -CFLAGS += -DINTERNAL_DES +DESOBJS += ../src/crypto/des-internal.o endif ifdef CONFIG_IEEE80211R @@ -840,12 +930,15 @@ NEED_SHA256=y endif ifdef NEED_SHA256 -OBJS += ../src/crypto/sha256.o +SHA256OBJS += ../src/crypto/sha256.o CFLAGS += -DNEED_SHA256 +ifdef CONFIG_INTERNAL_SHA256 +SHA256OBJS += ../src/crypto/sha256-internal.o endif +endif +OBJS += $(SHA256OBJS) ifdef CONFIG_WIRELESS_EXTENSION -CFLAGS += -DCONFIG_WIRELESS_EXTENSION OBJS_d += ../src/drivers/driver_wext.o endif @@ -928,6 +1021,7 @@ endif ifdef CONFIG_IEEE80211R CFLAGS += -DCONFIG_IEEE80211R OBJS += ../src/rsn_supp/wpa_ft.o +NEED_80211_COMMON=y endif ifndef CONFIG_NO_WPA @@ -974,7 +1068,7 @@ CFLAGS += -DCONFIG_NO_AES_ENCRYPT_BLOCK endif ifdef NEED_AES -OBJS += ../src/crypto/aes_wrap.o ../src/crypto/aes.o +OBJS += $(AESOBJS) endif ifdef NEED_DH_GROUPS @@ -997,9 +1091,19 @@ ifdef NEED_BASE64 OBJS += ../src/utils/base64.o endif +ifdef NEED_SME +OBJS += sme.o +CFLAGS += -DCONFIG_SME +endif + ifdef CONFIG_CLIENT_MLME -OBJS += mlme.o ../src/common/ieee802_11_common.o +OBJS += mlme.o CFLAGS += -DCONFIG_CLIENT_MLME +NEED_80211_COMMON=y +endif + +ifdef NEED_80211_COMMON +OBJS += ../src/common/ieee802_11_common.o endif ifndef CONFIG_MAIN @@ -1015,6 +1119,9 @@ CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT endif OBJS += ../src/drivers/scan_helpers.o +OBJS += $(SHA1OBJS) $(DESOBJS) + +OBJS_p += $(SHA1OBJS) $(DESOBJS) $(AESOBJS) OBJS_wpa_rm := ctrl_iface.o mlme.o ctrl_iface_unix.o OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o @@ -1038,10 +1145,11 @@ OBJS_priv += ../src/utils/os_$(CONFIG_OS).o OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o OBJS_priv += ../src/utils/common.o OBJS_priv += ../src/utils/wpa_debug.o +OBJS_priv += ../src/utils/wpabuf.o OBJS_priv += wpa_priv.o ifdef CONFIG_DRIVER_TEST -OBJS_priv += ../src/crypto/sha1.o -OBJS_priv += ../src/crypto/md5.o +OBJS_priv += $(SHA1OBJS) +OBJS_priv += $(MD5OBJS) ifeq ($(CONFIG_TLS), openssl) OBJS_priv += ../src/crypto/crypto_openssl.o endif @@ -1106,18 +1214,16 @@ test_wpa: $(OBJS_wpa) $(OBJS_h) $(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS) OBJSa=../src/tls/asn1_test.o ../src/tls/asn1.o ../src/tls/x509v3.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \ - ../src/crypto/crypto_$(CONFIG_CRYPTO).o ../src/crypto/md5.o ../src/crypto/sha1.o \ - ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \ - ../src/crypto/aes.o ../src/tls/bignum.o ../src/tls/rsa.o + ../src/crypto/crypto_$(CONFIG_CRYPTO).o $(MD5OBJS) $(SHA1OBSJ) \ + ../src/crypto/rc4.o $(DESOBJS) $(AESOBJS) ../src/tls/bignum.o ../src/tls/rsa.o asn1_test: $(OBJSa) $(LDO) $(LDFLAGS) -o asn1_test $(OBJSa) OBJSx=tests/test_x509v3.o ../src/tls/asn1.o ../src/tls/x509v3.o \ ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \ ../src/crypto/crypto_$(CONFIG_CRYPTO).o \ - ../src/crypto/md5.o ../src/crypto/sha1.o ../src/crypto/aes.o \ - ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \ - ../src/crypto/sha256.o \ + $(MD5OBJS) $(SHA1OBJS) $(AESOBJS) \ + ../src/crypto/rc4.o $(DESOBJS) $(SHA256OBJS) \ ../src/tls/bignum.o ../src/tls/rsa.o test_x509v3: $(OBJSx) $(LDO) $(LDFLAGS) -o test_x509v3 $(OBJSx) @@ -1147,8 +1253,18 @@ eap_ikev2.so: ../src/eap_peer/eap_ikev2.c ../src/eap_peer/ikev2.c ../src/eap_com %.so: %.c $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \ - -D$(*:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init + -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init + +Q=@ +E=echo +ifeq ($(V), 1) +Q= +E=true +endif +%.o: %.c + $(Q)$(CC) -c -o $@ $(CFLAGS) $< + @$(E) " CC " $< wpa_supplicant.exe: wpa_supplicant mv -f $< $@ @@ -1178,47 +1294,47 @@ wpa_gui-qt4/Makefile: wpa_gui-qt4: wpa_gui-qt4/Makefile $(MAKE) -C wpa_gui-qt4 -TEST_MS_FUNCS_OBJS = ../src/crypto/crypto_openssl.o ../src/crypto/sha1.o ../src/crypto/md5.o \ +TEST_MS_FUNCS_OBJS = ../src/crypto/crypto_openssl.o $(SHA1OBJS) $(MD5OBJS) \ ../src/utils/os_unix.o ../src/crypto/rc4.o tests/test_ms_funcs.o test-ms_funcs: $(TEST_MS_FUNCS_OBJS) $(LDO) $(LDFLAGS) -o $@ $(TEST_MS_FUNCS_OBJS) $(LIBS) -lcrypto ./test-ms_funcs rm test-ms_funcs -TEST_SHA1_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o tests/test_sha1.o #../src/crypto/crypto_openssl.o +TEST_SHA1_OBJS = $(SHA1OBJS) $(MD5OBJS) tests/test_sha1.o #../src/crypto/crypto_openssl.o test-sha1: $(TEST_SHA1_OBJS) $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA1_OBJS) $(LIBS) ./test-sha1 rm test-sha1 -TEST_SHA256_OBJS = ../src/crypto/sha256.o ../src/crypto/md5.o tests/test_sha256.o ../src/crypto/crypto_openssl.o +TEST_SHA256_OBJS = $(SHA256OBJS) $(MD5OBJS) tests/test_sha256.o ../src/utils/os_unix.o ../src/crypto/crypto_openssl.o test-sha256: $(TEST_SHA256_OBJS) $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA256_OBJS) $(LIBS) ./test-sha256 rm test-sha256 -TEST_AES_OBJS = ../src/crypto/aes_wrap.o ../src/crypto/aes.o tests/test_aes.o +TEST_AES_OBJS = tests/test_aes.o $(AESOBJS) test-aes: $(TEST_AES_OBJS) $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS) ./test-aes rm test-aes -TEST_EAP_SIM_COMMON_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o \ - ../src/crypto/aes_wrap.o ../src/utils/common.o ../src/utils/os_unix.o \ - ../src/utils/wpa_debug.o ../src/crypto/aes.o \ +TEST_EAP_SIM_COMMON_OBJS = $(SHA1OBJS) $(MD5OBJS) \ + ../src/utils/common.o ../src/utils/os_unix.o \ + ../src/utils/wpa_debug.o $(AESOBJS) \ tests/test_eap_sim_common.o test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS) $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS) ./test-eap_sim_common rm test-eap_sim_common -TEST_MD4_OBJS = ../src/crypto/md4.o tests/test_md4.o #../src/crypto/crypto_openssl.o +TEST_MD4_OBJS = ../src/crypto/md4-internal.o tests/test_md4.o #../src/crypto/crypto_openssl.o test-md4: $(TEST_MD4_OBJS) $(LDO) $(LDFLAGS) -o $@ $(TEST_MD4_OBJS) $(LIBS) ./test-md4 rm test-md4 -TEST_MD5_OBJS = ../src/crypto/md5.o tests/test_md5.o #../src/crypto/crypto_openssl.o +TEST_MD5_OBJS = $(MD5OBJS) tests/test_md5.o #../src/crypto/crypto_openssl.o test-md5: $(TEST_MD5_OBJS) $(LDO) $(LDFLAGS) -o $@ $(TEST_MD5_OBJS) $(LIBS) ./test-md5 @@ -1228,7 +1344,7 @@ tests: test-ms_funcs test-sha1 test-aes test-eap_sim_common test-md4 test-md5 clean: $(MAKE) -C ../src clean - rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL) + rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL) eapol_test preauth_test %.eps: %.fig fig2dev -L eps $*.fig $*.eps