The data contained in this repository can be downloaded to your computer using one of several clients.
Please see the documentation of your version control software client for more information.

Please select the desired protocol below to get the URL.

This URL has Read-Only access.

Statistics
| Branch: | Revision:

main_repo / deps / openssl / openssl / Makefile.bak @ aa3b4b4d

History | View | Annotate | Download (24.1 KB)

1
### Generated automatically from Makefile.org by Configure.
2

    
3
##
4
## Makefile for OpenSSL
5
##
6

    
7
VERSION=1.0.1i-dev
8
MAJOR=1
9
MINOR=0.1
10
SHLIB_VERSION_NUMBER=1.0.0
11
SHLIB_VERSION_HISTORY=
12
SHLIB_MAJOR=1
13
SHLIB_MINOR=0.0
14
SHLIB_EXT=
15
PLATFORM=gcc
16
OPTIONS= no-ec_nistp_64_gcc_128 no-gmp no-jpake no-krb5 no-md2 no-rc5 no-rfc3779 no-sctp no-shared no-store no-unit-test no-zlib no-zlib-dynamic static-engine
17
CONFIGURE_ARGS=gcc
18
SHLIB_TARGET=
19

    
20
# HERE indicates where this Makefile lives.  This can be used to indicate
21
# where sub-Makefiles are expected to be.  Currently has very limited usage,
22
# and should probably not be bothered with at all.
23
HERE=.
24

    
25
# INSTALL_PREFIX is for package builders so that they can configure
26
# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
27
# Normally it is left empty.
28
INSTALL_PREFIX=
29
INSTALLTOP=/usr/local/ssl
30

    
31
# Do not edit this manually. Use Configure --openssldir=DIR do change this!
32
OPENSSLDIR=/usr/local/ssl
33

    
34
# NO_IDEA - Define to build without the IDEA algorithm
35
# NO_RC4  - Define to build without the RC4 algorithm
36
# NO_RC2  - Define to build without the RC2 algorithm
37
# THREADS - Define when building with threads, you will probably also need any
38
#           system defines as well, i.e. _REENTERANT for Solaris 2.[34]
39
# TERMIO  - Define the termio terminal subsystem, needed if sgtty is missing.
40
# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
41
# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
42
# DEVRANDOM - Give this the value of the 'random device' if your OS supports
43
#           one.  32 bytes will be read from this when the random
44
#           number generator is initalised.
45
# SSL_FORBID_ENULL - define if you want the server to be not able to use the
46
#           NULL encryption ciphers.
47
#
48
# LOCK_DEBUG - turns on lots of lock debug output :-)
49
# REF_CHECK - turn on some xyz_free() assertions.
50
# REF_PRINT - prints some stuff on structure free.
51
# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
52
# MFUNC - Make all Malloc/Free/Realloc calls call
53
#       CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
54
#       call application defined callbacks via CRYPTO_set_mem_functions()
55
# MD5_ASM needs to be defined to use the x86 assembler for MD5
56
# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
57
# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
58
# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8.  It must
59
# equal 4.
60
# PKCS1_CHECK - pkcs1 tests.
61

    
62
CC= gcc
63
CFLAG= -O3
64
DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST
65
PEX_LIBS= 
66
EX_LIBS= 
67
EXE_EXT= 
68
ARFLAGS= 
69
AR= ar $(ARFLAGS) r
70
RANLIB= /usr/bin/ranlib
71
NM= nm
72
PERL= /usr/bin/perl
73
TAR= tar
74
TARFLAGS= --no-recursion --record-size=10240
75
MAKEDEPPROG= gcc
76
LIBDIR=lib
77

    
78
# We let the C compiler driver to take care of .s files. This is done in
79
# order to be excused from maintaining a separate set of architecture
80
# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
81
# gcc, then the driver will automatically translate it to -xarch=v8plus
82
# and pass it down to assembler.
83
AS=$(CC) -c
84
ASFLAG=$(CFLAG)
85

    
86
# For x86 assembler: Set PROCESSOR to 386 if you want to support
87
# the 80386.
88
PROCESSOR= 
89

    
90
# CPUID module collects small commonly used assembler snippets
91
CPUID_OBJ= mem_clr.o
92
BN_ASM= bn_asm.o
93
DES_ENC= des_enc.o fcrypt_b.o
94
AES_ENC= aes_core.o aes_cbc.o
95
BF_ENC= bf_enc.o
96
CAST_ENC= c_enc.o
97
RC4_ENC= rc4_enc.o rc4_skey.o
98
RC5_ENC= rc5_enc.o
99
MD5_ASM_OBJ= 
100
SHA1_ASM_OBJ= 
101
RMD160_ASM_OBJ= 
102
WP_ASM_OBJ= wp_block.o
103
CMLL_ENC= camellia.o cmll_misc.o cmll_cbc.o
104
MODES_ASM_OBJ= 
105
ENGINES_ASM_OBJ= 
106
PERLASM_SCHEME= 
107

    
108
# KRB5 stuff
109
KRB5_INCLUDES=
110
LIBKRB5=
111

    
112
# Zlib stuff
113
ZLIB_INCLUDE=
114
LIBZLIB=
115

    
116
# TOP level FIPS install directory.
117
FIPSDIR=/usr/local/ssl/fips-2.0
118

    
119
# This is the location of fipscanister.o and friends.
120
# The FIPS module build will place it $(INSTALLTOP)/lib
121
# but since $(INSTALLTOP) can only take the default value
122
# when the module is built it will be in /usr/local/ssl/lib
123
# $(INSTALLTOP) for this build may be different so hard
124
# code the path.
125

    
126
FIPSLIBDIR=
127

    
128
# The location of the library which contains fipscanister.o
129
# normally it will be libcrypto unless fipsdso is set in which
130
# case it will be libfips. If not compiling in FIPS mode at all
131
# this is empty making it a useful test for a FIPS compile.
132

    
133
FIPSCANLIB=
134

    
135
# Shared library base address. Currently only used on Windows.
136
#
137

    
138
BASEADDR=0xFB00000
139

    
140
DIRS=   crypto ssl engines apps test tools
141
ENGDIRS= ccgost
142
SHLIBDIRS= crypto ssl
143

    
144
# dirs in crypto to build
145
SDIRS=  \
146
	objects \
