1LIBEAP_NAME = libeap 2LIBEAP_CURRENT = 0 3LIBEAP_REVISION = 0 4LIBEAP_AGE = 0 5 6LIBEAP = $(LIBEAP_NAME).so.$(LIBEAP_CURRENT).$(LIBEAP_REVISION).$(LIBEAP_AGE) 7LIBEAP_SO = $(LIBEAP_NAME).so.$(LIBEAP_CURRENT) 8 9.PHONY: all clean install uninstall 10 11all: $(LIBEAP) 12 ln -fs $(LIBEAP) $(LIBEAP_SO) 13 ln -fs $(LIBEAP) $(LIBEAP_NAME).so 14 15ifndef CC 16CC=gcc 17endif 18 19ifndef CFLAGS 20CFLAGS = -MMD -O0 -Wall -g 21endif 22 23CONFIG_TLS=openssl 24 25INCLUDE_INSTALL_DIR=/usr/include/eap_peer 26 27# Got to use override all across the board, otherwise a 'make 28# CFLAGS=XX' will kill us because the command line's CFLAGS will 29# overwrite Make's and we'll loose all the infrastructure it sets. 30override CFLAGS += -I. -I.. -I../crypto -I../utils -I../common 31 32# at least for now, need to include config_ssid.h and config_blob.h from 33# wpa_supplicant directory 34override CFLAGS += -I ../../wpa_supplicant 35 36OBJS_both += ../utils/common.o 37OBJS_both += ../utils/os_unix.o 38OBJS_both += ../utils/wpa_debug.o 39OBJS_both += ../utils/base64.o 40OBJS_both += ../utils/wpabuf.o 41OBJS_both += ../crypto/md5.o 42OBJS_both += ../crypto/sha1.o 43OBJS_both += ../crypto/sha1-tlsprf.o 44OBJS_both += ../crypto/aes-encblock.o 45OBJS_both += ../crypto/aes-wrap.o 46OBJS_both += ../crypto/aes-ctr.o 47OBJS_both += ../crypto/aes-eax.o 48OBJS_both += ../crypto/aes-omac1.o 49OBJS_both += ../crypto/ms_funcs.o 50OBJS_both += ../crypto/sha256.o 51 52 53OBJS_both += ../eap_common/eap_peap_common.o 54OBJS_both += ../eap_common/eap_psk_common.o 55OBJS_both += ../eap_common/eap_pax_common.o 56OBJS_both += ../eap_common/eap_sake_common.o 57OBJS_both += ../eap_common/eap_gpsk_common.o 58OBJS_both += ../eap_common/chap.o 59 60OBJS_peer += ../eap_peer/eap_tls.o 61OBJS_peer += ../eap_peer/eap_peap.o 62OBJS_peer += ../eap_peer/eap_ttls.o 63OBJS_peer += ../eap_peer/eap_md5.o 64OBJS_peer += ../eap_peer/eap_mschapv2.o 65OBJS_peer += ../eap_peer/mschapv2.o 66OBJS_peer += ../eap_peer/eap_otp.o 67OBJS_peer += ../eap_peer/eap_gtc.o 68OBJS_peer += ../eap_peer/eap_leap.o 69OBJS_peer += ../eap_peer/eap_psk.o 70OBJS_peer += ../eap_peer/eap_pax.o 71OBJS_peer += ../eap_peer/eap_sake.o 72OBJS_peer += ../eap_peer/eap_gpsk.o 73OBJS_peer += ../eap_peer/eap.o 74OBJS_peer += ../eap_common/eap_common.o 75OBJS_peer += ../eap_peer/eap_methods.o 76OBJS_peer += ../eap_peer/eap_tls_common.o 77 78override CFLAGS += -DEAP_TLS 79override CFLAGS += -DEAP_PEAP 80override CFLAGS += -DEAP_TTLS 81override CFLAGS += -DEAP_MD5 82override CFLAGS += -DEAP_MSCHAPv2 83override CFLAGS += -DEAP_GTC 84override CFLAGS += -DEAP_OTP 85override CFLAGS += -DEAP_LEAP 86override CFLAGS += -DEAP_PSK 87override CFLAGS += -DEAP_PAX 88override CFLAGS += -DEAP_SAKE 89override CFLAGS += -DEAP_GPSK -DEAP_GPSK_SHA256 90override CFLAGS += -DEAP_TLS_FUNCS 91 92override CFLAGS += -DIEEE8021X_EAPOL 93 94ifeq ($(CONFIG_TLS), openssl) 95override CFLAGS += -DEAP_TLS_OPENSSL 96override CFLAGS += -I$(TOP)/openssl-1.0.0q/include 97OBJS_both += ../crypto/tls_openssl.o 98OBJS_both += ../crypto/crypto_openssl.o 99LIBS += -L$(TOP)/openssl-1.0.0q -lssl-1.0.0q -lcrypto-1.0.0q 100override CFLAGS += -DINTERNAL_SHA256 101endif 102 103ifeq ($(CONFIG_TLS), internal) 104OBJS_both += ../crypto/tls_internal.o 105OBJS_both += ../tls/tlsv1_common.o ../../tls/tlsv1_record.o 106OBJS_both += ../tls/tlsv1_cred.o 107OBJS_both += ../tls/asn1.o ../../tls/x509v3.o 108OBJS_both += ../crypto/crypto_internal.o ../../tls/rsa.o ../../tls/bignum.o 109 110OBJS_peer += ../tls/tlsv1_client.o 111OBJS_peer += ../tls/tlsv1_client_write.o ../../tls/tlsv1_client_read.o 112override CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 113 114OBJS_server += ../tls/tlsv1_server.o 115OBJS_server += ../tls/tlsv1_server_write.o ../../tls/tlsv1_server_read.o 116override CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 117 118override CFLAGS += -DCONFIG_TLS_INTERNAL 119override CFLAGS += -DCONFIG_CRYPTO_INTERNAL 120override CFLAGS += -DCONFIG_INTERNAL_X509 121override CFLAGS += -DINTERNAL_AES 122override CFLAGS += -DINTERNAL_SHA1 123override CFLAGS += -DINTERNAL_SHA256 124override CFLAGS += -DINTERNAL_MD5 125override CFLAGS += -DINTERNAL_MD4 126override CFLAGS += -DINTERNAL_DES 127ifdef CONFIG_INTERNAL_LIBTOMMATH 128override CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 129else 130LIBS += -ltommath 131endif 132endif 133 134ifndef LDO 135LDO=$(CC) 136endif 137 138 139OBJS_lib=$(OBJS_both) $(OBJS_peer) 140 141 #$(OBJS_server) 142 143override CFLAGS += -fPIC -DPIC 144LDFLAGS += -shared 145 146$(LIBEAP): $(OBJS_lib) 147 $(LDO) $(LDFLAGS) $(OBJS_lib) -Wl,-soname -Wl,$(LIBEAP_SO) -o $(LIBEAP) $(LIBS) 148 149 150UTIL_HEADERS = ../utils/includes.h ../utils/common.h \ 151 ../utils/wpabuf.h ../utils/build_config.h \ 152 ../utils/os.h ../utils/wpa_debug.h 153COMMON_HEADERS = ../common/defs.h 154EAP_COMMON_HEADERS = ../eap_common/eap_defs.h 155MAIN_HEADERS = eap.h eap_methods.h eap_config.h 156CRYPTO_HEADERS = ../crypto/tls.h 157 158install: 159 160 mkdir -p $(DESTDIR)/usr/lib 161# copy the lib file to std lib location 162 cp $(LIBEAP) $(DESTDIR)/usr/lib 163 ln -fs $(LIBEAP_SO) $(DESTDIR)/usr/lib/$(LIBEAP_NAME).so 164 165# copy the headers reqd by apps using eap peer library in its own subfolder under /usr/include 166 mkdir -p \ 167 $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/eap_common \ 168 $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/common \ 169 $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/util \ 170 $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/crypto 171 install -m 0644 $(EAP_COMMON_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/eap_common 172 install -m 0644 $(COMMON_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/common 173 install -m 0644 $(CRYPTO_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/crypto 174 install -m 0644 $(UTIL_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/util 175 install -m 0644 $(MAIN_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/ 176 177 mkdir -p $(DESTDIR)/usr/lib/pkgconfig 178 cp libeap0.pc $(DESTDIR)/usr/lib/pkgconfig 179 180uninstall: 181 182 rm $(DESTDIR)/usr/lib/$(LIBEAP) 183 rm -fr $(DESTDIR)/$(INCLUDE_INSTALL_DIR) 184 rm -f $(DESTDIR)/usr/lib/pkgconfig/libeap0.pc 185 186clean: 187 rm -f *~ *.o *.so *.d libeap.* $(LIBEAP) $(OBJS_lib) 188 189-include $(OBJS:%.o=%.d) 190