1*b1cdbd2cSJim Jagielski#************************************************************** 2*b1cdbd2cSJim Jagielski# 3*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski# distributed with this work for additional information 6*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski# 11*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski# 13*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski# under the License. 19*b1cdbd2cSJim Jagielski# 20*b1cdbd2cSJim Jagielski#************************************************************** 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim JagielskiPRJ=. 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim JagielskiPRJNAME=openssl 27*b1cdbd2cSJim JagielskiTARGET=openssl 28*b1cdbd2cSJim Jagielski 29*b1cdbd2cSJim Jagielski# --- Settings ----------------------------------------------------- 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski.INCLUDE : settings.mk 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski# --- Files -------------------------------------------------------- 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski.IF "$(SYSTEM_OPENSSL)" == "YES" 36*b1cdbd2cSJim Jagielski@all: 37*b1cdbd2cSJim Jagielski @echo "Using system openssl...." 38*b1cdbd2cSJim Jagielski.ENDIF 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski.IF "$(DISABLE_OPENSSL)" == "TRUE" 41*b1cdbd2cSJim Jagielski@all: 42*b1cdbd2cSJim Jagielski @echo "openssl disabled...." 43*b1cdbd2cSJim Jagielski.ENDIF 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim JagielskiOPENSSL_NAME=openssl-1.0.2u 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim JagielskiTARFILE_NAME=$(OPENSSL_NAME) 48*b1cdbd2cSJim JagielskiTARFILE_MD5=cdc2638f789ecc2db2c91488265686c1 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim JagielskiCONFIGURE_DIR=. 51*b1cdbd2cSJim JagielskiCONFIGURE_ACTION=config 52*b1cdbd2cSJim JagielskiCONFIGURE_FLAGS=-I$(SYSBASE)$/usr$/include -L$(SYSBASE)$/usr$/lib shared 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim JagielskiBUILD_DIR=. 55*b1cdbd2cSJim JagielskiBUILD_ACTION=make CC='$(CC)' build_libs 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim JagielskiOUT2LIB = libssl.* 58*b1cdbd2cSJim JagielskiOUT2LIB += libcrypto.* 59*b1cdbd2cSJim JagielskiOUT2INC += include/openssl/* 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim JagielskiUNAME=$(shell uname) 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC" && "$(CCNUMVER)">="000400060000" || "$(OS)"=="WNT" && "$(NASM_PATH)"=="NO_NASM_HOME" 64*b1cdbd2cSJim Jagielski NO_ASM="no-asm" 65*b1cdbd2cSJim Jagielski.ELSE 66*b1cdbd2cSJim Jagielski NO_ASM= 67*b1cdbd2cSJim Jagielski.ENDIF 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski.IF "$(OS)" == "LINUX" || "$(OS)" == "FREEBSD" 70*b1cdbd2cSJim Jagielski PATCH_FILES=openssllnx.patch 71*b1cdbd2cSJim Jagielski .IF "$(CPU)" == "I" 72*b1cdbd2cSJim Jagielski .IF "$(UNAME)" == "GNU/kFreeBSD" 73*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure debian-kfreebsd-i386 no-dso no-shared $(NO_ASM) 74*b1cdbd2cSJim Jagielski .ELIF "$(UNAME)" == "FreeBSD" 75*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure BSD-x86-elf no-dso no-shared $(NO_ASM) 76*b1cdbd2cSJim Jagielski .ELSE 77*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure linux-generic32 no-dso no-shared $(NO_ASM) 78*b1cdbd2cSJim Jagielski .ENDIF 79*b1cdbd2cSJim Jagielski .ELIF "$(BUILD64)" == "1" 80*b1cdbd2cSJim Jagielski .IF "$(UNAME)" == "GNU/kFreeBSD" 81*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure debian-kfreebsd-amd64 no-dso no-shared $(NO_ASM) 82*b1cdbd2cSJim Jagielski .ELIF "$(UNAME)" == "FreeBSD" 83*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure BSD-x86_64 no-dso no-shared $(NO_ASM) 84*b1cdbd2cSJim Jagielski .ELSE 85*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure linux-x86_64 no-dso no-shared $(NO_ASM) 86*b1cdbd2cSJim Jagielski .ENDIF 87*b1cdbd2cSJim Jagielski .ELSE 88*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure linux-generic32 no-dso no-shared $(NO_ASM) 89*b1cdbd2cSJim Jagielski .ENDIF 90*b1cdbd2cSJim Jagielski # if you build openssl as shared library you have to patch the Makefile.Shared "LD_LIBRARY_PATH=$$LD_LIBRARY_PATH \" 91*b1cdbd2cSJim Jagielski #BUILD_ACTION=make 'SHARED_LDFLAGS=-Wl,--version-script=./lib$$(SHLIBDIRS)_OOo_0_9_8e.map' 92*b1cdbd2cSJim Jagielski.ENDIF 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski.IF "$(OS)" == "SOLARIS" 95*b1cdbd2cSJim Jagielski PATCH_FILES=opensslsol.patch 96*b1cdbd2cSJim Jagielski #BUILD_ACTION=make 'SHARED_LDFLAGS=-G -dy -z text -M./lib$$$$$$$$(SHLIBDIRS)_OOo_0_9_8e.map' 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski # Use BUILD64 when 1 to select new specific 64bit Configurations if necessary 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski .IF "$(CPUNAME)" == "INTEL" # Solaris INTEL 101*b1cdbd2cSJim Jagielski .IF "$(CPU)" == "X" 102*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure solaris64-x86_64-cc 103*b1cdbd2cSJim Jagielski .ELSE 104*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure solaris-x86-cc 105*b1cdbd2cSJim Jagielski .ENDIF 106*b1cdbd2cSJim Jagielski .ELIF "$(CPU)" == "U" # Solaris SPARC 107*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure solaris64-sparcv9-cc 108*b1cdbd2cSJim Jagielski .ELSE 109*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=Configure solaris-sparcv9-cc 110*b1cdbd2cSJim Jagielski .ENDIF 111*b1cdbd2cSJim Jagielski.ENDIF 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski.IF "$(OS)" == "WNT" 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC" 116*b1cdbd2cSJim JagielskiPATCH_FILES=opensslmingw.patch 117*b1cdbd2cSJim Jagielski.IF "$(USE_MINGW)" == "cygwin" 118*b1cdbd2cSJim JagielskiCONFIGURE_ACTION=$(PERL) configure 119*b1cdbd2cSJim JagielskiCONFIGURE_FLAGS=mingw shared 120*b1cdbd2cSJim JagielskiINSTALL_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 121*b1cdbd2cSJim JagielskiOUT2LIB = libcrypto_static.* 122*b1cdbd2cSJim JagielskiOUT2LIB += libssl_static.* 123*b1cdbd2cSJim JagielskiOUT2LIB += libcrypto.* 124*b1cdbd2cSJim JagielskiOUT2LIB += libssl.* 125*b1cdbd2cSJim JagielskiOUT2BIN = ssleay32.dll 126*b1cdbd2cSJim JagielskiOUT2BIN += libeay32.dll 127*b1cdbd2cSJim Jagielski.ELSE 128*b1cdbd2cSJim JagielskiCONFIGURE_ACTION= 129*b1cdbd2cSJim JagielskiBUILD_ACTION=cmd /c "ms\mingw32" 130*b1cdbd2cSJim JagielskiOUT2LIB = out/libcrypto_static.* 131*b1cdbd2cSJim JagielskiOUT2LIB += out/libssl_static.* 132*b1cdbd2cSJim JagielskiOUT2LIB += out/libcrypto.* 133*b1cdbd2cSJim JagielskiOUT2LIB += out/libssl.* 134*b1cdbd2cSJim JagielskiOUT2BIN = out/ssleay32.dll 135*b1cdbd2cSJim JagielskiOUT2BIN += out/libeay32.dll 136*b1cdbd2cSJim Jagielski.ENDIF 137*b1cdbd2cSJim Jagielski.ELSE 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski PATCH_FILES=openssl.patch 140*b1cdbd2cSJim Jagielski .IF "$(MAKETARGETS)" == "" 141*b1cdbd2cSJim Jagielski # The env. vars CC and PERL are used by nmake, and nmake insists on '\'s 142*b1cdbd2cSJim Jagielski # If WRAPCMD is set it is prepended before the compiler, don't touch that. 143*b1cdbd2cSJim Jagielski .IF "$(WRAPCMD)"=="" 144*b1cdbd2cSJim Jagielski CC!:=$(subst,/,\ $(normpath,1 $(CC))) 145*b1cdbd2cSJim Jagielski .EXPORT : CC 146*b1cdbd2cSJim Jagielski .ENDIF 147*b1cdbd2cSJim Jagielski PERL_bak:=$(PERL) 148*b1cdbd2cSJim Jagielski PERL!:=$(subst,/,\ $(normpath,1 $(PERL))) 149*b1cdbd2cSJim Jagielski .EXPORT : PERL 150*b1cdbd2cSJim Jagielski PERL!:=$(PERL_bak) 151*b1cdbd2cSJim Jagielski .ENDIF 152*b1cdbd2cSJim Jagielski 153*b1cdbd2cSJim Jagielski #CONFIGURE_ACTION=cmd /c $(PERL:s!\!/!) configure 154*b1cdbd2cSJim Jagielski .IF "$(CPUNAME)"=="INTEL" 155*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=$(PERL) configure $(NO_ASM) 156*b1cdbd2cSJim Jagielski CONFIGURE_FLAGS=VC-WIN32 157*b1cdbd2cSJim Jagielski .IF "$(NASM_PATH)"=="NO_NASM_HOME" 158*b1cdbd2cSJim Jagielski BUILD_ACTION=cmd /c "ms$(EMQ)\do_ms.bat $(subst,/,\ $(normpath,1 $(PERL)))" && nmake -f ms/ntdll.mak 159*b1cdbd2cSJim Jagielski .ELSE 160*b1cdbd2cSJim Jagielski BUILD_ACTION=cmd /c "ms$(EMQ)\do_nasm.bat $(subst,/,\ $(normpath,1 $(PERL)))" && nmake -f ms/ntdll.mak 161*b1cdbd2cSJim Jagielski .ENDIF 162*b1cdbd2cSJim Jagielski .ELIF "$(CPUNAME)"=="X86_64" 163*b1cdbd2cSJim Jagielski CONFIGURE_ACTION=$(PERL) configure $(NO_ASM) 164*b1cdbd2cSJim Jagielski CONFIGURE_FLAGS=VC-WIN64A 165*b1cdbd2cSJim Jagielski BUILD_ACTION=cmd /c "ms$(EMQ)\do_win64a.bat $(subst,/,\ $(normpath,1 $(PERL)))" && cmd /c "nmake -f ms/ntdll.mak" 166*b1cdbd2cSJim Jagielski .ENDIF 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski OUT2LIB = out32dll$/ssleay32.lib 169*b1cdbd2cSJim Jagielski OUT2LIB += out32dll$/libeay32.lib 170*b1cdbd2cSJim Jagielski OUT2BIN = out32dll$/ssleay32.dll 171*b1cdbd2cSJim Jagielski OUT2BIN += out32dll$/libeay32.dll 172*b1cdbd2cSJim Jagielski OUT2INC = inc32$/openssl$/* 173*b1cdbd2cSJim Jagielski .ENDIF 174*b1cdbd2cSJim Jagielski.ENDIF 175*b1cdbd2cSJim Jagielski 176*b1cdbd2cSJim Jagielski#set INCLUDE=D:\sol_temp\n\msvc7net3\PlatformSDK\include;D:\sol_temp\n\msvc7net3\include\ && set path=%path%;D:\sol_temp\r\btw\SRC680\perl\bin && 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski# --- Targets ------------------------------------------------------ 179*b1cdbd2cSJim Jagielski 180*b1cdbd2cSJim Jagielski.INCLUDE : set_ext.mk 181*b1cdbd2cSJim Jagielski.INCLUDE : target.mk 182*b1cdbd2cSJim Jagielski.INCLUDE : tg_ext.mk 183*b1cdbd2cSJim Jagielski 184