147
	md4 md5 sha mdc2 hmac ripemd whrlpool \
148
	des aes rc2 rc4 idea bf cast camellia seed modes \
149
	bn ec rsa dsa ecdsa dh ecdh dso engine \
150
	buffer bio stack lhash rand err \
151
	evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
152
	cms pqueue ts srp cmac
153
# keep in mind that the above list is adjusted by ./Configure
154
# according to no-xxx arguments...
155

    
156
# tests to perform.  "alltests" is a special word indicating that all tests
157
# should be performed.
158
TESTS = alltests
159

    
160
MAKEFILE= Makefile
161

    
162
MANDIR=$(OPENSSLDIR)/man
163
MAN1=1
164
MAN3=3
165
MANSUFFIX=
166
HTMLSUFFIX=html
167
HTMLDIR=$(OPENSSLDIR)/html
168
SHELL=/bin/sh
169

    
170
TOP=    .
171
ONEDIRS=out tmp
172
EDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep VMS
173
WDIRS=  windows
174
LIBS=   libcrypto.a libssl.a
175
SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
176
SHARED_SSL=libssl$(SHLIB_EXT)
177
SHARED_LIBS=
178
SHARED_LIBS_LINK_EXTS=
179
SHARED_LDFLAGS=
180

    
181
GENERAL=        Makefile
182
BASENAME=       openssl
183
NAME=           $(BASENAME)-$(VERSION)
184
TARFILE=        $(NAME).tar
185
WTARFILE=       $(NAME)-win.tar
186
EXHEADER=       e_os2.h
187
HEADER=         e_os.h
188

    
189
all: Makefile build_all openssl.pc libssl.pc libcrypto.pc
190

    
191
# as we stick to -e, CLEARENV ensures that local variables in lower
192
# Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn
193
# shell, which [annoyingly enough] terminates unset with error if VAR
194
# is not present:-( TOP= && unset TOP is tribute to HP-UX /bin/sh,
195
# which terminates unset with error if no variable was present:-(
196
CLEARENV=	TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS}	\
197
		$${INCLUDE+INCLUDE} $${INCLUDES+INCLUDES}	\
