blob: 4a6b5ce8b8b1fdbfb05c4312d3697af140b68c4a [file] [log] [blame]
Ralf S. Engelschalld56128f1999-03-22 14:45:08 +00001##
2## Makefile for OpenSSL
3##
4
Ulf Möller09739101999-04-28 16:16:31 +00005VERSION=
6MAJOR=
7MINOR=
Richard Levitteb436a982000-07-21 15:08:53 +00008SHLIB_VERSION_NUMBER=
9SHLIB_VERSION_HISTORY=
10SHLIB_MAJOR=
11SHLIB_MINOR=
Richard Levittea22fb392000-10-13 15:25:06 +000012SHLIB_EXT=
Ralf S. Engelschalld56128f1999-03-22 14:45:08 +000013PLATFORM=dist
Ulf Möller31ff97b1999-05-13 10:28:14 +000014OPTIONS=
Richard Levittec59cb512000-08-17 10:23:45 +000015CONFIGURE_ARGS=
Richard Levitteb436a982000-07-21 15:08:53 +000016SHLIB_TARGET=
17
Richard Levitte30c08f22002-12-15 05:59:13 +000018# HERE indicates where this Makefile lives. This can be used to indicate
19# where sub-Makefiles are expected to be. Currently has very limited usage,
20# and should probably not be bothered with at all.
21HERE=.
22
Bodo Möllere5f30451999-04-29 21:52:08 +000023# INSTALL_PREFIX is for package builders so that they can configure
24# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
25# Normally it is left empty.
26INSTALL_PREFIX=
Ulf Möller462ba4f1999-04-24 22:59:36 +000027INSTALLTOP=/usr/local/ssl
28
29# Do not edit this manually. Use Configure --openssldir=DIR do change this!
30OPENSSLDIR=/usr/local/ssl
Ralf S. Engelschalld56128f1999-03-22 14:45:08 +000031
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000032# NO_IDEA - Define to build without the IDEA algorithm
33# NO_RC4 - Define to build without the RC4 algorithm
34# NO_RC2 - Define to build without the RC2 algorithm
35# THREADS - Define when building with threads, you will probably also need any
Ralf S. Engelschall58964a41998-12-21 10:56:39 +000036# system defines as well, i.e. _REENTERANT for Solaris 2.[34]
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000037# TERMIO - Define the termio terminal subsystem, needed if sgtty is missing.
38# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
39# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
40# DEVRANDOM - Give this the value of the 'random device' if your OS supports
Ralf S. Engelschall58964a41998-12-21 10:56:39 +000041# one. 32 bytes will be read from this when the random
42# number generator is initalised.
Ralf S. Engelschallbaf748b1999-04-13 11:01:44 +000043# SSL_FORBID_ENULL - define if you want the server to be not able to use the
Ralf S. Engelschall58964a41998-12-21 10:56:39 +000044# NULL encryption ciphers.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000045#
46# LOCK_DEBUG - turns on lots of lock debug output :-)
47# REF_CHECK - turn on some xyz_free() assertions.
Ralf S. Engelschall58964a41998-12-21 10:56:39 +000048# REF_PRINT - prints some stuff on structure free.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000049# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
50# MFUNC - Make all Malloc/Free/Realloc calls call
Ralf S. Engelschall58964a41998-12-21 10:56:39 +000051# CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
52# call application defined callbacks via CRYPTO_set_mem_functions()
53# MD5_ASM needs to be defined to use the x86 assembler for MD5
54# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
55# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
Ralf S. Engelschalldfeab061998-12-21 11:00:56 +000056# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must
57# equal 4.
58# PKCS1_CHECK - pkcs1 tests.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000059
Andy Polyakov67ea9992005-02-06 13:23:34 +000060CC= cc
61CFLAG= -O
Ulf Möllerf5d7a031999-04-27 01:14:46 +000062DEPFLAG=
Richard Levittebc29d0e2001-03-22 21:20:54 +000063PEX_LIBS=
Ralf S. Engelschall651d0af1998-12-22 15:04:48 +000064EX_LIBS=
Richard Levitte967d95f2001-04-04 15:50:30 +000065EXE_EXT=
Richard Levitte179add22002-08-01 20:28:16 +000066ARFLAGS=
67AR=ar $(ARFLAGS) r
Ulf Möller99aab161999-04-01 12:34:33 +000068RANLIB= ranlib
Andy Polyakovcbfb39d2006-10-21 13:38:16 +000069NM= nm
Ulf Möller99aab161999-04-01 12:34:33 +000070PERL= perl
Richard Levitte2dbb3cc2000-02-24 01:59:55 +000071TAR= tar
Richard Levitte63977102000-09-21 07:15:52 +000072TARFLAGS= --no-recursion
Richard Levittecf1b7d92001-02-19 16:06:34 +000073MAKEDEPPROG=makedepend
Dr. Stephen Henson67275652009-08-10 14:48:40 +000074LIBDIR=lib
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000075
Andy Polyakov3cc9a892003-01-03 17:37:53 +000076# We let the C compiler driver to take care of .s files. This is done in
77# order to be excused from maintaining a separate set of architecture
78# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
79# gcc, then the driver will automatically translate it to -xarch=v8plus
80# and pass it down to assembler.
Dr. Stephen Henson5d439d62011-02-17 19:03:52 +000081#AS=$(CC) -c
Richard Levitte01fc8342003-05-29 22:20:47 +000082ASFLAG=$(CFLAG)
Andy Polyakov3cc9a892003-01-03 17:37:53 +000083
Andy Polyakov14e21f82004-07-26 20:18:55 +000084# For x86 assembler: Set PROCESSOR to 386 if you want to support
85# the 80386.
86PROCESSOR=
87
88# CPUID module collects small commonly used assembler snippets
89CPUID_OBJ=
Ralf S. Engelschalldfeab061998-12-21 11:00:56 +000090BN_ASM= bn_asm.o
Andy Polyakov6019cdd2014-08-30 19:22:51 +020091EC_ASM=
Andy Polyakov67ea9992005-02-06 13:23:34 +000092DES_ENC= des_enc.o fcrypt_b.o
Andy Polyakov0ddd3ea2007-08-28 21:02:38 +000093AES_ENC= aes_core.o aes_cbc.o
Andy Polyakov67ea9992005-02-06 13:23:34 +000094BF_ENC= bf_enc.o
95CAST_ENC= c_enc.o
96RC4_ENC= rc4_enc.o
97RC5_ENC= rc5_enc.o
98MD5_ASM_OBJ=
99SHA1_ASM_OBJ=
100RMD160_ASM_OBJ=
Andy Polyakoved266042005-12-16 12:55:33 +0000101WP_ASM_OBJ=
Andy Polyakov6a8517f2007-08-28 20:45:25 +0000102CMLL_ENC=
Andy Polyakov8a1c92c2010-04-22 21:36:26 +0000103MODES_ASM_OBJ=
Andy Polyakoved28aef2011-09-06 20:45:36 +0000104ENGINES_ASM_OBJ=
Andy Polyakovfa8e9212008-01-11 13:15:11 +0000105PERLASM_SCHEME=
Ralf S. Engelschall58964a41998-12-21 10:56:39 +0000106
Richard Levittef9b3bff2000-11-30 22:53:34 +0000107# KRB5 stuff
108KRB5_INCLUDES=
Richard Levittec1269c82003-02-14 13:12:00 +0000109LIBKRB5=
Richard Levittef9b3bff2000-11-30 22:53:34 +0000110
Dr. Stephen Hensonad2695b2005-12-05 13:46:46 +0000111# Zlib stuff
112ZLIB_INCLUDE=
113LIBZLIB=
114
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000115# This is the location of fipscanister.o and friends.
116# The FIPS module build will place it $(INSTALLTOP)/lib
117# but since $(INSTALLTOP) can only take the default value
118# when the module is built it will be in /usr/local/ssl/lib
Dr. Stephen Henson5084af282011-01-29 21:45:04 +0000119# $(INSTALLTOP) for this build may be different so hard
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000120# code the path.
121
122FIPSLIBDIR=/usr/local/ssl/$(LIBDIR)/
123
124# This is set to "y" if fipscanister.o is compiled internally as
125# opposed to coming from an external validated location.
126
127FIPSCANISTERINTERNAL=n
128
129# The location of the library which contains fipscanister.o
130# normally it will be libcrypto unless fipsdso is set in which
131# case it will be libfips. If not compiling in FIPS mode at all
132# this is empty making it a useful test for a FIPS compile.
133
134FIPSCANLIB=
135
136# Shared library base address. Currently only used on Windows.
137#
138
139BASEADDR=
140
141DIRS= crypto fips ssl engines apps test tools
Dr. Stephen Hensonef236ec2009-04-23 16:32:42 +0000142ENGDIRS= ccgost
Ulf Möller09739101999-04-28 16:16:31 +0000143SHLIBDIRS= crypto ssl
144
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000145# dirs in crypto to build
146SDIRS= \
Richard Levitted87b79b2003-11-29 09:19:12 +0000147 objects \
Andy Polyakovd1593e62005-11-28 20:09:58 +0000148 md2 md4 md5 sha mdc2 hmac ripemd whrlpool \
Andy Polyakov5d48a662008-12-23 11:33:01 +0000149 des aes rc2 rc4 rc5 idea bf cast camellia seed modes \
Andy Polyakov67ea9992005-02-06 13:23:34 +0000150 bn ec rsa dsa ecdsa dh ecdh dso engine \
Richard Levitted87b79b2003-11-29 09:19:12 +0000151 buffer bio stack lhash rand err \
Richard Levittea5db6fa2003-05-01 03:53:12 +0000152 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
Ben Laurieedc032b2011-03-12 17:01:19 +0000153 cms pqueue ts jpake srp store cmac
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000154# keep in mind that the above list is adjusted by ./Configure
155# according to no-xxx arguments...
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000156
Richard Levittef7774082000-11-12 20:24:30 +0000157# tests to perform. "alltests" is a special word indicating that all tests
158# should be performed.
159TESTS = alltests
160
Ben Laurie42ba5d22005-03-30 13:05:57 +0000161MAKEFILE= Makefile
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000162
Ulf Möllere1c55192000-02-15 18:34:46 +0000163MANDIR=$(OPENSSLDIR)/man
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000164MAN1=1
165MAN3=3
Richard Levitte1cc087f2003-04-21 22:00:36 +0000166MANSUFFIX=
Ulf Möller60cdb822006-04-11 21:09:57 +0000167HTMLSUFFIX=html
168HTMLDIR=$(OPENSSLDIR)/html
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000169SHELL=/bin/sh
170
Ralf S. Engelschall58964a41998-12-21 10:56:39 +0000171TOP= .
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000172ONEDIRS=out tmp
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000173EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
Ralf S. Engelschall58964a41998-12-21 10:56:39 +0000174WDIRS= windows
Richard Levitteb436a982000-07-21 15:08:53 +0000175LIBS= libcrypto.a libssl.a
Richard Levittea22fb392000-10-13 15:25:06 +0000176SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
177SHARED_SSL=libssl$(SHLIB_EXT)
178SHARED_LIBS=
179SHARED_LIBS_LINK_EXTS=
Richard Levittea5595fd2002-01-02 10:30:07 +0000180SHARED_LDFLAGS=
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000181
Ralf S. Engelschall58964a41998-12-21 10:56:39 +0000182GENERAL= Makefile
Ralf S. Engelschall9ce5db41998-12-23 07:58:53 +0000183BASENAME= openssl
Ralf S. Engelschall58964a41998-12-21 10:56:39 +0000184NAME= $(BASENAME)-$(VERSION)
185TARFILE= $(NAME).tar
186WTARFILE= $(NAME)-win.tar
Richard Levittecf1b7d92001-02-19 16:06:34 +0000187EXHEADER= e_os2.h
Ralf S. Engelschall58964a41998-12-21 10:56:39 +0000188HEADER= e_os.h
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000189
Richard Levitte0962fbb2005-07-05 05:14:17 +0000190all: Makefile build_all openssl.pc libssl.pc libcrypto.pc
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000191
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000192# as we stick to -e, CLEARENV ensures that local variables in lower
Andy Polyakova41b0aa2005-06-23 15:36:15 +0000193# Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn
194# shell, which [annoyingly enough] terminates unset with error if VAR
195# is not present:-( TOP= && unset TOP is tribute to HP-UX /bin/sh,
196# which terminates unset with error if no variable was present:-(
197CLEARENV= TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS} \
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000198 $${INCLUDE+INCLUDE} $${INCLUDES+INCLUDES} \
199 $${DIR+DIR} $${DIRS+DIRS} $${SRC+SRC} \
200 $${LIBSRC+LIBSRC} $${LIBOBJ+LIBOBJ} $${ALL+ALL} \
201 $${EXHEADER+EXHEADER} $${HEADER+HEADER} \
202 $${GENERAL+GENERAL} $${CFLAGS+CFLAGS} \
203 $${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS} \
Andy Polyakovdce1cc22012-04-19 06:39:40 +0000204 $${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} $${SCRIPTS+SCRIPTS} \
Andy Polyakov2f3c39b2005-06-26 17:47:44 +0000205 $${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS} \
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000206 $${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
207
Andy Polyakova3705372008-12-29 16:17:52 +0000208BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
209 CC='$(CC)' CFLAG='$(CFLAG)' \
Dr. Stephen Henson5d439d62011-02-17 19:03:52 +0000210 ASFLAG='$(CFLAG) -c' \
Andy Polyakova3705372008-12-29 16:17:52 +0000211 AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)' \
Dr. Stephen Henson34775922009-10-15 23:43:54 +0000212 CROSS_COMPILE='$(CROSS_COMPILE)' \
Dr. Stephen Hensonef236ec2009-04-23 16:32:42 +0000213 PERL='$(PERL)' ENGDIRS='$(ENGDIRS)' \
Dr. Stephen Henson67275652009-08-10 14:48:40 +0000214 SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/$(LIBDIR)' \
Andy Polyakova3705372008-12-29 16:17:52 +0000215 INSTALL_PREFIX='$(INSTALL_PREFIX)' \
216 INSTALLTOP='$(INSTALLTOP)' OPENSSLDIR='$(OPENSSLDIR)' \
Dr. Stephen Henson19c53142009-08-26 11:42:11 +0000217 LIBDIR='$(LIBDIR)' \
Andy Polyakova3705372008-12-29 16:17:52 +0000218 MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD $(MAKEDEPPROG)' \
219 DEPFLAG='-DOPENSSL_NO_DEPRECATED $(DEPFLAG)' \
220 MAKEDEPPROG='$(MAKEDEPPROG)' \
221 SHARED_LDFLAGS='$(SHARED_LDFLAGS)' \
222 KRB5_INCLUDES='$(KRB5_INCLUDES)' LIBKRB5='$(LIBKRB5)' \
Dr. Stephen Hensoncc7399e2009-04-07 16:33:26 +0000223 ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)' \
Andy Polyakova3705372008-12-29 16:17:52 +0000224 EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \
225 SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
226 PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \
Andy Polyakov6019cdd2014-08-30 19:22:51 +0200227 CPUID_OBJ='$(CPUID_OBJ)' BN_ASM='$(BN_ASM)' \
228 EC_ASM='$(EC_ASM)' DES_ENC='$(DES_ENC)' \
Andy Polyakova3705372008-12-29 16:17:52 +0000229 AES_ENC='$(AES_ENC)' CMLL_ENC='$(CMLL_ENC)' \
230 BF_ENC='$(BF_ENC)' CAST_ENC='$(CAST_ENC)' \
231 RC4_ENC='$(RC4_ENC)' RC5_ENC='$(RC5_ENC)' \
232 SHA1_ASM_OBJ='$(SHA1_ASM_OBJ)' \
233 MD5_ASM_OBJ='$(MD5_ASM_OBJ)' \
234 RMD160_ASM_OBJ='$(RMD160_ASM_OBJ)' \
235 WP_ASM_OBJ='$(WP_ASM_OBJ)' \
Andy Polyakov8a1c92c2010-04-22 21:36:26 +0000236 MODES_ASM_OBJ='$(MODES_ASM_OBJ)' \
Andy Polyakoved28aef2011-09-06 20:45:36 +0000237 ENGINES_ASM_OBJ='$(ENGINES_ASM_OBJ)' \
Andy Polyakova3705372008-12-29 16:17:52 +0000238 PERLASM_SCHEME='$(PERLASM_SCHEME)' \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000239 FIPSLIBDIR='${FIPSLIBDIR}' \
240 FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \
241 FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' \
242 FIPS_EX_OBJ='${FIPS_EX_OBJ}' \
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000243 THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
244# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
245# which in turn eliminates ambiguities in variable treatment with -e.
Andy Polyakovd0590fe2004-07-18 16:19:34 +0000246
Richard Levitteb4802832006-02-10 08:48:43 +0000247# BUILD_CMD is a generic macro to build a given target in a given
248# subdirectory. The target must be given through the shell variable
249# `target' and the subdirectory to build in must be given through `dir'.
250# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
251# BUILD_ONE_CMD instead.
252#
253# BUILD_ONE_CMD is a macro to build a given target in a given
254# subdirectory if that subdirectory is part of $(DIRS). It requires
255# exactly the same shell variables as BUILD_CMD.
256#
257# RECURSIVE_BUILD_CMD is a macro to build a given target in all
258# subdirectories defined in $(DIRS). It requires that the target
259# is given through the shell variable `target'.
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000260BUILD_CMD= if [ -d "$$dir" ]; then \
261 ( cd $$dir && echo "making $$target in $$dir..." && \
262 $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
263 ) || exit 1; \
264 fi
265RECURSIVE_BUILD_CMD=for dir in $(DIRS); do $(BUILD_CMD); done
Richard Levittef5ce5e12006-02-10 08:04:59 +0000266BUILD_ONE_CMD=\
Andy Polyakovb3b201b2008-12-30 13:20:17 +0000267 if expr " $(DIRS) " : ".* $$dir " >/dev/null 2>&1; then \
Richard Levittef5ce5e12006-02-10 08:04:59 +0000268 $(BUILD_CMD); \
269 fi
Richard Levitte88c80b32002-10-09 14:52:01 +0000270
Andy Polyakov734540f2005-05-15 23:53:34 +0000271reflect:
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000272 @[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)
Andy Polyakov734540f2005-05-15 23:53:34 +0000273
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000274FIPS_EX_OBJ= ../crypto/aes/aes_cfb.o \
275 ../crypto/aes/aes_ecb.o \
276 ../crypto/aes/aes_ofb.o \
277 ../crypto/bn/bn_add.o \
278 ../crypto/bn/bn_blind.o \
279 ../crypto/bn/bn_ctx.o \
280 ../crypto/bn/bn_div.o \
281 ../crypto/bn/bn_exp2.o \
282 ../crypto/bn/bn_exp.o \
283 ../crypto/bn/bn_gcd.o \
Dr. Stephen Hensonfe26d062011-02-14 17:14:55 +0000284 ../crypto/bn/bn_gf2m.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000285 ../crypto/bn/bn_lib.o \
286 ../crypto/bn/bn_mod.o \
287 ../crypto/bn/bn_mont.o \
288 ../crypto/bn/bn_mul.o \
Dr. Stephen Hensonfe26d062011-02-14 17:14:55 +0000289 ../crypto/bn/bn_nist.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000290 ../crypto/bn/bn_prime.o \
291 ../crypto/bn/bn_rand.o \
292 ../crypto/bn/bn_recp.o \
293 ../crypto/bn/bn_shift.o \
294 ../crypto/bn/bn_sqr.o \
295 ../crypto/bn/bn_word.o \
296 ../crypto/bn/bn_x931p.o \
297 ../crypto/buffer/buf_str.o \
Richard Levitte399aa6b2011-03-24 22:55:02 +0000298 ../crypto/cmac/cmac.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000299 ../crypto/cryptlib.o \
300 ../crypto/des/cfb64ede.o \
301 ../crypto/des/cfb64enc.o \
302 ../crypto/des/cfb_enc.o \
303 ../crypto/des/ecb3_enc.o \
304 ../crypto/des/ofb64ede.o \
305 ../crypto/des/fcrypt.o \
306 ../crypto/des/set_key.o \
307 ../crypto/dh/dh_check.o \
308 ../crypto/dh/dh_gen.o \
309 ../crypto/dh/dh_key.o \
310 ../crypto/dsa/dsa_gen.o \
311 ../crypto/dsa/dsa_key.o \
312 ../crypto/dsa/dsa_ossl.o \
Dr. Stephen Hensonfe26d062011-02-14 17:14:55 +0000313 ../crypto/ec/ec_curve.o \
314 ../crypto/ec/ec_cvt.o \
315 ../crypto/ec/ec_key.o \
316 ../crypto/ec/ec_lib.o \
317 ../crypto/ec/ecp_mont.o \
318 ../crypto/ec/ec_mult.o \
319 ../crypto/ec/ecp_nist.o \
320 ../crypto/ec/ecp_smpl.o \
321 ../crypto/ec/ec2_mult.o \
322 ../crypto/ec/ec2_smpl.o \
Dr. Stephen Henson8857b382011-03-09 23:44:06 +0000323 ../crypto/ecdh/ech_key.o \
324 ../crypto/ecdh/ech_ossl.o \
Dr. Stephen Hensonfe26d062011-02-14 17:14:55 +0000325 ../crypto/ecdsa/ecs_ossl.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000326 ../crypto/evp/e_aes.o \
327 ../crypto/evp/e_des3.o \
Dr. Stephen Henson9ebc37e2011-06-20 19:48:44 +0000328 ../crypto/evp/e_null.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000329 ../crypto/evp/m_sha1.o \
Dr. Stephen Hensonbce1af72011-06-01 14:07:32 +0000330 ../crypto/evp/m_dss1.o \
331 ../crypto/evp/m_dss.o \
332 ../crypto/evp/m_ecdsa.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000333 ../crypto/hmac/hmac.o \
Dr. Stephen Henson7a4ec192011-02-02 15:07:13 +0000334 ../crypto/modes/cbc128.o \
Dr. Stephen Henson23916812011-04-18 14:25:11 +0000335 ../crypto/modes/ccm128.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000336 ../crypto/modes/cfb128.o \
337 ../crypto/modes/ctr128.o \
Dr. Stephen Hensonf4001a02011-02-08 15:10:42 +0000338 ../crypto/modes/gcm128.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000339 ../crypto/modes/ofb128.o \
Dr. Stephen Henson114c8e22011-04-12 23:59:05 +0000340 ../crypto/modes/xts128.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000341 ../crypto/rsa/rsa_eay.o \
342 ../crypto/rsa/rsa_gen.o \
343 ../crypto/rsa/rsa_crpt.o \
344 ../crypto/rsa/rsa_none.o \
345 ../crypto/rsa/rsa_oaep.o \
346 ../crypto/rsa/rsa_pk1.o \
347 ../crypto/rsa/rsa_pss.o \
348 ../crypto/rsa/rsa_ssl.o \
349 ../crypto/rsa/rsa_x931.o \
Dr. Stephen Hensonc2a45932011-02-03 12:47:56 +0000350 ../crypto/rsa/rsa_x931g.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000351 ../crypto/sha/sha1dgst.o \
352 ../crypto/sha/sha256.o \
353 ../crypto/sha/sha512.o \
Dr. Stephen Hensond5df1b32011-01-27 14:50:41 +0000354 ../crypto/thr_id.o \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000355 ../crypto/uid.o
356
Richard Levitte4c821712002-10-09 15:03:21 +0000357sub_all: build_all
Richard Levitte88c80b32002-10-09 14:52:01 +0000358build_all: build_libs build_apps build_tests build_tools
359
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000360build_libs: build_crypto build_fips build_ssl build_engines
361
362build_fips:
363 @dir=fips; target=all; [ -z "$(FIPSCANLIB)" ] || $(BUILD_ONE_CMD)
Richard Levitte88c80b32002-10-09 14:52:01 +0000364
365build_crypto:
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000366 if [ -n "$(FIPSCANLIB)" ]; then \
Andy Polyakov6019cdd2014-08-30 19:22:51 +0200367 EXCL_OBJ='$(AES_ENC) $(BN_ASM) $(EC_ASM) $(DES_ENC) $(CPUID_OBJ) $(SHA1_ASM_OBJ) $(MODES_ASM_OBJ) $(FIPS_EX_OBJ)' ; export EXCL_OBJ ; \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000368 ARX='$(PERL) $${TOP}/util/arx.pl $(AR)' ; \
369 else \
370 ARX='${AR}' ; \
371 fi ; export ARX ; \
Dr. Stephen Henson5d439d62011-02-17 19:03:52 +0000372 if [ $(FIPSCANISTERINTERNAL) = "y" ]; then \
373 AS='$(PERL) $${TOP}/util/fipsas.pl $${TOP} $${<} $(CC) -c' ; \
374 else \
375 AS='$(CC) -c' ; \
376 fi ; export AS ; \
Dr. Stephen Henson1ab2f7f2011-01-26 12:31:30 +0000377 dir=crypto; target=all; $(BUILD_ONE_CMD)
Richard Levitte88c80b32002-10-09 14:52:01 +0000378build_ssl:
Richard Levittef5ce5e12006-02-10 08:04:59 +0000379 @dir=ssl; target=all; $(BUILD_ONE_CMD)
Richard Levitte506fec12002-10-11 18:51:29 +0000380build_engines:
Andy Polyakoved28aef2011-09-06 20:45:36 +0000381 @dir=engines; target=all; AS='$(CC) -c'; export AS; $(BUILD_ONE_CMD)
Richard Levitte88c80b32002-10-09 14:52:01 +0000382build_apps:
Richard Levittef5ce5e12006-02-10 08:04:59 +0000383 @dir=apps; target=all; $(BUILD_ONE_CMD)
Richard Levitte88c80b32002-10-09 14:52:01 +0000384build_tests:
Richard Levittef5ce5e12006-02-10 08:04:59 +0000385 @dir=test; target=all; $(BUILD_ONE_CMD)
Richard Levitte88c80b32002-10-09 14:52:01 +0000386build_tools:
Richard Levittef5ce5e12006-02-10 08:04:59 +0000387 @dir=tools; target=all; $(BUILD_ONE_CMD)
Richard Levitteba5477e2004-03-24 10:50:25 +0000388
389all_testapps: build_libs build_testapps
390build_testapps:
Richard Levittef5ce5e12006-02-10 08:04:59 +0000391 @dir=crypto; target=testapps; $(BUILD_ONE_CMD)
Richard Levitteb436a982000-07-21 15:08:53 +0000392
Dr. Stephen Henson225c2722011-01-30 01:14:34 +0000393libcrypto$(SHLIB_EXT): libcrypto.a build_fips
Richard Levittef4316c32000-07-24 20:36:46 +0000394 @if [ "$(SHLIB_TARGET)" != "" ]; then \
Dr. Stephen Henson225c2722011-01-30 01:14:34 +0000395 if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
396 FIPSLD_CC="$(CC)"; CC=fips/fipsld; \
397 export CC FIPSLD_CC; \
398 fi; \
Dr. Stephen Henson24e20db2014-02-03 14:10:24 +0000399 $(MAKE) -e SHLIBDIRS=crypto CC="$${CC:-$(CC)}" build-shared; \
Richard Levittef4316c32000-07-24 20:36:46 +0000400 else \
401 echo "There's no support for shared libraries on this platform" >&2; \
Andy Polyakovd0590fe2004-07-18 16:19:34 +0000402 exit 1; \
Richard Levittef4316c32000-07-24 20:36:46 +0000403 fi
Lutz Jänicke0f180d12002-01-28 16:30:06 +0000404
Richard Levittea22fb392000-10-13 15:25:06 +0000405libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
Richard Levittef4316c32000-07-24 20:36:46 +0000406 @if [ "$(SHLIB_TARGET)" != "" ]; then \
Richard Levitte5ddcb862001-03-15 22:10:07 +0000407 $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
Richard Levittef4316c32000-07-24 20:36:46 +0000408 else \
409 echo "There's no support for shared libraries on this platform" >&2; \
Andy Polyakovd0590fe2004-07-18 16:19:34 +0000410 exit 1; \
Richard Levittef4316c32000-07-24 20:36:46 +0000411 fi
Richard Levitteb436a982000-07-21 15:08:53 +0000412
413clean-shared:
Richard Levittecfd06a62003-10-31 06:58:24 +0000414 @set -e; for i in $(SHLIBDIRS); do \
Richard Levittea22fb392000-10-13 15:25:06 +0000415 if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
416 tmp="$(SHARED_LIBS_LINK_EXTS)"; \
417 for j in $${tmp:-x}; do \
418 ( set -x; rm -f lib$$i$$j ); \
419 done; \
420 fi; \
421 ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
Andy Polyakovb3ef7422013-09-15 21:59:25 +0200422 if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \
Richard Levitte1fe198b2002-02-13 14:44:33 +0000423 ( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
424 fi; \
Richard Levitteb436a982000-07-21 15:08:53 +0000425 done
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000426
Richard Levittea22fb392000-10-13 15:25:06 +0000427link-shared:
Andy Polyakova3705372008-12-29 16:17:52 +0000428 @ set -e; for i in $(SHLIBDIRS); do \
Andy Polyakov755c5b32005-10-25 21:58:59 +0000429 $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
Andy Polyakova3705372008-12-29 16:17:52 +0000430 LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
431 LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
Richard Levitte30afcc02002-10-11 00:37:11 +0000432 symlink.$(SHLIB_TARGET); \
433 libs="$$libs -l$$i"; \
Richard Levitte96f3b562000-08-02 03:03:17 +0000434 done
Richard Levitteb436a982000-07-21 15:08:53 +0000435
Richard Levitte30afcc02002-10-11 00:37:11 +0000436build-shared: do_$(SHLIB_TARGET) link-shared
Richard Levitte6b86bad2001-10-10 14:46:41 +0000437
Richard Levitte30afcc02002-10-11 00:37:11 +0000438do_$(SHLIB_TARGET):
Andy Polyakova3705372008-12-29 16:17:52 +0000439 @ set -e; libs='-L. $(SHLIBDEPS)'; for i in $(SHLIBDIRS); do \
Dr. Stephen Hensone0753412009-08-05 15:51:39 +0000440 if [ "$$i" = "ssl" -a -n "$(LIBKRB5)" ]; then \
Richard Levittec1269c82003-02-14 13:12:00 +0000441 libs="$(LIBKRB5) $$libs"; \
442 fi; \
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000443 $(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
Andy Polyakova3705372008-12-29 16:17:52 +0000444 LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
445 LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
Richard Levitte30afcc02002-10-11 00:37:11 +0000446 LIBDEPS="$$libs $(EX_LIBS)" \
447 link_a.$(SHLIB_TARGET); \
Richard Levittec1269c82003-02-14 13:12:00 +0000448 libs="-l$$i $$libs"; \
Richard Levittea3fffd62002-01-26 03:17:27 +0000449 done
450
Richard Levitte0962fbb2005-07-05 05:14:17 +0000451libcrypto.pc: Makefile
452 @ ( echo 'prefix=$(INSTALLTOP)'; \
453 echo 'exec_prefix=$${prefix}'; \
Dr. Stephen Henson67275652009-08-10 14:48:40 +0000454 echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
Richard Levitte0962fbb2005-07-05 05:14:17 +0000455 echo 'includedir=$${prefix}/include'; \
456 echo ''; \
457 echo 'Name: OpenSSL-libcrypto'; \
458 echo 'Description: OpenSSL cryptography library'; \
459 echo 'Version: '$(VERSION); \
460 echo 'Requires: '; \
Dr. Stephen Henson04296662012-02-12 18:47:47 +0000461 echo 'Libs: -L$${libdir} -lcrypto'; \
462 echo 'Libs.private: $(EX_LIBS)'; \
Richard Levitte0962fbb2005-07-05 05:14:17 +0000463 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
464
465libssl.pc: Makefile
466 @ ( echo 'prefix=$(INSTALLTOP)'; \
467 echo 'exec_prefix=$${prefix}'; \
Dr. Stephen Henson67275652009-08-10 14:48:40 +0000468 echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
Richard Levitte0962fbb2005-07-05 05:14:17 +0000469 echo 'includedir=$${prefix}/include'; \
470 echo ''; \
Mike Frysingere6479c72014-05-12 23:31:51 +0100471 echo 'Name: OpenSSL-libssl'; \
Richard Levitte0962fbb2005-07-05 05:14:17 +0000472 echo 'Description: Secure Sockets Layer and cryptography libraries'; \
473 echo 'Version: '$(VERSION); \
Mike Frysingere6479c72014-05-12 23:31:51 +0100474 echo 'Requires.private: libcrypto'; \
475 echo 'Libs: -L$${libdir} -lssl'; \
Dr. Stephen Henson04296662012-02-12 18:47:47 +0000476 echo 'Libs.private: $(EX_LIBS)'; \
Richard Levitte0962fbb2005-07-05 05:14:17 +0000477 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
478
Ben Laurie42ba5d22005-03-30 13:05:57 +0000479openssl.pc: Makefile
Richard Levitte56824b92002-11-06 23:35:00 +0000480 @ ( echo 'prefix=$(INSTALLTOP)'; \
481 echo 'exec_prefix=$${prefix}'; \
Dr. Stephen Henson67275652009-08-10 14:48:40 +0000482 echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
Richard Levitte56824b92002-11-06 23:35:00 +0000483 echo 'includedir=$${prefix}/include'; \
484 echo ''; \
485 echo 'Name: OpenSSL'; \
486 echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
487 echo 'Version: '$(VERSION); \
Mike Frysingere6479c72014-05-12 23:31:51 +0100488 echo 'Requires: libssl libcrypto' ) > openssl.pc
Richard Levitte56824b92002-11-06 23:35:00 +0000489
Ben Lauriec7199e62005-04-24 12:02:49 +0000490Makefile: Makefile.org Configure config
491 @echo "Makefile is older than Makefile.org, Configure or config."
Ulf Möller49b81421999-07-22 16:10:31 +0000492 @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
Ben Laurie9535d201999-01-24 18:15:00 +0000493 @false
494
Ralf S. Engelschalldfeab061998-12-21 11:00:56 +0000495libclean:
Andy Polyakovacb2f062011-11-12 11:57:54 +0000496 rm -f *.map *.so *.so.* *.dylib *.dll engines/*.so engines/*.dll engines/*.dylib *.a engines/*.a */lib */*/lib
Ralf S. Engelschalldfeab061998-12-21 11:00:56 +0000497
Richard Levitte7841edc2003-02-22 15:04:03 +0000498clean: libclean
Dr. Stephen Henson04319412009-10-15 17:17:45 +0000499 rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000500 @set -e; target=clean; $(RECURSIVE_BUILD_CMD)
Rich Salz34ccd242014-08-26 20:51:52 -0400501 rm -f $(LIBS) tags TAGS
Richard Levitte0962fbb2005-07-05 05:14:17 +0000502 rm -f openssl.pc libssl.pc libcrypto.pc
Richard Levitte7841edc2003-02-22 15:04:03 +0000503 rm -f speed.* .pure
Ralf S. Engelschallbb8f3c51999-03-06 12:32:06 +0000504 rm -f $(TARFILE)
Richard Levittecfd06a62003-10-31 06:58:24 +0000505 @set -e; for i in $(ONEDIRS) ;\
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000506 do \
Ralf S. Engelschallbb8f3c51999-03-06 12:32:06 +0000507 rm -fr $$i/*; \
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000508 done
509
510makefile.one: files
Ulf Möller99aab161999-04-01 12:34:33 +0000511 $(PERL) util/mk1mf.pl >makefile.one; \
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000512 sh util/do_ms.sh
513
Ulf Möllerbacad001999-04-08 15:19:36 +0000514files:
Ben Laurie42ba5d22005-03-30 13:05:57 +0000515 $(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000516 @set -e; target=files; $(RECURSIVE_BUILD_CMD)
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000517
518links:
Bodo Möller65767741999-06-07 13:33:50 +0000519 @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
Richard Levitte41d2a332001-02-22 14:45:02 +0000520 @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000521 @set -e; target=links; $(RECURSIVE_BUILD_CMD)
Dr. Stephen Henson620baec2011-02-21 17:45:45 +0000522 @if [ -z "$(FIPSCANLIB)" ]; then \
523 set -e; target=links; dir=fips ; $(BUILD_CMD) ; \
524 fi
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000525
Richard Levitte1cc67fa2002-07-23 13:31:04 +0000526gentests:
527 @(cd test && echo "generating dummy tests (if needed)..." && \
Andy Polyakova3705372008-12-29 16:17:52 +0000528 $(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on generate );
Richard Levitte1cc67fa2002-07-23 13:31:04 +0000529
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000530dclean:
Dr. Stephen Henson04319412009-10-15 17:17:45 +0000531 rm -rf *.bak include/openssl certs/.0
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000532 @set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000533
Dr. Stephen Henson04319412009-10-15 17:17:45 +0000534rehash: rehash.time
535rehash.time: certs apps
Dr. Stephen Henson34775922009-10-15 23:43:54 +0000536 @if [ -z "$(CROSS_COMPILE)" ]; then \
Dr. Stephen Henson04319412009-10-15 17:17:45 +0000537 (OPENSSL="`pwd`/util/opensslwrap.sh"; \
538 [ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \
539 OPENSSL_DEBUG_MEMORY=on; \
540 export OPENSSL OPENSSL_DEBUG_MEMORY; \
Ben Lauriefefc1112012-12-11 16:05:14 +0000541 $(PERL) tools/c_rehash certs/demo) && \
Dr. Stephen Henson04319412009-10-15 17:17:45 +0000542 touch rehash.time; \
543 else :; fi
544
Ralf S. Engelschall58964a41998-12-21 10:56:39 +0000545test: tests
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000546
Dr. Stephen Henson04319412009-10-15 17:17:45 +0000547tests: rehash
Ralf S. Engelschallbb8f3c51999-03-06 12:32:06 +0000548 @(cd test && echo "testing..." && \
Dr. Stephen Henson220bd842009-04-06 15:22:01 +0000549 $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf tests );
550 OPENSSL_CONF=apps/openssl.cnf util/opensslwrap.sh version -a
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000551
Ulf Möllerd7f0ab52000-02-23 23:47:05 +0000552report:
553 @$(PERL) util/selftest.pl
554
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000555depend:
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000556 @set -e; target=depend; $(RECURSIVE_BUILD_CMD)
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000557
558lint:
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000559 @set -e; target=lint; $(RECURSIVE_BUILD_CMD)
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000560
Rich Salz34ccd242014-08-26 20:51:52 -0400561tags TAGS: FORCE
562 rm -f TAGS tags
563 -ctags -R .
564 -etags -R .
565
566FORCE:
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000567
568errors:
Dr. Stephen Henson797c61a2012-04-22 13:25:51 +0000569 $(PERL) util/ck_errf.pl -strict */*.c */*/*.c
Bodo Möllerf6485902001-01-10 16:40:30 +0000570 $(PERL) util/mkerr.pl -recurse -write
Richard Levitte506fec12002-10-11 18:51:29 +0000571 (cd engines; $(MAKE) PERL=$(PERL) errors)
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000572
Dr. Stephen Hensona6fbcb42007-09-07 13:25:15 +0000573stacks:
574 $(PERL) util/mkstack.pl -write
575
Bodo Möller7740a1c1999-06-09 16:18:53 +0000576util/libeay.num::
Bodo Möllerf6485902001-01-10 16:40:30 +0000577 $(PERL) util/mkdef.pl crypto update
Bodo Möller7740a1c1999-06-09 16:18:53 +0000578
579util/ssleay.num::
Bodo Möllerf6485902001-01-10 16:40:30 +0000580 $(PERL) util/mkdef.pl ssl update
Bodo Möller7740a1c1999-06-09 16:18:53 +0000581
Bodo Möller1d008002001-03-06 08:58:38 +0000582crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h
Bodo Möllerf6485902001-01-10 16:40:30 +0000583 $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
Bodo Möller03574222001-03-13 16:30:09 +0000584crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num
Bodo Möllerf6485902001-01-10 16:40:30 +0000585 $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
Richard Levittea19c9f12006-04-19 06:45:06 +0000586crypto/objects/obj_xref.h: crypto/objects/objxref.pl crypto/objects/obj_xref.txt crypto/objects/obj_mac.num
Dr. Stephen Hensonaaa29f92009-02-10 13:03:31 +0000587 $(PERL) crypto/objects/objxref.pl crypto/objects/obj_mac.num crypto/objects/obj_xref.txt >crypto/objects/obj_xref.h
Ulf Möller49e747e1999-09-29 21:03:02 +0000588
Richard Levitte2faa9302004-05-13 21:38:26 +0000589apps/openssl-vms.cnf: apps/openssl.cnf
590 $(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
591
Richard Levitte11cd2392005-06-20 04:29:50 +0000592crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl
593 $(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h
594
595
Bodo Möller62c419d1999-06-09 21:13:30 +0000596TABLE: Configure
Bodo Möller2330e181999-06-09 23:13:03 +0000597 (echo 'Output of `Configure TABLE'"':"; \
Bodo Möllerf6485902001-01-10 16:40:30 +0000598 $(PERL) Configure TABLE) > TABLE
Bodo Möller7740a1c1999-06-09 16:18:53 +0000599
Dr. Stephen Hensona6fbcb42007-09-07 13:25:15 +0000600update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h crypto/objects/obj_xref.h apps/openssl-vms.cnf crypto/bn/bn_prime.h TABLE depend
Bodo Möller7740a1c1999-06-09 16:18:53 +0000601
Lutz Jänickef9de8442002-06-12 12:26:34 +0000602# Build distribution tar-file. As the list of files returned by "find" is
603# pretty long, on several platforms a "too many arguments" error or similar
604# would occur. Therefore the list of files is temporarily stored into a file
605# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
606# tar does not support the --files-from option.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000607tar:
Lutz Jänicke756b9a02002-11-11 08:57:04 +0000608 find . -type d -print | xargs chmod 755
609 find . -type f -print | xargs chmod a+r
610 find . -type f -perm -0100 -print | xargs chmod a+x
Lutz Jänickef9de8442002-06-12 12:26:34 +0000611 find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \
612 $(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
Ralf S. Engelschall5a061121999-03-08 12:17:53 +0000613 tardy --user_number=0 --user_name=openssl \
Ralf S. Engelschall9ce5db41998-12-23 07:58:53 +0000614 --group_number=0 --group_name=openssl \
615 --prefix=openssl-$(VERSION) - |\
Ralf S. Engelschall651d0af1998-12-22 15:04:48 +0000616 gzip --best >../$(TARFILE).gz; \
Lutz Jänickef9de8442002-06-12 12:26:34 +0000617 rm -f ../$(TARFILE).list; \
Ralf S. Engelschall651d0af1998-12-22 15:04:48 +0000618 ls -l ../$(TARFILE).gz
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000619
Richard Levitte41d2a332001-02-22 14:45:02 +0000620tar-snap:
621 @$(TAR) $(TARFLAGS) -cvf - \
Richard Levitte3a7cef32002-04-13 12:28:44 +0000622 `find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \! -name '*test' \! -name '.#*' \! -name '*~' | sort` |\
Richard Levitte41d2a332001-02-22 14:45:02 +0000623 tardy --user_number=0 --user_name=openssl \
624 --group_number=0 --group_name=openssl \
625 --prefix=openssl-$(VERSION) - > ../$(TARFILE);\
626 ls -l ../$(TARFILE)
627
Ralf S. Engelschall58964a41998-12-21 10:56:39 +0000628dist:
Ulf Möller99aab161999-04-01 12:34:33 +0000629 $(PERL) Configure dist
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000630 @$(MAKE) dist_pem_h
Andy Polyakova3705372008-12-29 16:17:52 +0000631 @$(MAKE) SDIRS='$(SDIRS)' clean
632 @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000633
634dist_pem_h:
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000635 (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000636
Richard Levitte28a80032004-06-28 22:01:37 +0000637install: all install_docs install_sw
638
639install_sw:
Bodo Möllerf0588881999-06-08 10:18:19 +0000640 @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
Dr. Stephen Henson67275652009-08-10 14:48:40 +0000641 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
642 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
643 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
Bodo Möllerf0588881999-06-08 10:18:19 +0000644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
645 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
646 $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
Richard Levitte8d472bd2004-05-06 09:46:41 +0000647 $(INSTALL_PREFIX)$(OPENSSLDIR)/private
Richard Levittea2ac4292004-11-02 23:55:01 +0000648 @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
Bodo Möller2a4a0a31999-05-15 13:24:16 +0000649 do \
650 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
651 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
652 done;
Andy Polyakov02c31fa2005-06-23 00:03:26 +0000653 @set -e; target=install; $(RECURSIVE_BUILD_CMD)
Andy Polyakovd341e402011-08-16 08:56:07 +0000654 @set -e; liblist="$(LIBS)"; for i in $$liblist ;\
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000655 do \
Richard Levitteb436a982000-07-21 15:08:53 +0000656 if [ -f "$$i" ]; then \
657 ( echo installing $$i; \
Dr. Stephen Henson67275652009-08-10 14:48:40 +0000658 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
659 $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
660 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
661 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i ); \
Lutz Jänicke2c975b52002-05-07 15:35:48 +0000662 fi; \
663 done;
Richard Levittecfd06a62003-10-31 06:58:24 +0000664 @set -e; if [ -n "$(SHARED_LIBS)" ]; then \
Richard Levittea22fb392000-10-13 15:25:06 +0000665 tmp="$(SHARED_LIBS)"; \
666 for i in $${tmp:-x}; \
667 do \
Richard Levitte1fe198b2002-02-13 14:44:33 +0000668 if [ -f "$$i" -o -f "$$i.a" ]; then \
Richard Levittea22fb392000-10-13 15:25:06 +0000669 ( echo installing $$i; \
Andy Polyakov65370f92014-02-28 22:54:40 +0100670 if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \
Richard Levitte447aa492005-05-21 16:41:34 +0000671 c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
Richard Levitte7104c372002-10-04 13:43:43 +0000672 cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
673 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
Richard Levitte30c08f22002-12-15 05:59:13 +0000674 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
Dr. Stephen Henson67275652009-08-10 14:48:40 +0000675 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
676 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
677 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
Andy Polyakov65370f92014-02-28 22:54:40 +0100678 else \
679 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
680 chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
681 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
Richard Levitte1fe198b2002-02-13 14:44:33 +0000682 fi ); \
Lutz Jänicke4c1a6e02008-04-17 10:19:16 +0000683 if expr $(PLATFORM) : 'mingw' > /dev/null; then \
684 ( case $$i in \
685 *crypto*) i=libeay32.dll;; \
686 *ssl*) i=ssleay32.dll;; \
687 esac; \
688 echo installing $$i; \
689 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
690 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
691 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
692 fi; \
Lutz Jänicke2c975b52002-05-07 15:35:48 +0000693 fi; \
Richard Levittea22fb392000-10-13 15:25:06 +0000694 done; \
695 ( here="`pwd`"; \
Dr. Stephen Henson72a97762010-01-16 20:05:59 +0000696 cd $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR); \
Andy Polyakov4c3a2d62005-04-30 21:39:39 +0000697 $(MAKE) -f $$here/Makefile HERE="$$here" link-shared ); \
Richard Levittee68cb952003-01-10 16:14:32 +0000698 if [ "$(INSTALLTOP)" != "/usr" ]; then \
699 echo 'OpenSSL shared libraries have been installed in:'; \
700 echo ' $(INSTALLTOP)'; \
701 echo ''; \
Richard Levittec0cc5c32003-01-10 16:32:32 +0000702 sed -e '1,/^$$/d' doc/openssl-shared.txt; \
Richard Levittee68cb952003-01-10 16:14:32 +0000703 fi; \
Richard Levittea22fb392000-10-13 15:25:06 +0000704 fi
Dr. Stephen Henson67275652009-08-10 14:48:40 +0000705 cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
706 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc
707 cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
708 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc
709 cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
710 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
Bodo Möllere6e7b5f2000-02-11 16:25:44 +0000711
Ulf Möller60cdb822006-04-11 21:09:57 +0000712install_html_docs:
713 here="`pwd`"; \
Jim Reid82d91852014-08-29 12:07:42 -0400714 filecase=; \
Rich Salz457f7b12014-08-30 10:18:51 -0400715 case "$(PLATFORM)" in DJGPP|Cygwin*|mingw*|darwin*-*-cc) \
Jim Reid82d91852014-08-29 12:07:42 -0400716 filecase=-i; \
717 esac; \
Ulf Möller60cdb822006-04-11 21:09:57 +0000718 for subdir in apps crypto ssl; do \
719 mkdir -p $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
720 for i in doc/$$subdir/*.pod; do \
721 fn=`basename $$i .pod`; \
722 echo "installing html/$$fn.$(HTMLSUFFIX)"; \
723 cat $$i \
724 | sed -r 's/L<([^)]*)(\([0-9]\))?\|([^)]*)(\([0-9]\))?>/L<\1|\3>/g' \
Matt Caswell690a2b12014-08-13 00:28:03 -0400725 | pod2html --podroot=doc --htmlroot=.. --podpath=$$subdir:apps:crypto:ssl \
Ulf Möller60cdb822006-04-11 21:09:57 +0000726 | sed -r 's/<!DOCTYPE.*//g' \
727 > $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir/$$fn.$(HTMLSUFFIX); \
728 $(PERL) util/extract-names.pl < $$i | \
729 grep -v $$filecase "^$$fn\$$" | \
730 (cd $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
731 while read n; do \
Dr. Stephen Henson220bd842009-04-06 15:22:01 +0000732 PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$(HTMLSUFFIX) "$$n".$(HTMLSUFFIX); \
Ulf Möller60cdb822006-04-11 21:09:57 +0000733 done); \
734 done; \
735 done
736
Bodo Möllere6e7b5f2000-02-11 16:25:44 +0000737install_docs:
738 @$(PERL) $(TOP)/util/mkdir-p.pl \
Ulf Möllere1c55192000-02-15 18:34:46 +0000739 $(INSTALL_PREFIX)$(MANDIR)/man1 \
740 $(INSTALL_PREFIX)$(MANDIR)/man3 \
741 $(INSTALL_PREFIX)$(MANDIR)/man5 \
742 $(INSTALL_PREFIX)$(MANDIR)/man7
Dr. Stephen Henson89e56ae2010-01-27 16:07:17 +0000743 @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
Richard Levitteec9f67f2002-12-15 06:45:43 +0000744 here="`pwd`"; \
745 filecase=; \
Rich Salz457f7b12014-08-30 10:18:51 -0400746 case "$(PLATFORM)" in DJGPP|Cygwin*|mingw*|darwin*-*-cc) \
Richard Levitteec9f67f2002-12-15 06:45:43 +0000747 filecase=-i; \
Andy Polyakovb3ef7422013-09-15 21:59:25 +0200748 esac; \
Richard Levittecfd06a62003-10-31 06:58:24 +0000749 set -e; for i in doc/apps/*.pod; do \
Richard Levittec6ce7922000-02-14 16:55:23 +0000750 fn=`basename $$i .pod`; \
Dr. Stephen Henson401ee372004-11-25 17:47:31 +0000751 sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
Richard Levitte1cc087f2003-04-21 22:00:36 +0000752 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
Richard Levitted13363a2002-06-05 14:10:59 +0000753 (cd `$(PERL) util/dirname.pl $$i`; \
Bodo Möller623e9e62002-08-14 14:04:24 +0000754 sh -c "$$pod2man \
Richard Levitte29622432002-05-30 15:19:43 +0000755 --section=$$sec --center=OpenSSL \
756 --release=$(VERSION) `basename $$i`") \
Richard Levitte1cc087f2003-04-21 22:00:36 +0000757 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
Richard Levitteec9f67f2002-12-15 06:45:43 +0000758 $(PERL) util/extract-names.pl < $$i | \
Richard Levittef6098f22005-06-19 20:31:15 +0000759 (grep -v $$filecase "^$$fn\$$"; true) | \
760 (grep -v "[ ]"; true) | \
Richard Levitteec9f67f2002-12-15 06:45:43 +0000761 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
762 while read n; do \
Dr. Stephen Henson220bd842009-04-06 15:22:01 +0000763 PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
Richard Levitteec9f67f2002-12-15 06:45:43 +0000764 done); \
Richard Levittef6f99612002-08-01 21:52:56 +0000765 done; \
Richard Levittecfd06a62003-10-31 06:58:24 +0000766 set -e; for i in doc/crypto/*.pod doc/ssl/*.pod; do \
Richard Levittec6ce7922000-02-14 16:55:23 +0000767 fn=`basename $$i .pod`; \
Dr. Stephen Henson401ee372004-11-25 17:47:31 +0000768 sec=`$(PERL) util/extract-section.pl 3 < $$i`; \
Richard Levitte1cc087f2003-04-21 22:00:36 +0000769 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
Richard Levitted13363a2002-06-05 14:10:59 +0000770 (cd `$(PERL) util/dirname.pl $$i`; \
Bodo Möller623e9e62002-08-14 14:04:24 +0000771 sh -c "$$pod2man \
Richard Levitte29622432002-05-30 15:19:43 +0000772 --section=$$sec --center=OpenSSL \
773 --release=$(VERSION) `basename $$i`") \
Richard Levitte1cc087f2003-04-21 22:00:36 +0000774 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
Richard Levitteec9f67f2002-12-15 06:45:43 +0000775 $(PERL) util/extract-names.pl < $$i | \
Richard Levittef6098f22005-06-19 20:31:15 +0000776 (grep -v $$filecase "^$$fn\$$"; true) | \
777 (grep -v "[ ]"; true) | \
Richard Levitteec9f67f2002-12-15 06:45:43 +0000778 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
779 while read n; do \
Dr. Stephen Henson220bd842009-04-06 15:22:01 +0000780 PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
Richard Levitteec9f67f2002-12-15 06:45:43 +0000781 done); \
Richard Levittec6ce7922000-02-14 16:55:23 +0000782 done
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000783
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +0000784# DO NOT DELETE THIS LINE -- make depend depends on it.