xref: /aoo4110/main/openssl/makefile.mk (revision b1cdbd2c)
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