198
		$${DIR+DIR} $${DIRS+DIRS} $${SRC+SRC}		\
199
		$${LIBSRC+LIBSRC} $${LIBOBJ+LIBOBJ} $${ALL+ALL}	\
200
		$${EXHEADER+EXHEADER} $${HEADER+HEADER}		\
201
		$${GENERAL+GENERAL} $${CFLAGS+CFLAGS}		\
202
		$${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS}		\
203
		$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} $${SCRIPTS+SCRIPTS}	\
204
		$${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS}	\
205
		$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
206

    
207
BUILDENV=	PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
208
		CC='$(CC)' CFLAG='$(CFLAG)' 			\
209
		AS='$(CC)' ASFLAG='$(CFLAG) -c'			\
210
		AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)'	\
211
		CROSS_COMPILE='$(CROSS_COMPILE)'	\
212
		PERL='$(PERL)' ENGDIRS='$(ENGDIRS)'		\
213
		SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/$(LIBDIR)'	\
214
		INSTALL_PREFIX='$(INSTALL_PREFIX)'		\
215
		INSTALLTOP='$(INSTALLTOP)' OPENSSLDIR='$(OPENSSLDIR)'	\
216
		LIBDIR='$(LIBDIR)'				\
217
		MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD $(MAKEDEPPROG)' \
218
		DEPFLAG='-DOPENSSL_NO_DEPRECATED $(DEPFLAG)'	\
219
		MAKEDEPPROG='$(MAKEDEPPROG)'			\
220
		SHARED_LDFLAGS='$(SHARED_LDFLAGS)'		\
221
		KRB5_INCLUDES='$(KRB5_INCLUDES)' LIBKRB5='$(LIBKRB5)'	\
222
		ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)'	\
223
		EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)'	\
224
		SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)'	\
225
		PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)'	\
226
		CPUID_OBJ='$(CPUID_OBJ)'			\
227
		BN_ASM='$(BN_ASM)' DES_ENC='$(DES_ENC)' 	\
228
		AES_ENC='$(AES_ENC)' CMLL_ENC='$(CMLL_ENC)'	\
229
		BF_ENC='$(BF_ENC)' CAST_ENC='$(CAST_ENC)'	\
230
		RC4_ENC='$(RC4_ENC)' RC5_ENC='$(RC5_ENC)'	\
231
		SHA1_ASM_OBJ='$(SHA1_ASM_OBJ)'			\
232
		MD5_ASM_OBJ='$(MD5_ASM_OBJ)'			\
233
		RMD160_ASM_OBJ='$(RMD160_ASM_OBJ)'		\
234
		WP_ASM_OBJ='$(WP_ASM_OBJ)'			\
235
		MODES_ASM_OBJ='$(MODES_ASM_OBJ)'		\
236
		ENGINES_ASM_OBJ='$(ENGINES_ASM_OBJ)'		\
237
		PERLASM_SCHEME='$(PERLASM_SCHEME)'		\
238
		FIPSLIBDIR='${FIPSLIBDIR}'			\
239
		FIPSDIR='${FIPSDIR}'				\
240
		FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}"	\
241
		THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
242
# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
243
# which in turn eliminates ambiguities in variable treatment with -e.
244

    
245
# BUILD_CMD is a generic macro to build a given target in a given
246
# subdirectory.  The target must be given through the shell variable
247
# `target' and the subdirectory to build in must be given through `dir'.
248
# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
249
# BUILD_ONE_CMD instead.
250
#
251
# BUILD_ONE_CMD is a macro to build a given target in a given
252
# subdirectory if that subdirectory is part of $(DIRS).  It requires
253
# exactly the same shell variables as BUILD_CMD.
254
#
255
# RECURSIVE_BUILD_CMD is a macro to build a given target in all
256
# subdirectories defined in $(DIRS).  It requires that the target
257
# is given through the shell variable `target'.
258
BUILD_CMD=  if [ -d "$$dir" ]; then \
259
	    (	cd $$dir && echo "making $$target in $$dir..." && \
260
		$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
261
	    ) || exit 1; \
262
	    fi
