1### Generated automatically from Makefile.org by Configure.
2
3##
4## Makefile for OpenSSL
5##
6
7VERSION=0.9.7m
8MAJOR=0
9MINOR=9.7
10SHLIB_VERSION_NUMBER=0.9.7
11SHLIB_VERSION_HISTORY=
12SHLIB_MAJOR=0
13SHLIB_MINOR=9.7
14SHLIB_EXT=
15PLATFORM=dist
16OPTIONS= no-krb5
17CONFIGURE_ARGS=dist
18SHLIB_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.
23HERE=.
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.
28INSTALL_PREFIX=
29INSTALLTOP=/usr/local/ssl
30
31# Do not edit this manually. Use Configure --openssldir=DIR do change this!
32OPENSSLDIR=/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
62CC= cc
63#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
64CFLAG= -DOPENSSL_NO_KRB5 -O
65DEPFLAG=
66PEX_LIBS=
67EX_LIBS=
68EXE_EXT=
69ARFLAGS=
70AR=ar $(ARFLAGS) r
71RANLIB= /usr/bin/ranlib
72PERL= /usr/bin/perl
73TAR= tar
74TARFLAGS= --no-recursion
75MAKEDEPPROG=makedepend
76
77# We let the C compiler driver to take care of .s files. This is done in
78# order to be excused from maintaining a separate set of architecture
79# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
80# gcc, then the driver will automatically translate it to -xarch=v8plus
81# and pass it down to assembler.
82AS=$(CC) -c
83ASFLAG=$(CFLAG)
84
85# Set BN_ASM to bn_asm.o if you want to use the C version
86BN_ASM= bn_asm.o
87#BN_ASM= bn_asm.o
88#BN_ASM= asm/bn86-elf.o	# elf, linux-elf
89#BN_ASM= asm/bn86-sol.o # solaris
90#BN_ASM= asm/bn86-out.o # a.out, FreeBSD
91#BN_ASM= asm/bn86bsdi.o # bsdi
92#BN_ASM= asm/alpha.o    # DEC Alpha
93#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC
94#BN_ASM= asm/r3000.o    # SGI MIPS cpu
95#BN_ASM= asm/sparc.o    # Sun solaris/SunOS
96#BN_ASM= asm/bn-win32.o # Windows 95/NT
97#BN_ASM= asm/x86w16.o   # 16 bit code for Windows 3.1/DOS
98#BN_ASM= asm/x86w32.o   # 32 bit code for Windows 3.1
99
100# For x86 assembler: Set PROCESSOR to 386 if you want to support
101# the 80386.
102PROCESSOR=
103
104# Set DES_ENC to des_enc.o if you want to use the C version
105#There are 4 x86 assember options.
106FIPS_DES_ENC=
107FIPS_AES_ENC=
108DES_ENC= des_enc.o fcrypt_b.o
109#DES_ENC= des_enc.o fcrypt_b.o          # C
110#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
111#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
112#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD
113#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi
114
115# Set BF_ENC to bf_enc.o if you want to use the C version
116#There are 4 x86 assember options.
117BF_ENC= bf_enc.o
118#BF_ENC= bf_enc.o
119#BF_ENC= asm/bx86-elf.o # elf
120#BF_ENC= asm/bx86-sol.o # solaris
121#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
122#BF_ENC= asm/bx86bsdi.o # bsdi
123
124# Set CAST_ENC to c_enc.o if you want to use the C version
125#There are 4 x86 assember options.
126CAST_ENC= c_enc.o
127#CAST_ENC= c_enc.o
128#CAST_ENC= asm/cx86-elf.o # elf
129#CAST_ENC= asm/cx86-sol.o # solaris
130#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD
131#CAST_ENC= asm/cx86bsdi.o # bsdi
132
133# Set RC4_ENC to rc4_enc.o if you want to use the C version
134#There are 4 x86 assember options.
135RC4_ENC= rc4_enc.o
136#RC4_ENC= rc4_enc.o
137#RC4_ENC= asm/rx86-elf.o # elf
138#RC4_ENC= asm/rx86-sol.o # solaris
139#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD
140#RC4_ENC= asm/rx86bsdi.o # bsdi
141
142# Set RC5_ENC to rc5_enc.o if you want to use the C version
143#There are 4 x86 assember options.
144RC5_ENC= rc5_enc.o
145#RC5_ENC= rc5_enc.o
146#RC5_ENC= asm/r586-elf.o # elf
147#RC5_ENC= asm/r586-sol.o # solaris
148#RC5_ENC= asm/r586-out.o # a.out, FreeBSD
149#RC5_ENC= asm/r586bsdi.o # bsdi
150
151# Also need MD5_ASM defined
152MD5_ASM_OBJ=
153#MD5_ASM_OBJ= asm/mx86-elf.o        # elf
154#MD5_ASM_OBJ= asm/mx86-sol.o        # solaris
155#MD5_ASM_OBJ= asm/mx86-out.o        # a.out, FreeBSD
156#MD5_ASM_OBJ= asm/mx86bsdi.o        # bsdi
157
158# Also need SHA1_ASM defined
159SHA1_ASM_OBJ=
160FIPS_SHA1_ASM_OBJ=
161#SHA1_ASM_OBJ= asm/sx86-elf.o       # elf
162#SHA1_ASM_OBJ= asm/sx86-sol.o       # solaris
163#SHA1_ASM_OBJ= asm/sx86-out.o       # a.out, FreeBSD
164#SHA1_ASM_OBJ= asm/sx86bsdi.o       # bsdi
165
166# Also need RMD160_ASM defined
167RMD160_ASM_OBJ=
168#RMD160_ASM_OBJ= asm/rm86-elf.o       # elf
169#RMD160_ASM_OBJ= asm/rm86-sol.o       # solaris
170#RMD160_ASM_OBJ= asm/rm86-out.o       # a.out, FreeBSD
171#RMD160_ASM_OBJ= asm/rm86bsdi.o       # bsdi
172
173# KRB5 stuff
174KRB5_INCLUDES=
175LIBKRB5=
176
177# Zlib stuff
178ZLIB_INCLUDE=
179LIBZLIB=
180
181# This is the location of fipscanister.o and friends.
182# The FIPS module build will place it $(INSTALLTOP)/lib
183# but since $(INSTALLTOP) can only take the default value
184# when the module is built it will be in /usr/local/ssl/lib
185# $(INSTALLTOP) for this build make be different so hard
186# code the path.
187
188FIPSLIBDIR=/usr/local/ssl/lib/
189FIPSCANISTERINTERNAL=n
190
191# Shared library base address. Currently only used on Windows.
192#
193
194BASEADDR=0xFB00000
195
196# When we're prepared to use shared libraries in the programs we link here
197# we might set SHLIB_MARK to '$(SHARED_LIBS)'.
198SHLIB_MARK=
199
200DIRS=   crypto fips-1.0 ssl $(SHLIB_MARK) apps test tools
201SHLIBDIRS= crypto ssl
202
203# dirs in crypto to build
204SDIRS=  objects \
205	md2 md4 md5 sha mdc2 hmac ripemd \
206	des rc2 rc4 rc5 idea bf cast \
207	bn ec rsa dsa dh dso engine aes \
208	buffer bio stack lhash rand err \
209	evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5
210
211FDIRS=	sha rand des aes dsa rsa dh hmac
212
213# tests to perform.  "alltests" is a special word indicating that all tests
214# should be performed.
215TESTS = alltests
216
217MAKEFILE= Makefile
218
219MANDIR=$(OPENSSLDIR)/man
220MAN1=1
221MAN3=3
222MANSUFFIX=
223SHELL=/bin/sh
224
225TOP=    .
226ONEDIRS=out tmp
227EDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep VMS
228WDIRS=  windows
229LIBS=   libcrypto.a libssl.a
230SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
231SHARED_SSL=libssl$(SHLIB_EXT)
232SHARED_LIBS=
233SHARED_LIBS_LINK_EXTS=
234SHARED_LDFLAGS=
235
236GENERAL=        Makefile
237BASENAME=       openssl
238NAME=           $(BASENAME)-$(VERSION)
239TARFILE=        $(NAME).tar
240WTARFILE=       $(NAME)-win.tar
241EXHEADER=       e_os2.h
242HEADER=         e_os.h
243
244# When we're prepared to use shared libraries in the programs we link here
245# we might remove 'clean-shared' from the targets to perform at this stage
246
247all: Makefile sub_all openssl.pc
248
249sub_all:
250	@for i in $(DIRS); \
251	do \
252	if [ -d "$$i" ]; then \
253		(cd $$i && echo "making all in $$i..." && \
254		$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' FIPS_AES_ENC='${FIPS_AES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' FIPSLIBDIR='${FIPSLIBDIR}' all ) || exit 1; \
255	else \
256		$(MAKE) $$i; \
257	fi; \
258	done;
259
260sub_target:
261	@for i in $(DIRS); \
262	do \
263	if [ -d "$$i" ]; then \
264		(cd $$i && echo "making $(TARGET) in $$i..." && \
265		$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' FIPS_AES_ENC='${FIPS_AES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TARGET='$(TARGET)' sub_target ) || exit 1; \
266	else \
267		$(MAKE) $$i; \
268	fi; \
269	done;
270
271libcrypto$(SHLIB_EXT): libcrypto.a
272	@if [ "$(SHLIB_TARGET)" != "" ]; then \
273		$(MAKE) SHLIBDIRS=crypto build-shared; \
274	else \
275		echo "There's no support for shared libraries on this platform" >&2; \
276	fi
277
278libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
279	@if [ "$(SHLIB_TARGET)" != "" ]; then \
280		$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
281	else \
282		echo "There's no support for shared libraries on this platform" >&2; \
283	fi
284
285clean-shared:
286	@for i in $(SHLIBDIRS); do \
287		if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
288			tmp="$(SHARED_LIBS_LINK_EXTS)"; \
289			for j in $${tmp:-x}; do \
290				( set -x; rm -f lib$$i$$j ); \
291			done; \
292		fi; \
293		( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
294		if [ "$(PLATFORM)" = "Cygwin" ]; then \
295			( set -x; rm -f cyg$$i-$(SHLIB_VERSION_NUMBER)$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
296		fi; \
297	done
298
299link-shared:
300	@if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
301		tmp="$(SHARED_LIBS_LINK_EXTS)"; \
302		for i in $(SHLIBDIRS); do \
303			prev=lib$$i$(SHLIB_EXT); \
304			for j in $${tmp:-x}; do \
305				( set -x; \
306				rm -f lib$$i$$j; ln -s $$prev lib$$i$$j ); \
307				prev=lib$$i$$j; \
308			done; \
309		done; \
310	fi
311
312build-shared: clean-shared do_$(SHLIB_TARGET) link-shared
313
314do_bsd-gcc-shared: do_gnu-shared
315do_linux-shared: do_gnu-shared
316do_gnu-shared:
317	libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
318	if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
319		libs="$(LIBKRB5) $$libs"; \
320	fi; \
321	( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
322		-shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
323		-Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
324		-Wl,-Bsymbolic \
325		-Wl,--whole-archive lib$$i.a \
326		-Wl,--no-whole-archive $$libs ${EX_LIBS} ) || exit 1; \
327	libs="-l$$i $$libs"; \
328	done
329
330DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null
331
332# For Darwin AKA Mac OS/X (dyld)
333do_darwin-shared:
334	libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
335	if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
336		libs="$(LIBKRB5) $$libs"; \
337	fi; \
338	( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
339		--verbose -dynamiclib -o lib$$i${SHLIB_EXT} \
340		lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \
341		-compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \
342		-install_name ${INSTALLTOP}/lib/lib$$i${SHLIB_EXT} ) || exit 1; \
343	libs="-l`basename $$i${SHLIB_EXT} .dylib` $$libs"; \
344	echo "" ; \
345	done
346
347do_cygwin-shared:
348	libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
349	if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
350		libs="$(LIBKRB5) $$libs"; \
351	fi; \
352	shlib=cyg$${i}-$(SHLIB_VERSION_NUMBER).dll; \
353	[ "$(PLATFORM)" = "mingw" ] && shlib=$${i}eay32.dll; \
354	[ -f apps/$$shlib ] && rm apps/$$shlib; \
355	[ -f test/$$shlib ] && rm test/$$shlib; \
356	base=;  [ $$i = "crypto" ] && base=-Wl,--image-base,0x63000000; \
357	( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
358		-shared $$base -o $$shlib \
359		-Wl,-Bsymbolic \
360		-Wl,--whole-archive lib$$i.a \
361		-Wl,--out-implib,lib$$i.dll.a \
362		-Wl,--no-whole-archive $$libs ${EX_LIBS} ) || exit 1; \
363	cp -p $$shlib apps/; cp -p $$shlib test/; \
364	touch -c lib$$i.dll.a; \
365	libs="-l$$i $$libs"; \
366	done
367
368# This assumes that GNU utilities are *not* used
369do_alpha-osf1-shared:
370	if ${DETECT_GNU_LD}; then \
371		$(MAKE) do_gnu-shared; \
372	else \
373		libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
374		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
375			libs="$(LIBKRB5) $$libs"; \
376		fi; \
377		( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
378			-shared -o lib$$i.so \
379			-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
380			-all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \
381		libs="-l$$i $$libs"; \
382		done; \
383	fi
384
385# This assumes that GNU utilities are *not* used
386# The difference between alpha-osf1-shared and tru64-shared is the `-msym'
387# option passed to the linker.
388do_tru64-shared:
389	if ${DETECT_GNU_LD}; then \
390		$(MAKE) do_gnu-shared; \
391	else \
392		libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
393		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
394			libs="$(LIBKRB5) $$libs"; \
395		fi; \
396		( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
397			-shared -msym -o lib$$i.so \
398			-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
399			-all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \
400		libs="-l$$i $$libs"; \
401		done; \
402	fi
403
404# This assumes that GNU utilities are *not* used
405# The difference between tru64-shared and tru64-shared-rpath is the
406# -rpath ${INSTALLTOP}/lib passed to the linker.
407do_tru64-shared-rpath:
408	if ${DETECT_GNU_LD}; then \
409		$(MAKE) do_gnu-shared; \
410	else \
411		libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
412		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
413			libs="$(LIBKRB5) $$libs"; \
414		fi; \
415		( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
416			-shared -msym -o lib$$i.so \
417			-rpath  ${INSTALLTOP}/lib \
418			-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
419			-all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \
420		libs="-l$$i $$libs"; \
421		done; \
422	fi
423
424
425# This assumes that GNU utilities are *not* used
426do_solaris-shared:
427	if ${DETECT_GNU_LD}; then \
428		$(MAKE) do_gnu-shared; \
429	else \
430		libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
431		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
432			libs="$(LIBKRB5) $$libs"; \
433		fi; \
434		( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
435		  MINUSZ='-z '; \
436		  (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \
437		  set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
438			-o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
439			-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
440			-Wl,-Bsymbolic \
441			$${MINUSZ}allextract lib$$i.a $${MINUSZ}defaultextract \
442			$$libs ${EX_LIBS} ) || exit 1; \
443		libs="-l$$i $$libs"; \
444		done; \
445	fi
446
447# OpenServer 5 native compilers used
448do_svr3-shared:
449	if ${DETECT_GNU_LD}; then \
450		$(MAKE) do_gnu-shared; \
451	else \
452		libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
453		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
454			libs="$(LIBKRB5) $$libs"; \
455		fi; \
456		( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
457		  find . -name "*.o" -print > allobjs ; \
458		  OBJS= ; export OBJS ; \
459		  for obj in `ar t lib$$i.a` ; do \
460		    OBJS="$${OBJS} `grep /$$obj allobjs`" ; \
461		  done ; \
462		  set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
463			-G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
464			-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
465			$${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
466		libs="-l$$i $$libs"; \
467		done; \
468	fi
469
470# UnixWare 7 and OpenUNIX 8 native compilers used
471do_svr5-shared:
472	if ${DETECT_GNU_LD}; then \
473		$(MAKE) do_gnu-shared; \
474	else \
475		libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
476		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
477			libs="$(LIBKRB5) $$libs"; \
478		fi; \
479		( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
480		  SHARE_FLAG='-G'; \
481		  (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \
482		  find . -name "*.o" -print > allobjs ; \
483		  OBJS= ; export OBJS ; \
484		  for obj in `ar t lib$$i.a` ; do \
485		    OBJS="$${OBJS} `grep /$$obj allobjs`" ; \
486		  done ; \
487		  set -x; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
488			$${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
489			$${SHARE_FLAG} -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
490			-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
491			$${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
492		libs="-l$$i $$libs"; \
493		done; \
494	fi
495
496# This assumes that GNU utilities are *not* used
497do_irix-shared:
498	if ${DETECT_GNU_LD}; then \
499		$(MAKE) do_gnu-shared; \
500	else \
501		libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
502		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
503			libs="$(LIBKRB5) $$libs"; \
504		fi; \
505		( WHOLELIB="-all lib$$i.a -none"; \
506		  (${CC} -v 2>&1 | grep gcc) > /dev/null && WHOLELIB="-Wl,-all,lib$$i.a,-none"; \
507		  set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
508			-shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
509			-Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
510			$${WHOLELIB} $$libs ${EX_LIBS}) || exit 1; \
511		libs="-l$$i $$libs"; \
512		done; \
513	fi
514
515# This assumes that GNU utilities are *not* used
516#
517do_hpux-shared:
518	for i in ${SHLIBDIRS}; do \
519	if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
520		libs="$(LIBKRB5) $$libs"; \
521	fi; \
522	if expr $(PLATFORM) : '.*ia64' > /dev/null; then \
523		shlib=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
524	else \
525		shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
526	fi; \
527	[ -f $$shlib ] && rm -f $$shlib; \
528	ALLSYMSFLAGS='-Wl,-Fl'; \
529	expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
530	( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
531		-Wl,-B,symbolic,+vnocompatwarnings,-z,+h,$$shlib \
532		-o $$shlib $$ALLSYMSFLAGS,lib$$i.a -ldld ) || exit 1; \
533	chmod a=rx $$shlib; \
534	done
535
536# The following method is said to work on all platforms.  Tests will
537# determine if that's how it's gong to be used.
538# This assumes that for all but GNU systems, GNU utilities are *not* used.
539# ALLSYMSFLAGS would be:
540#  GNU systems: --whole-archive
541#  Tru64 Unix:  -all
542#  Solaris:     -z allextract
543#  Irix:        -all
544#  HP/UX-32bit: -Fl
545#  HP/UX-64bit: +forceload
546#  AIX:		-bnogc
547# SHAREDFLAGS would be:
548#  GNU systems: -shared -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
549#  Tru64 Unix:  -shared \
550#		-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}"
551#  Solaris:     -G -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
552#  Irix:        -shared -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
553#  HP/UX-32bit: +vnocompatwarnings -b -z +s \
554#		+h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}
555#  HP/UX-64bit: -b -z +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}
556#  AIX:		-G -bE:lib$$i.exp -bM:SRE
557# SHAREDCMD would be:
558#  GNU systems: $(CC)
559#  Tru64 Unix:  $(CC)
560#  Solaris:     $(CC)
561#  Irix:        $(CC)
562#  HP/UX-32bit: /usr/ccs/bin/ld
563#  HP/UX-64bit: /usr/ccs/bin/ld
564#  AIX:		$(CC)
565ALLSYMSFLAG=-bnogc
566SHAREDFLAGS=${SHARED_LDFLAGS} -G -bE:lib$$i.exp -bM:SRE
567SHAREDCMD=$(CC)
568do_aix-shared:
569	libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
570	if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
571		libs="$(LIBKRB5) $$libs"; \
572	fi; \
573	( set -x; \
574	  OBJECT_MODE=`expr x${SHARED_LDFLAGS} : 'x\-[a-z]\([0-9]*\)'`; \
575	  OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
576	  ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \
577	  ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \
578	    $${FIPSLD:-${CC}} $(SHAREDFLAGS) \
579		-o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} lib$$i.o \
580		$$libs ${EX_LIBS} ) ) \
581	|| exit 1; \
582	libs="-l$$i $$libs"; \
583	done
584
585do_reliantunix-shared:
586	libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
587	if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
588		libs="$(LIBKRB5) $$libs"; \
589	fi; \
590	tmpdir=/tmp/openssl.$$$$ ; rm -rf $$tmpdir ; \
591	( set -x; \
592	  ( Opwd=`pwd` ; mkdir $$tmpdir || exit 1; \
593	    cd $$tmpdir || exit 1 ; ar x $$Opwd/lib$$i.a ; \
594	    $${FIPSLD:-${CC}} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} *.o \
595	  ) || exit 1; \
596	  cp $$tmpdir/lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} . ; \
597	) || exit 1; \
598	rm -rf $$tmpdir ; \
599	libs="-l$$i $$libs"; \
600	done
601
602openssl.pc: Makefile
603	@ ( echo 'prefix=$(INSTALLTOP)'; \
604	    echo 'exec_prefix=$${prefix}'; \
605	    echo 'libdir=$${exec_prefix}/lib'; \
606	    echo 'includedir=$${prefix}/include'; \
607	    echo ''; \
608	    echo 'Name: OpenSSL'; \
609	    echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
610	    echo 'Version: '$(VERSION); \
611	    echo 'Requires: '; \
612	    echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \
613	    echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
614
615Makefile: Makefile.org
616	@echo "Makefile is older than Makefile.org."
617	@echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
618	@false
619
620libclean:
621	rm -f *.map *.so *.so.* engines/*.so *.a */lib */*/lib
622
623clean:	libclean
624	rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
625	@for i in $(DIRS) ;\
626	do \
627	if [ -d "$$i" ]; then \
628		(cd $$i && echo "making clean in $$i..." && \
629		$(MAKE) EXE_EXT='${EXE_EXT}' SDIRS='${SDIRS}' clean ) || exit 1; \
630		rm -f $(LIBS); \
631	fi; \
632	done;
633	rm -f openssl.pc
634	rm -f speed.* .pure
635	rm -f $(TARFILE)
636	@for i in $(ONEDIRS) ;\
637	do \
638	rm -fr $$i/*; \
639	done
640
641makefile.one: files
642	$(PERL) util/mk1mf.pl >makefile.one; \
643	sh util/do_ms.sh
644
645files:
646	$(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
647	@for i in $(DIRS) ;\
648	do \
649	if [ -d "$$i" ]; then \
650		(cd $$i && echo "making 'files' in $$i..." && \
651		$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \
652	fi; \
653	done;
654
655links:
656	@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
657	@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
658	@for i in $(DIRS); do \
659	if [ -d "$$i" ]; then \
660		(cd $$i && echo "making links in $$i..." && \
661		$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PERL='${PERL}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' links ) || exit 1; \
662	fi; \
663	done;
664
665gentests:
666	@(cd test && echo "generating dummy tests (if needed)..." && \
667	$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
668
669dclean:
670	rm -f *.bak
671	@for i in $(DIRS) ;\
672	do \
673	if [ -d "$$i" ]; then \
674		(cd $$i && echo "making dclean in $$i..." && \
675		$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \
676	fi; \
677	done;
678
679rehash: rehash.time
680rehash.time: certs
681	@(OPENSSL="`pwd`/util/opensslwrap.sh"; \
682	  OPENSSL_DEBUG_MEMORY=on; \
683	  export OPENSSL OPENSSL_DEBUG_MEMORY; \
684	  $(PERL) tools/c_rehash certs)
685	touch rehash.time
686
687test:   tests
688
689tests: rehash
690	@(cd test && echo "testing..." && \
691	$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
692	util/shlib_wrap.sh apps/openssl version -a
693
694report:
695	@$(PERL) util/selftest.pl
696
697depend:
698	@for i in $(DIRS) ;\
699	do \
700	if [ -d "$$i" ]; then \
701		(cd $$i && echo "making dependencies $$i..." && \
702		$(MAKE) SDIRS='${SDIRS}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ) || exit 1; \
703	fi; \
704	done;
705
706lint:
707	@for i in $(DIRS) ;\
708	do \
709	if [ -d "$$i" ]; then \
710		(cd $$i && echo "making lint $$i..." && \
711		$(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
712	fi; \
713	done;
714
715tags:
716	rm -f TAGS
717	find . -name '[^.]*.[ch]' | xargs etags -a
718
719errors:
720	$(PERL) util/mkerr.pl -recurse -write
721	(cd crypto/engine; $(MAKE) PERL=$(PERL) errors)
722
723stacks:
724	$(PERL) util/mkstack.pl -write
725
726util/libeay.num::
727	$(PERL) util/mkdef.pl crypto update
728
729util/ssleay.num::
730	$(PERL) util/mkdef.pl ssl update
731
732crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h
733	$(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
734crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num
735	$(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
736
737apps/openssl-vms.cnf: apps/openssl.cnf
738	$(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
739
740crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl
741	$(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h
742
743
744TABLE: Configure
745	(echo 'Output of `Configure TABLE'"':"; \
746	$(PERL) Configure TABLE) > TABLE
747
748update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf crypto/bn/bn_prime.h TABLE depend
749
750# Build distribution tar-file. As the list of files returned by "find" is
751# pretty long, on several platforms a "too many arguments" error or similar
752# would occur. Therefore the list of files is temporarily stored into a file
753# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
754# tar does not support the --files-from option.
755tar:
756	find . -type d -print | xargs chmod 755
757	find . -type f -print | xargs chmod a+r
758	find . -type f -perm -0100 -print | xargs chmod a+x
759	find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \
760	$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
761	tardy --user_number=0  --user_name=openssl \
762	      --group_number=0 --group_name=openssl \
763	      --prefix=openssl-$(VERSION) - |\
764	gzip --best >../$(TARFILE).gz; \
765	rm -f ../$(TARFILE).list; \
766	ls -l ../$(TARFILE).gz
767
768tar-snap:
769	@$(TAR) $(TARFLAGS) -cvf - \
770		`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` |\
771	tardy --user_number=0  --user_name=openssl \
772	      --group_number=0 --group_name=openssl \
773	      --prefix=openssl-$(VERSION) - > ../$(TARFILE);\
774	ls -l ../$(TARFILE)
775
776dist:
777	$(PERL) Configure dist
778	@$(MAKE) dist_pem_h
779	@$(MAKE) SDIRS='${SDIRS}' clean
780	@$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar
781
782dist_pem_h:
783	(cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
784
785install: all install_docs install_sw
786
787install_sw:
788	@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
789		$(INSTALL_PREFIX)$(INSTALLTOP)/lib \
790		$(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \
791		$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
792		$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
793		$(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
794		$(INSTALL_PREFIX)$(OPENSSLDIR)/private
795	@headerlist="$(EXHEADER)"; for i in $$headerlist ;\
796	do \
797	(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
798	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
799	done;
800	@for i in $(DIRS) ;\
801	do \
802	if [ -d "$$i" ]; then \
803		(cd $$i; echo "installing $$i..."; \
804		$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' RANLIB='${RANLIB}' EXE_EXT='${EXE_EXT}' install ); \
805	fi; \
806	done
807	@for i in $(LIBS) ;\
808	do \
809		if [ -f "$$i" ]; then \
810		(       echo installing $$i; \
811			cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
812			if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
813				: ; \
814			else \
815				$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
816			fi; \
817			chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
818			mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
819		fi; \
820	done;
821	@if [ -n "$(SHARED_LIBS)" ]; then \
822		tmp="$(SHARED_LIBS)"; \
823		for i in $${tmp:-x}; \
824		do \
825			if [ -f "$$i" -o -f "$$i.a" ]; then \
826			(       echo installing $$i; \
827				if [ "$(PLATFORM)" != "Cygwin" ]; then \
828					cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
829					chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
830					mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
831				else \
832					c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
833					cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
834					chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
835					mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
836					cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
837					chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
838					mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
839				fi ); \
840			fi; \
841		done; \
842		(	here="`pwd`"; \
843			cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
844			set $(MAKE); \
845			$$1 -f $$here/Makefile link-shared ); \
846		if [ "$(INSTALLTOP)" != "/usr" ]; then \
847			echo 'OpenSSL shared libraries have been installed in:'; \
848			echo '  $(INSTALLTOP)'; \
849			echo ''; \
850			sed -e '1,/^$$/d' doc/openssl-shared.txt; \
851		fi; \
852	fi
853	cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
854	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
855
856install_docs:
857	@$(PERL) $(TOP)/util/mkdir-p.pl \
858		$(INSTALL_PREFIX)$(MANDIR)/man1 \
859		$(INSTALL_PREFIX)$(MANDIR)/man3 \
860		$(INSTALL_PREFIX)$(MANDIR)/man5 \
861		$(INSTALL_PREFIX)$(MANDIR)/man7
862	@pod2man="`cd util; ./pod2mantest $(PERL)`"; \
863	here="`pwd`"; \
864	filecase=; \
865	if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
866		filecase=-i; \
867	fi; \
868	for i in doc/apps/*.pod; do \
869		fn=`basename $$i .pod`; \
870		if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \
871		echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
872		(cd `$(PERL) util/dirname.pl $$i`; \
873		sh -c "$$pod2man \
874			--section=$$sec --center=OpenSSL \
875			--release=$(VERSION) `basename $$i`") \
876			>  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
877		$(PERL) util/extract-names.pl < $$i | \
878			(grep -v $$filecase "^$$fn\$$"; true) | \
879			(grep -v "[	]"; true) | \
880			(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
881			 while read n; do \
882				$$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
883			 done); \
884	done; \
885	for i in doc/crypto/*.pod doc/ssl/*.pod; do \
886		fn=`basename $$i .pod`; \
887		if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \
888		echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
889		(cd `$(PERL) util/dirname.pl $$i`; \
890		sh -c "$$pod2man \
891			--section=$$sec --center=OpenSSL \
892			--release=$(VERSION) `basename $$i`") \
893			>  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
894		$(PERL) util/extract-names.pl < $$i | \
895			(grep -v $$filecase "^$$fn\$$"; true) | \
896			(grep -v "[	]"; true) | \
897			(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
898			 while read n; do \
899				$$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
900			 done); \
901	done
902
903# DO NOT DELETE THIS LINE -- make depend depends on it.
904