17871dc3eSAndrew Rist#************************************************************** 2fd193754SJim Jagielski# 37871dc3eSAndrew Rist# Licensed to the Apache Software Foundation (ASF) under one 47871dc3eSAndrew Rist# or more contributor license agreements. See the NOTICE file 57871dc3eSAndrew Rist# distributed with this work for additional information 67871dc3eSAndrew Rist# regarding copyright ownership. The ASF licenses this file 77871dc3eSAndrew Rist# to you under the Apache License, Version 2.0 (the 87871dc3eSAndrew Rist# "License"); you may not use this file except in compliance 97871dc3eSAndrew Rist# with the License. You may obtain a copy of the License at 10fd193754SJim Jagielski# 117871dc3eSAndrew Rist# http://www.apache.org/licenses/LICENSE-2.0 12fd193754SJim Jagielski# 137871dc3eSAndrew Rist# Unless required by applicable law or agreed to in writing, 147871dc3eSAndrew Rist# software distributed under the License is distributed on an 157871dc3eSAndrew Rist# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 167871dc3eSAndrew Rist# KIND, either express or implied. See the License for the 177871dc3eSAndrew Rist# specific language governing permissions and limitations 187871dc3eSAndrew Rist# under the License. 19fd193754SJim Jagielski# 207871dc3eSAndrew Rist#************************************************************** 217871dc3eSAndrew Rist 227871dc3eSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweirPRJ=. 25cdf0e10cSrcweir 26cdf0e10cSrcweirPRJNAME=openssl 27cdf0e10cSrcweirTARGET=openssl 28cdf0e10cSrcweir 29cdf0e10cSrcweir# --- Settings ----------------------------------------------------- 30cdf0e10cSrcweir 31cdf0e10cSrcweir.INCLUDE : settings.mk 32cdf0e10cSrcweir 33cdf0e10cSrcweir# --- Files -------------------------------------------------------- 34cdf0e10cSrcweir 35cdf0e10cSrcweir.IF "$(SYSTEM_OPENSSL)" == "YES" 36cdf0e10cSrcweir@all: 37cdf0e10cSrcweir @echo "Using system openssl...." 38cdf0e10cSrcweir.ENDIF 39cdf0e10cSrcweir 40cdf0e10cSrcweir 41*97977252SDamjan JovanovicOPENSSL_NAME=openssl-3.0.13 42cdf0e10cSrcweir 43cdf0e10cSrcweirTARFILE_NAME=$(OPENSSL_NAME) 44*97977252SDamjan JovanovicTARFILE_MD5=c15e53a62711002901d3515ac8b30b86 45cdf0e10cSrcweir 46cdf0e10cSrcweirCONFIGURE_DIR=. 47cdf0e10cSrcweirCONFIGURE_ACTION=config 48fd193754SJim JagielskiCONFIGURE_FLAGS=-I$(SYSBASE)$/usr$/include -L$(SYSBASE)$/usr$/lib shared 49cdf0e10cSrcweir 50cdf0e10cSrcweirBUILD_DIR=. 51a8693330StruckmanBUILD_ACTION=make CC='$(CC)' build_libs 52cdf0e10cSrcweir 53cdf0e10cSrcweirOUT2LIB = libssl.* 54cdf0e10cSrcweirOUT2LIB += libcrypto.* 55cdf0e10cSrcweirOUT2INC += include/openssl/* 56cdf0e10cSrcweir 57cdf0e10cSrcweirUNAME=$(shell uname) 58cdf0e10cSrcweir 59a8693330Struckman.IF "$(COM)"=="GCC" && "$(CCNUMVER)">="000400060000" || "$(OS)"=="WNT" && "$(NASM_PATH)"=="NO_NASM_HOME" 60a8693330Struckman NO_ASM="no-asm" 61a8693330Struckman.ELSE 62a8693330Struckman NO_ASM= 63a8693330Struckman.ENDIF 64a8693330Struckman 65cdf0e10cSrcweir.IF "$(OS)" == "LINUX" || "$(OS)" == "FREEBSD" 66*97977252SDamjan Jovanovic PATCH_FILES=opensslunx.patch 67cdf0e10cSrcweir .IF "$(CPU)" == "I" 68cdf0e10cSrcweir .IF "$(UNAME)" == "GNU/kFreeBSD" 69a8693330Struckman CONFIGURE_ACTION=Configure debian-kfreebsd-i386 no-dso no-shared $(NO_ASM) 70a8693330Struckman .ELIF "$(UNAME)" == "FreeBSD" 71a8693330Struckman CONFIGURE_ACTION=Configure BSD-x86-elf no-dso no-shared $(NO_ASM) 72cdf0e10cSrcweir .ELSE 73a8693330Struckman CONFIGURE_ACTION=Configure linux-generic32 no-dso no-shared $(NO_ASM) 74cdf0e10cSrcweir .ENDIF 75cdf0e10cSrcweir .ELIF "$(BUILD64)" == "1" 76cdf0e10cSrcweir .IF "$(UNAME)" == "GNU/kFreeBSD" 77a8693330Struckman CONFIGURE_ACTION=Configure debian-kfreebsd-amd64 no-dso no-shared $(NO_ASM) 78a8693330Struckman .ELIF "$(UNAME)" == "FreeBSD" 79a8693330Struckman CONFIGURE_ACTION=Configure BSD-x86_64 no-dso no-shared $(NO_ASM) 80cdf0e10cSrcweir .ELSE 81a8693330Struckman CONFIGURE_ACTION=Configure linux-x86_64 no-dso no-shared $(NO_ASM) 82cdf0e10cSrcweir .ENDIF 83cdf0e10cSrcweir .ELSE 84a8693330Struckman CONFIGURE_ACTION=Configure linux-generic32 no-dso no-shared $(NO_ASM) 85cdf0e10cSrcweir .ENDIF 86cdf0e10cSrcweir # if you build openssl as shared library you have to patch the Makefile.Shared "LD_LIBRARY_PATH=$$LD_LIBRARY_PATH \" 87cdf0e10cSrcweir #BUILD_ACTION=make 'SHARED_LDFLAGS=-Wl,--version-script=./lib$$(SHLIBDIRS)_OOo_0_9_8e.map' 88cdf0e10cSrcweir.ENDIF 89cdf0e10cSrcweir 90cdf0e10cSrcweir.IF "$(OS)" == "SOLARIS" 91cdf0e10cSrcweir PATCH_FILES=opensslsol.patch 92cdf0e10cSrcweir #BUILD_ACTION=make 'SHARED_LDFLAGS=-G -dy -z text -M./lib$$$$$$$$(SHLIBDIRS)_OOo_0_9_8e.map' 93cdf0e10cSrcweir 94cdf0e10cSrcweir # Use BUILD64 when 1 to select new specific 64bit Configurations if necessary 95cdf0e10cSrcweir 96cdf0e10cSrcweir .IF "$(CPUNAME)" == "INTEL" # Solaris INTEL 97cdf0e10cSrcweir .IF "$(CPU)" == "X" 98cdf0e10cSrcweir CONFIGURE_ACTION=Configure solaris64-x86_64-cc 99cdf0e10cSrcweir .ELSE 100cdf0e10cSrcweir CONFIGURE_ACTION=Configure solaris-x86-cc 101cdf0e10cSrcweir .ENDIF 102cdf0e10cSrcweir .ELIF "$(CPU)" == "U" # Solaris SPARC 103cdf0e10cSrcweir CONFIGURE_ACTION=Configure solaris64-sparcv9-cc 104cdf0e10cSrcweir .ELSE 105cdf0e10cSrcweir CONFIGURE_ACTION=Configure solaris-sparcv9-cc 106cdf0e10cSrcweir .ENDIF 107cdf0e10cSrcweir.ENDIF 108cdf0e10cSrcweir 10983e567efSJim Jagielski.IF "$(OS)" == "MACOSX" 11083e567efSJim Jagielski CONFIGURE_ACTION=Configure darwin64-x86_64-cc no-dso no-shared $(NO_ASM) 11183e567efSJim Jagielski.ENDIF 11283e567efSJim Jagielski 113cdf0e10cSrcweir.IF "$(OS)" == "WNT" 114cdf0e10cSrcweir 115cdf0e10cSrcweir.IF "$(COM)"=="GCC" 116*97977252SDamjan Jovanovic 117cdf0e10cSrcweirPATCH_FILES=opensslmingw.patch 118cdf0e10cSrcweir.IF "$(USE_MINGW)" == "cygwin" 119cdf0e10cSrcweirCONFIGURE_ACTION=$(PERL) configure 120fd193754SJim JagielskiCONFIGURE_FLAGS=mingw shared 121cdf0e10cSrcweirINSTALL_ACTION=mv libcrypto.a libcrypto_static.a && mv libcrypto.dll.a libcrypto.a && mv libssl.a libssl_static.a && mv libssl.dll.a libssl.a 122cdf0e10cSrcweirOUT2LIB = libcrypto_static.* 123cdf0e10cSrcweirOUT2LIB += libssl_static.* 124cdf0e10cSrcweirOUT2LIB += libcrypto.* 125cdf0e10cSrcweirOUT2LIB += libssl.* 126cdf0e10cSrcweirOUT2BIN = ssleay32.dll 127cdf0e10cSrcweirOUT2BIN += libeay32.dll 128*97977252SDamjan Jovanovic.ELSE # "$(USE_MINGW)" == "cygwin" 129cdf0e10cSrcweirCONFIGURE_ACTION= 130cdf0e10cSrcweirBUILD_ACTION=cmd /c "ms\mingw32" 131cdf0e10cSrcweirOUT2LIB = out/libcrypto_static.* 132cdf0e10cSrcweirOUT2LIB += out/libssl_static.* 133cdf0e10cSrcweirOUT2LIB += out/libcrypto.* 134cdf0e10cSrcweirOUT2LIB += out/libssl.* 135cdf0e10cSrcweirOUT2BIN = out/ssleay32.dll 136cdf0e10cSrcweirOUT2BIN += out/libeay32.dll 137*97977252SDamjan Jovanovic.ENDIF # "$(USE_MINGW)" == "cygwin" 138cdf0e10cSrcweir 139*97977252SDamjan Jovanovic.ELSE # "$(COM)"=="GCC" 140cdf0e10cSrcweir 141*97977252SDamjan Jovanovic PATCH_FILES=openssl.patch 142cdf0e10cSrcweir 143*97977252SDamjan Jovanovic # Extract Strawberry Perl and use CONFIGURE_ACTION to insert it, and NASM which it needs, into the PATH. 144*97977252SDamjan Jovanovic # Also define: 145*97977252SDamjan Jovanovic # - certain constants absent in the old MSVC we use (INT64_MAX, INT64_MIN, UINT64_MAX). 146*97977252SDamjan Jovanovic # - the minimum Windows version to support (_WIN32_WINDOWS=0x0400 for Windows 95, _WIN32_WINNT=0x0400 for Windows NT 4.0). 147*97977252SDamjan Jovanovic # - OPENSSL_NO_ASYNC=1 to stop using async functions that require old Windows versions. 148*97977252SDamjan Jovanovic STRAWBERRY_PERL_DIR=$(shell cygpath -u $(SOLARSRC)/openssl/$(INPATH)/misc/build/strawberry-perl) 149*97977252SDamjan Jovanovic .IF "$(NASM_PATH)"=="NASM_IN_PATH" 150*97977252SDamjan Jovanovic CONFIGURE_PATH=$(STRAWBERRY_PERL_DIR)/perl/bin:$(PATH) 151*97977252SDamjan Jovanovic .ELSE 152*97977252SDamjan Jovanovic NASM_PATH_NIX=$(shell cygpath -u $(NASM_PATH)) 153*97977252SDamjan Jovanovic CONFIGURE_PATH=$(STRAWBERRY_PERL_DIR)/perl/bin:$(NASM_PATH_NIX):$(PATH) 154cdf0e10cSrcweir .ENDIF 155*97977252SDamjan Jovanovic CONFIGURE_ACTION=\ 156*97977252SDamjan Jovanovic if test -d "$(STRAWBERRY_PERL_DIR)"; \ 157*97977252SDamjan Jovanovic then echo Found Strawberry Perl; \ 158*97977252SDamjan Jovanovic else mkdir "$(STRAWBERRY_PERL_DIR)" && unzip -d $(STRAWBERRY_PERL_DIR) $(SOLARSRC)/../ext_sources/93fdfe261588bc82ab3a0bd4f5945b60-strawberry-perl-5.32.1.1-32bit-portable.zip ; \ 159*97977252SDamjan Jovanovic fi && \ 160*97977252SDamjan Jovanovic PATH="$(CONFIGURE_PATH)" \ 161*97977252SDamjan Jovanovic PERL= \ 162*97977252SDamjan Jovanovic CPPFLAGS="$(SOLARINC) \ 163*97977252SDamjan Jovanovic -DOPENSSL_NO_ASYNC=1 \ 164*97977252SDamjan Jovanovic -DWINVER=0x0400 \ 165*97977252SDamjan Jovanovic -D_WIN32_WINNT=0x0400 \ 166*97977252SDamjan Jovanovic -D_WIN32_WINDOWS=0x0400 \ 167*97977252SDamjan Jovanovic -DINT64_MAX=9223372036854775807i64 \ 168*97977252SDamjan Jovanovic -DINT64_MIN=(-9223372036854775807i64-1) \ 169*97977252SDamjan Jovanovic -DUINT64_MAX=0xffffffffffffffffui64" \ 170*97977252SDamjan Jovanovic RCFLAGS="$(SOLARINC)" \ 171*97977252SDamjan Jovanovic perl configure $(NO_ASM) 172*97977252SDamjan Jovanovic .IF "$(CPUNAME)"=="INTEL" 173*97977252SDamjan Jovanovic CONFIGURE_FLAGS=VC-WIN32 174*97977252SDamjan Jovanovic .ELIF "$(CPUNAME)"=="X86_64" 175*97977252SDamjan Jovanovic CONFIGURE_FLAGS=VC-WIN64A 176*97977252SDamjan Jovanovic .ENDIF 177*97977252SDamjan Jovanovic BUILD_ACTION=LIB="$(ILIB)" nmake 178*97977252SDamjan Jovanovic 179*97977252SDamjan Jovanovic OUT2BIN = libcrypto-3.dll 180*97977252SDamjan Jovanovic OUT2BIN += libssl-3.dll 181*97977252SDamjan Jovanovic OUT2INC = include$/openssl$/* 182*97977252SDamjan Jovanovic 183*97977252SDamjan Jovanovic.ENDIF # "$(COM)"=="GCC" 184*97977252SDamjan Jovanovic 185*97977252SDamjan Jovanovic.ENDIF # "$(OS)" == "WNT" 186cdf0e10cSrcweir 187cdf0e10cSrcweir 188cdf0e10cSrcweir# --- Targets ------------------------------------------------------ 189cdf0e10cSrcweir 190cdf0e10cSrcweir.INCLUDE : set_ext.mk 191cdf0e10cSrcweir.INCLUDE : target.mk 192cdf0e10cSrcweir.INCLUDE : tg_ext.mk 193cdf0e10cSrcweir 194