263
RECURSIVE_BUILD_CMD=for dir in $(DIRS); do $(BUILD_CMD); done
264
BUILD_ONE_CMD=\
265
	if expr " $(DIRS) " : ".* $$dir " >/dev/null 2>&1; then \
266
		$(BUILD_CMD); \
267
	fi
268

    
269
reflect:
270
	@[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)
271

    
272
sub_all: build_all
273
build_all: build_libs build_apps build_tests build_tools
274

    
275
build_libs: build_crypto build_ssl build_engines
276

    
277
build_crypto:
278
	@dir=crypto; target=all; $(BUILD_ONE_CMD)
279
build_ssl:
280
	@dir=ssl; target=all; $(BUILD_ONE_CMD)
281
build_engines:
282
	@dir=engines; target=all; $(BUILD_ONE_CMD)
283
build_apps:
284
	@dir=apps; target=all; $(BUILD_ONE_CMD)
285
build_tests:
286
	@dir=test; target=all; $(BUILD_ONE_CMD)
287
build_tools:
288
	@dir=tools; target=all; $(BUILD_ONE_CMD)
289

    
290
all_testapps: build_libs build_testapps
291
build_testapps:
292
	@dir=crypto; target=testapps; $(BUILD_ONE_CMD)
293

    
294
fips_premain_dso$(EXE_EXT): libcrypto.a
295
	[ -z "$(FIPSCANLIB)" ] || $(CC) $(CFLAG) -Iinclude \
296
		-DFINGERPRINT_PREMAIN_DSO_LOAD -o $@  \
297
		$(FIPSLIBDIR)fips_premain.c $(FIPSLIBDIR)fipscanister.o \
298
		libcrypto.a $(EX_LIBS)
299

    
300
libcrypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT)
301
	@if [ "$(SHLIB_TARGET)" != "" ]; then \
302
		if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
303
			FIPSLD_LIBCRYPTO=libcrypto.a ; \
304
			FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \
305
			export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \
306
		fi; \
307
		$(MAKE) -e SHLIBDIRS=crypto  CC="$${CC:-$(CC)}" build-shared && \
308
		(touch -c fips_premain_dso$(EXE_EXT) || :); \
309
	else \
310
		echo "There's no support for shared libraries on this platform" >&2; \
311
		exit 1; \
312
	fi
313

    
314
libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
315
	@if [ "$(SHLIB_TARGET)" != "" ]; then \
316
		$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
317
	else \
318
		echo "There's no support for shared libraries on this platform" >&2; \
319
		exit 1; \
320
	fi
321

    
322
clean-shared:
323
	@set -e; for i in $(SHLIBDIRS); do \
324
		if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
325
			tmp="$(SHARED_LIBS_LINK_EXTS)"; \
326
			for j in $${tmp:-x}; do \
327
				( set -x; rm -f lib$$i$$j ); \
328
			done; \
329
		fi; \
