1# 2# Copyright (c) 2007, Cameron Rich 3# 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions are met: 8# 9# * Redistributions of source code must retain the above copyright notice, 10# this list of conditions and the following disclaimer. 11# * Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# * Neither the name of the axTLS project nor the names of its 15# contributors may be used to endorse or promote products derived 16# from this software without specific prior written permission. 17# 18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 22# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 24# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 26# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 27# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29# 30 31AXTLS_HOME=.. 32 33include $(AXTLS_HOME)/config/.config 34include $(AXTLS_HOME)/config/makefile.conf 35 36all: libs 37ifdef CONFIG_PERFORMANCE_TESTING 38 $(MAKE) -C test 39else 40ifdef CONFIG_SSL_TEST 41 $(MAKE) -C test 42endif 43endif 44 45ifndef CONFIG_PLATFORM_WIN32 46TARGET1=$(AXTLS_HOME)/$(STAGE)/libaxtls.a 47BASETARGET=libaxtls.so 48CRYPTO_PATH=$(AXTLS_HOME)/crypto/ 49ifdef CONFIG_PLATFORM_CYGWIN 50TARGET2=$(AXTLS_HOME)/$(STAGE)/libaxtls.dll.a 51else 52TARGET2=$(AXTLS_HOME)/$(STAGE)/$(LIBMINOR) 53endif 54 55# shared library major/minor numbers 56LIBMAJOR=$(BASETARGET).1 57LIBMINOR=$(BASETARGET).1.2 58else 59TARGET1=$(AXTLS_HOME)/$(STAGE)/axtls.lib 60TARGET2=$(AXTLS_HOME)/$(STAGE)/axtls.dll 61STATIC_LIB=$(AXTLS_HOME)/$(STAGE)/axtls.static.lib 62CRYPTO_PATH=$(AXTLS_HOME)\\crypto\\ 63endif 64 65libs: $(TARGET1) #$(TARGET2) 66 67CRYPTO_OBJ=\ 68 $(CRYPTO_PATH)aes.o \ 69 $(CRYPTO_PATH)bigint.o \ 70 $(CRYPTO_PATH)crypto_misc.o \ 71 $(CRYPTO_PATH)hmac.o \ 72 $(CRYPTO_PATH)md5.o \ 73 $(CRYPTO_PATH)rc4.o \ 74 $(CRYPTO_PATH)rsa.o \ 75 $(CRYPTO_PATH)sha1.o \ 76 $(CRYPTO_PATH)sha256.o \ 77 $(CRYPTO_PATH)sha384.o \ 78 $(CRYPTO_PATH)sha512.o 79 80OBJ=\ 81 asn1.o \ 82 gen_cert.o \ 83 loader.o \ 84 openssl.o \ 85 os_port.o \ 86 p12.o \ 87 tls1.o \ 88 tls1_svr.o \ 89 tls1_clnt.o \ 90 x509.o 91 92include $(AXTLS_HOME)/config/makefile.post 93 94ifndef CONFIG_PLATFORM_WIN32 # Linux/Unix/Cygwin 95 96$(TARGET1) : $(CRYPTO_OBJ) $(OBJ) 97 $(AR) -rcs $@ $(CRYPTO_OBJ) $(OBJ) 98 99$(TARGET2) : $(CRYPTO_OBJ) $(OBJ) 100ifndef CONFIG_PLATFORM_CYGWIN 101 $(LD) $(LDFLAGS) $(LDSHARED) -Wl,-soname,$(LIBMAJOR) -o $(AXTLS_HOME)/$(STAGE)/$(LIBMINOR) $(CRYPTO_OBJ) $(OBJ) 102 cd $(AXTLS_HOME)/$(STAGE); ln -sf $(LIBMINOR) $(LIBMAJOR); ln -sf $(LIBMAJOR) $(BASETARGET); cd - 103else 104 $(LD) $(LDFLAGS) $(LDSHARED) -o $(AXTLS_HOME)/$(STAGE)/cygaxtls.dll \ 105 -Wl,--out-implib=$(AXTLS_HOME)/$(STAGE)/libaxtls.dll.a \ 106 -Wl,--export-all-symbols \ 107 -Wl,--enable-auto-import $(CRYPTO_OBJ) $(OBJ) 108endif 109 110else # Win32 111CRYPTO_OBJ:=$(CRYPTO_OBJ:.o=.obj) 112 113$(TARGET1) : $(OBJ) 114 $(AR) /out:$@ $(CRYPTO_OBJ) $(OBJ) 115 116$(TARGET2) : $(OBJ) 117 cp $(TARGET1) $(STATIC_LIB) 118 $(LD) $(LDFLAGS) $(LDSHARED) /out:$@ $(CRYPTO_OBJ) $(OBJ) 119 120endif 121 122clean:: 123 $(MAKE) -C test clean 124 -@rm -f $(AXTLS_HOME)/$(STAGE)/* *.a $(TARGET1) $(TARGET2) 125 126