330
		( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
331
		if [ "$(PLATFORM)" = "Cygwin" ]; then \
332
			( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
333
		fi; \
334
	done
335

    
336
link-shared:
337
	@ set -e; for i in $(SHLIBDIRS); do \
338
		$(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
339
			LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
340
			LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
341
			symlink.$(SHLIB_TARGET); \
342
		libs="$$libs -l$$i"; \
343
	done
344

    
345
build-shared: do_$(SHLIB_TARGET) link-shared
346

    
347
do_$(SHLIB_TARGET):
348
	@ set -e; libs='-L. $(SHLIBDEPS)'; for i in $(SHLIBDIRS); do \
349
		if [ "$$i" = "ssl" -a -n "$(LIBKRB5)" ]; then \
350
			libs="$(LIBKRB5) $$libs"; \
351
		fi; \
352
		$(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
353
			LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
354
			LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
355
			LIBDEPS="$$libs $(EX_LIBS)" \
356
			link_a.$(SHLIB_TARGET); \
357
		libs="-l$$i $$libs"; \
358
	done
359

    
360
libcrypto.pc: Makefile
361
	@ ( echo 'prefix=$(INSTALLTOP)'; \
362
	    echo 'exec_prefix=$${prefix}'; \
363
	    echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
364
	    echo 'includedir=$${prefix}/include'; \
365
	    echo ''; \
366
	    echo 'Name: OpenSSL-libcrypto'; \
367
	    echo 'Description: OpenSSL cryptography library'; \
368
	    echo 'Version: '$(VERSION); \
369
	    echo 'Requires: '; \
370
	    echo 'Libs: -L$${libdir} -lcrypto'; \
371
	    echo 'Libs.private: $(EX_LIBS)'; \
372
	    echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
373

    
374
libssl.pc: Makefile
375
	@ ( echo 'prefix=$(INSTALLTOP)'; \
376
	    echo 'exec_prefix=$${prefix}'; \
377
	    echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
378
	    echo 'includedir=$${prefix}/include'; \
379
	    echo ''; \
380
	    echo 'Name: OpenSSL'; \
381
	    echo 'Description: Secure Sockets Layer and cryptography libraries'; \
382
	    echo 'Version: '$(VERSION); \
383
	    echo 'Requires: '; \
384
	    echo 'Libs: -L$${libdir} -lssl -lcrypto'; \
385
	    echo 'Libs.private: $(EX_LIBS)'; \
386
	    echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
387

    
388
openssl.pc: Makefile
389
	@ ( echo 'prefix=$(INSTALLTOP)'; \
390
	    echo 'exec_prefix=$${prefix}'; \
391
	    echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
392
	    echo 'includedir=$${prefix}/include'; \
393
	    echo ''; \
394
	    echo 'Name: OpenSSL'; \
395
	    echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
396
	    echo 'Version: '$(VERSION); \
397
	    echo 'Requires: '; \
398
	    echo 'Libs: -L$${libdir} -lssl -lcrypto'; \
399
	    echo 'Libs.private: $(EX_LIBS)'; \
400
	    echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
401

    
402
Makefile: Makefile.org Configure config
403
	@echo "Makefile is older than Makefile.org, Configure or config."
404
	@echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
405
	@false
406

    
407
libclean:
408
	rm -f *.map *.so *.so.* *.dylib *.dll engines/*.so engines/*.dll engines/*.dylib *.a engines/*.a */lib */*/lib
409

    
410
clean:	libclean
411
	rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
412
	@set -e; target=clean; $(RECURSIVE_BUILD_CMD)
413
	rm -f $(LIBS)
414
	rm -f openssl.pc libssl.pc libcrypto.pc
415
	rm -f speed.* .pure
416
	rm -f $(TARFILE)
417
	@set -e; for i in $(ONEDIRS) ;\
418
	do \
419
	rm -fr $$i/*; \
420
	done
421

    
422
makefile.one: files
423
	$(PERL) util/mk1mf.pl >makefile.one; \
424
	sh util/do_ms.sh
425

    
426
files:
427
	$(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
428
	@set -e; target=files; $(RECURSIVE_BUILD_CMD)
429

    
430
links:
431
	@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
432
	@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
433
	@set -e; target=links; $(RECURSIVE_BUILD_CMD)
434

    
435
gentests:
436
	@(cd test && echo "generating dummy tests (if needed)..." && \
437
	$(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on generate );
438

    
439
dclean:
440
	rm -rf *.bak include/openssl certs/.0
441
	@set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
442

    
443
rehash: rehash.time
444
rehash.time: certs apps
445
	@if [ -z "$(CROSS_COMPILE)" ]; then \
446
		(OPENSSL="`pwd`/util/opensslwrap.sh"; \
447
		[ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \
448
		OPENSSL_DEBUG_MEMORY=on; \
449
		export OPENSSL OPENSSL_DEBUG_MEMORY; \
450
		$(PERL) tools/c_rehash certs/demo) && \
451
		touch rehash.time; \
452
	else :; fi
453

    
454
test:   tests
455

    
456
tests: rehash
457
	@(cd test && echo "testing..." && \
458
	$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf tests );
459
	OPENSSL_CONF=apps/openssl.cnf util/opensslwrap.sh version -a
460

    
461
report:
462
	@$(PERL) util/selftest.pl
463

    
464
depend:
465
	@set -e; target=depend; $(RECURSIVE_BUILD_CMD)
466

    
467
lint:
468
	@set -e; target=lint; $(RECURSIVE_BUILD_CMD)
469

    
470
tags:
471
	rm -f TAGS
472
	find . -name '[^.]*.[ch]' | xargs etags -a
473

    
474
errors:
475
	$(PERL) util/ck_errf.pl -strict */*.c */*/*.c
476
	$(PERL) util/mkerr.pl -recurse -write
477
	(cd engines; $(MAKE) PERL=$(PERL) errors)
478

    
479
stacks:
480
	$(PERL) util/mkstack.pl -write
481

    
482
util/libeay.num::
483
	$(PERL) util/mkdef.pl crypto update
484

    
485
util/ssleay.num::
486
	$(PERL) util/mkdef.pl ssl update
487

    
488
crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h
489
	$(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
490
crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num
491
	$(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
492
crypto/objects/obj_xref.h: crypto/objects/objxref.pl crypto/objects/obj_xref.txt crypto/objects/obj_mac.num
493
	$(PERL) crypto/objects/objxref.pl crypto/objects/obj_mac.num crypto/objects/obj_xref.txt >crypto/objects/obj_xref.h
494

    
495
apps/openssl-vms.cnf: apps/openssl.cnf
496
	$(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
497

    
498
crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl
499
	$(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h
500

    
501

    
502
TABLE: Configure
503
	(echo 'Output of `Configure TABLE'"':"; \
504
	$(PERL) Configure TABLE) > TABLE
505

    
506
update: 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
507

    
508
# Build distribution tar-file. As the list of files returned by "find" is
509
# pretty long, on several platforms a "too many arguments" error or similar
510
# would occur. Therefore the list of files is temporarily stored into a file
511
# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
512
# tar does not support the --files-from option.
513
tar:
514
	find . -type d -print | xargs chmod 755
515
	find . -type f -print | xargs chmod a+r
516
	find . -type f -perm -0100 -print | xargs chmod a+x
517
	find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \
518
	$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
519
	tardy --user_number=0  --user_name=openssl \
520
	      --group_number=0 --group_name=openssl \
521
	      --prefix=openssl-$(VERSION) - |\
522
	gzip --best >../$(TARFILE).gz; \
523
	rm -f ../$(TARFILE).list; \
524
	ls -l ../$(TARFILE).gz
525

    
526
tar-snap:
527
	@$(TAR) $(TARFLAGS) -cvf - \
528
		`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` |\
529
	tardy --user_number=0  --user_name=openssl \
530
	      --group_number=0 --group_name=openssl \
531
	      --prefix=openssl-$(VERSION) - > ../$(TARFILE);\
532
	ls -l ../$(TARFILE)
533

    
534
dist:   
535
	$(PERL) Configure dist
536
	@$(MAKE) dist_pem_h
537
	@$(MAKE) SDIRS='$(SDIRS)' clean
538
	@$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar
539

    
540
dist_pem_h:
541
	(cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
542

    
543
install: all install_docs install_sw
544

    
545
install_sw:
546
	@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
547
		$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
548
		$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
549
		$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
550
		$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
551
		$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
552
		$(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
553
		$(INSTALL_PREFIX)$(OPENSSLDIR)/private
554
	@set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
555
	do \
556
	(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
557
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
558
	done;
559
	@set -e; target=install; $(RECURSIVE_BUILD_CMD)
560
	@set -e; liblist="$(LIBS)"; for i in $$liblist ;\
561
	do \
562
		if [ -f "$$i" ]; then \
563
		(       echo installing $$i; \
564
			cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
565
			$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
566
			chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
567
			mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i ); \
568
		fi; \
569
	done;
570
	@set -e; if [ -n "$(SHARED_LIBS)" ]; then \
571
		tmp="$(SHARED_LIBS)"; \
572
		for i in $${tmp:-x}; \
573
		do \
574
			if [ -f "$$i" -o -f "$$i.a" ]; then \
575
			(       echo installing $$i; \
576
				if [ "$(PLATFORM)" != "Cygwin" ]; then \
577
					cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
578
					chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
579
					mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
580
				else \
581
					c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
582
					cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
583
					chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
584
					mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
585
					cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
586
					chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
587
					mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
588
				fi ); \
589
				if expr $(PLATFORM) : 'mingw' > /dev/null; then \
590
				(	case $$i in \
591
						*crypto*) i=libeay32.dll;; \
592
						*ssl*)    i=ssleay32.dll;; \
593
					esac; \
594
					echo installing $$i; \
595
	 				cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
596
	 				chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
597
	 				mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
598
				fi; \
599
			fi; \
600
		done; \
601
		(	here="`pwd`"; \
602
			cd $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR); \
603
			$(MAKE) -f $$here/Makefile HERE="$$here" link-shared ); \
604
		if [ "$(INSTALLTOP)" != "/usr" ]; then \
605
			echo 'OpenSSL shared libraries have been installed in:'; \
606
			echo '  $(INSTALLTOP)'; \
607
			echo ''; \
608
			sed -e '1,/^$$/d' doc/openssl-shared.txt; \
609
		fi; \
610
	fi
611
	cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
612
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc
613
	cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
614
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc
615
	cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
616
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
617

    
618
install_html_docs:
619
	here="`pwd`"; \
620
	for subdir in apps crypto ssl; do \
621
		mkdir -p $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
622
		for i in doc/$$subdir/*.pod; do \
623
			fn=`basename $$i .pod`; \
624
			echo "installing html/$$fn.$(HTMLSUFFIX)"; \
625
			cat $$i \
626
			| sed -r 's/L<([^)]*)(\([0-9]\))?\|([^)]*)(\([0-9]\))?>/L<\1|\3>/g' \
627
			| pod2html --podroot=doc --htmlroot=.. --podpath=apps:crypto:ssl \
628
			| sed -r 's/<!DOCTYPE.*//g' \
629
			> $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir/$$fn.$(HTMLSUFFIX); \
630
			$(PERL) util/extract-names.pl < $$i | \
631
				grep -v $$filecase "^$$fn\$$" | \
632
				(cd $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
633
				 while read n; do \
634
					PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$(HTMLSUFFIX) "$$n".$(HTMLSUFFIX); \
635
				 done); \
636
		done; \
637
	done
638

    
639
install_docs:
640
	@$(PERL) $(TOP)/util/mkdir-p.pl \
641
		$(INSTALL_PREFIX)$(MANDIR)/man1 \
642
		$(INSTALL_PREFIX)$(MANDIR)/man3 \
643
		$(INSTALL_PREFIX)$(MANDIR)/man5 \
644
		$(INSTALL_PREFIX)$(MANDIR)/man7
645
	@pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
646
	here="`pwd`"; \
647
	filecase=; \
648
	if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
649
		filecase=-i; \
650
	fi; \
651
	set -e; for i in doc/apps/*.pod; do \
652
		fn=`basename $$i .pod`; \
653
		sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
654
		echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
655
		(cd `$(PERL) util/dirname.pl $$i`; \
656
		sh -c "$$pod2man \
657
			--section=$$sec --center=OpenSSL \
658
			--release=$(VERSION) `basename $$i`") \
659
			>  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
660
		$(PERL) util/extract-names.pl < $$i | \
661
			(grep -v $$filecase "^$$fn\$$"; true) | \
662
			(grep -v "[	]"; true) | \
663
			(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
664
			 while read n; do \
665
				PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
666
			 done); \
667
	done; \
668
	set -e; for i in doc/crypto/*.pod doc/ssl/*.pod; do \
669
		fn=`basename $$i .pod`; \
670
		sec=`$(PERL) util/extract-section.pl 3 < $$i`; \
671
		echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
672
		(cd `$(PERL) util/dirname.pl $$i`; \
673
		sh -c "$$pod2man \
674
			--section=$$sec --center=OpenSSL \
675
			--release=$(VERSION) `basename $$i`") \
676
			>  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
677
		$(PERL) util/extract-names.pl < $$i | \
678
			(grep -v $$filecase "^$$fn\$$"; true) | \
679
			(grep -v "[	]"; true) | \
680
			(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
681
			 while read n; do \
682
				PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
683
			 done); \
684
	done
685

    
686
# DO NOT DELETE THIS LINE -- make depend depends on it.