Makefile.org revision 68651
155714Skris##
255714Skris## Makefile for OpenSSL
355714Skris##
455714Skris
555714SkrisVERSION=
655714SkrisMAJOR=
755714SkrisMINOR=
868651SkrisSHLIB_VERSION_NUMBER=
968651SkrisSHLIB_VERSION_HISTORY=
1068651SkrisSHLIB_MAJOR=
1168651SkrisSHLIB_MINOR=
1255714SkrisPLATFORM=dist
1355714SkrisOPTIONS=
1468651SkrisCONFIGURE_ARGS=
1568651SkrisSHLIB_TARGET=
1668651Skris
1755714Skris# INSTALL_PREFIX is for package builders so that they can configure
1855714Skris# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
1955714Skris# Normally it is left empty.
2055714SkrisINSTALL_PREFIX=
2155714SkrisINSTALLTOP=/usr/local/ssl
2255714Skris
2355714Skris# Do not edit this manually. Use Configure --openssldir=DIR do change this!
2455714SkrisOPENSSLDIR=/usr/local/ssl
2555714Skris
2655714Skris# RSAref  - Define if we are to link with RSAref.
2755714Skris# NO_IDEA - Define to build without the IDEA algorithm
2855714Skris# NO_RC4  - Define to build without the RC4 algorithm
2955714Skris# NO_RC2  - Define to build without the RC2 algorithm
3055714Skris# THREADS - Define when building with threads, you will probably also need any
3155714Skris#           system defines as well, i.e. _REENTERANT for Solaris 2.[34]
3255714Skris# TERMIO  - Define the termio terminal subsystem, needed if sgtty is missing.
3355714Skris# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
3455714Skris# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
3555714Skris# DEVRANDOM - Give this the value of the 'random device' if your OS supports
3655714Skris#           one.  32 bytes will be read from this when the random
3755714Skris#           number generator is initalised.
3855714Skris# SSL_FORBID_ENULL - define if you want the server to be not able to use the
3955714Skris#           NULL encryption ciphers.
4055714Skris#
4155714Skris# LOCK_DEBUG - turns on lots of lock debug output :-)
4255714Skris# REF_CHECK - turn on some xyz_free() assertions.
4355714Skris# REF_PRINT - prints some stuff on structure free.
4455714Skris# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
4555714Skris# MFUNC - Make all Malloc/Free/Realloc calls call
4655714Skris#       CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
4755714Skris#       call application defined callbacks via CRYPTO_set_mem_functions()
4855714Skris# MD5_ASM needs to be defined to use the x86 assembler for MD5
4955714Skris# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
5055714Skris# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
5155714Skris# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8.  It must
5255714Skris# equal 4.
5355714Skris# PKCS1_CHECK - pkcs1 tests.
5455714Skris
5555714SkrisCC= gcc
5655714Skris#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
5755714SkrisCFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
5855714SkrisDEPFLAG= 
5955714SkrisPEX_LIBS= -L. -L.. -L../.. -L../../..
6055714SkrisEX_LIBS= 
6155714SkrisAR=ar r
6255714SkrisRANLIB= ranlib
6355714SkrisPERL= perl
6459191SkrisTAR= tar
6568651SkrisTARFLAGS= --no-recursion
6655714Skris
6755714Skris# Set BN_ASM to bn_asm.o if you want to use the C version
6855714SkrisBN_ASM= bn_asm.o
6955714Skris#BN_ASM= bn_asm.o
7055714Skris#BN_ASM= asm/bn86-elf.o	# elf, linux-elf
7155714Skris#BN_ASM= asm/bn86-sol.o # solaris
7255714Skris#BN_ASM= asm/bn86-out.o # a.out, FreeBSD
7355714Skris#BN_ASM= asm/bn86bsdi.o # bsdi
7455714Skris#BN_ASM= asm/alpha.o    # DEC Alpha
7555714Skris#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC
7655714Skris#BN_ASM= asm/r3000.o    # SGI MIPS cpu
7755714Skris#BN_ASM= asm/sparc.o    # Sun solaris/SunOS
7855714Skris#BN_ASM= asm/bn-win32.o # Windows 95/NT
7955714Skris#BN_ASM= asm/x86w16.o   # 16 bit code for Windows 3.1/DOS
8055714Skris#BN_ASM= asm/x86w32.o   # 32 bit code for Windows 3.1
8155714Skris
8255714Skris# For x86 assembler: Set PROCESSOR to 386 if you want to support
8355714Skris# the 80386.
8455714SkrisPROCESSOR=
8555714Skris
8655714Skris# Set DES_ENC to des_enc.o if you want to use the C version
8755714Skris#There are 4 x86 assember options.
8855714SkrisDES_ENC= asm/dx86-out.o asm/yx86-out.o
8955714Skris#DES_ENC= des_enc.o fcrypt_b.o          # C
9055714Skris#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
9155714Skris#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
9255714Skris#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD
9355714Skris#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi
9455714Skris
9555714Skris# Set BF_ENC to bf_enc.o if you want to use the C version
9655714Skris#There are 4 x86 assember options.
9755714SkrisBF_ENC= asm/bx86-out.o
9855714Skris#BF_ENC= bf_enc.o
9955714Skris#BF_ENC= asm/bx86-elf.o # elf
10055714Skris#BF_ENC= asm/bx86-sol.o # solaris
10155714Skris#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
10255714Skris#BF_ENC= asm/bx86bsdi.o # bsdi
10355714Skris
10455714Skris# Set CAST_ENC to c_enc.o if you want to use the C version
10555714Skris#There are 4 x86 assember options.
10655714SkrisCAST_ENC= asm/cx86-out.o
10755714Skris#CAST_ENC= c_enc.o
10855714Skris#CAST_ENC= asm/cx86-elf.o # elf
10955714Skris#CAST_ENC= asm/cx86-sol.o # solaris
11055714Skris#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD
11155714Skris#CAST_ENC= asm/cx86bsdi.o # bsdi
11255714Skris
11355714Skris# Set RC4_ENC to rc4_enc.o if you want to use the C version
11455714Skris#There are 4 x86 assember options.
11555714SkrisRC4_ENC= asm/rx86-out.o
11655714Skris#RC4_ENC= rc4_enc.o
11755714Skris#RC4_ENC= asm/rx86-elf.o # elf
11855714Skris#RC4_ENC= asm/rx86-sol.o # solaris
11955714Skris#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD
12055714Skris#RC4_ENC= asm/rx86bsdi.o # bsdi
12155714Skris
12255714Skris# Set RC5_ENC to rc5_enc.o if you want to use the C version
12355714Skris#There are 4 x86 assember options.
12455714SkrisRC5_ENC= asm/r586-out.o
12555714Skris#RC5_ENC= rc5_enc.o
12655714Skris#RC5_ENC= asm/r586-elf.o # elf
12755714Skris#RC5_ENC= asm/r586-sol.o # solaris
12855714Skris#RC5_ENC= asm/r586-out.o # a.out, FreeBSD
12955714Skris#RC5_ENC= asm/r586bsdi.o # bsdi
13055714Skris
13155714Skris# Also need MD5_ASM defined
13255714SkrisMD5_ASM_OBJ= asm/mx86-out.o
13355714Skris#MD5_ASM_OBJ= asm/mx86-elf.o        # elf
13455714Skris#MD5_ASM_OBJ= asm/mx86-sol.o        # solaris
13555714Skris#MD5_ASM_OBJ= asm/mx86-out.o        # a.out, FreeBSD
13655714Skris#MD5_ASM_OBJ= asm/mx86bsdi.o        # bsdi
13755714Skris
13855714Skris# Also need SHA1_ASM defined
13955714SkrisSHA1_ASM_OBJ= asm/sx86-out.o
14055714Skris#SHA1_ASM_OBJ= asm/sx86-elf.o       # elf
14155714Skris#SHA1_ASM_OBJ= asm/sx86-sol.o       # solaris
14255714Skris#SHA1_ASM_OBJ= asm/sx86-out.o       # a.out, FreeBSD
14355714Skris#SHA1_ASM_OBJ= asm/sx86bsdi.o       # bsdi
14455714Skris
14555714Skris# Also need RMD160_ASM defined
14655714SkrisRMD160_ASM_OBJ= asm/rm86-out.o
14755714Skris#RMD160_ASM_OBJ= asm/rm86-elf.o       # elf
14855714Skris#RMD160_ASM_OBJ= asm/rm86-sol.o       # solaris
14955714Skris#RMD160_ASM_OBJ= asm/rm86-out.o       # a.out, FreeBSD
15055714Skris#RMD160_ASM_OBJ= asm/rm86bsdi.o       # bsdi
15155714Skris
15268651Skris# To do special treatment, use "directory names" starting with a period.
15368651Skris# When we're prepared to use shared libraries in the programs we link here
15468651Skris# we might have SHLIB_MARK1 get the value ".shlib." and SHLIB_MARK2 be empty,
15568651Skris# or have that configurable.
15668651SkrisSHLIB_MARK1=.shlib-clean.
15768651SkrisSHLIB_MARK2=.shlib.
15868651Skris
15968651SkrisDIRS=   crypto ssl rsaref $(SHLIB_MARK1) apps test tools $(SHLIB_MARK2)
16055714SkrisSHLIBDIRS= crypto ssl
16155714Skris
16255714Skris# dirs in crypto to build
16355714SkrisSDIRS=  \
16468651Skris	md2 md4 md5 sha mdc2 hmac ripemd \
16555714Skris	des rc2 rc4 rc5 idea bf cast \
16668651Skris	bn rsa dsa dh dso \
16755714Skris	buffer bio stack lhash rand err objects \
16855714Skris	evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp
16955714Skris
17055714SkrisMAKEFILE= Makefile.ssl
17155714SkrisMAKE=     make -f Makefile.ssl
17255714Skris
17359191SkrisMANDIR=$(OPENSSLDIR)/man
17455714SkrisMAN1=1
17555714SkrisMAN3=3
17655714SkrisSHELL=/bin/sh
17755714Skris
17855714SkrisTOP=    .
17955714SkrisONEDIRS=out tmp
18055714SkrisEDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep VMS
18155714SkrisWDIRS=  windows
18268651SkrisLIBS=   libcrypto.a libssl.a
18368651SkrisSHARED_LIBS=libcrypto.so libssl.so
18455714Skris
18555714SkrisGENERAL=        Makefile
18655714SkrisBASENAME=       openssl
18755714SkrisNAME=           $(BASENAME)-$(VERSION)
18855714SkrisTARFILE=        $(NAME).tar
18955714SkrisWTARFILE=       $(NAME)-win.tar
19055714SkrisEXHEADER=       e_os.h e_os2.h
19155714SkrisHEADER=         e_os.h
19255714Skris
19355714Skrisall: Makefile.ssl
19468651Skris	@need_shlib=true; \
19568651Skris	for i in $(DIRS) ;\
19655714Skris	do \
19768651Skris	if [ "$$i" = ".shlib-clean." ]; then \
19868651Skris		if [ "$(SHLIB_TARGET)" != "" ]; then \
19968651Skris			$(MAKE) clean-shared; \
20068651Skris		fi; \
20168651Skris	elif [ "$$i" = ".shlib." ]; then \
20268651Skris		if [ "$(SHLIB_TARGET)" != "" ]; then \
20368651Skris			$(MAKE) $(SHARED_LIBS); \
20468651Skris		fi; \
20568651Skris		need_shlib=false; \
20668651Skris	else \
20768651Skris		(cd $$i && echo "making all in $$i..." && \
20868651Skris		$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' SDIRS='${SDIRS}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
20968651Skris	fi; \
21068651Skris	done; \
21168651Skris	if $$need_shlib && [ "$(SHLIB_MARK1)" != "" -o "$(SHLIB_MARK1)" != "" ]; then \
21268651Skris		$(MAKE) $(SHARED_LIBS); \
21368651Skris	fi
21455714Skris
21555714Skrissub_all:
21668651Skris	@need_shlib=true; \
21768651Skris	for i in $(DIRS) ;\
21855714Skris	do \
21968651Skris	if [ "$$i" = ".shlib-clean." ]; then \
22068651Skris		if [ "$(SHLIB_TARGET)" != "" ]; then \
22168651Skris			$(MAKE) clean-shared; \
22268651Skris		fi; \
22368651Skris	elif [ "$$i" = ".shlib." ]; then \
22468651Skris		if [ "$(SHLIB_TARGET)" != "" ]; then \
22568651Skris			$(MAKE) $(SHARED_LIBS); \
22668651Skris		fi; \
22768651Skris		need_shlib=false; \
22868651Skris	else \
22968651Skris		(cd $$i && echo "making all in $$i..." && \
23068651Skris		$(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}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
23168651Skris	fi; \
23268651Skris	done; \
23368651Skris	if $$need_shlib && [ "$(SHLIB_MARK1)" != "" -o "$(SHLIB_MARK1)" != "" ]; then \
23468651Skris		$(MAKE) $(SHARED_LIBS); \
23568651Skris	fi
23655714Skris
23768651Skrislibcrypto.so: libcrypto.a
23868651Skris	@if [ "$(SHLIB_TARGET)" != "" ]; then \
23968651Skris		$(MAKE) SHLIBDIRS=crypto $(SHLIB_TARGET); \
24068651Skris	else \
24168651Skris		echo "There's no support for shared libraries on this platform" >&2; \
24268651Skris	fi
24368651Skrislibssl.so: libcrypto.so libssl.a
24468651Skris	@if [ "$(SHLIB_TARGET)" != "" ]; then \
24568651Skris		$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-L. -lcrypto' $(SHLIB_TARGET); \
24668651Skris	else \
24768651Skris		echo "There's no support for shared libraries on this platform" >&2; \
24868651Skris	fi
24968651Skris
25068651Skrisclean-shared:
25168651Skris	for i in ${SHLIBDIRS}; do \
25268651Skris	rm -f lib$$i.so \
25368651Skris		lib$$i.so.${SHLIB_MAJOR} \
25468651Skris		lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
25568651Skris	done
25668651Skris
25755714Skrislinux-shared:
25868651Skris	libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
25968651Skris	rm -f lib$$i.so \
26068651Skris		lib$$i.so.${SHLIB_MAJOR} \
26168651Skris		lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
26268651Skris	( set -x; ${CC}  -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
26368651Skris		-Wl,-S,-soname=lib$$i.so.${SHLIB_MAJOR} \
26455714Skris		-Wl,--whole-archive lib$$i.a \
26568651Skris		-Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
26668651Skris	libs="$$libs -L. -l$$i"; \
26768651Skris	( set -x; \
26868651Skris		ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
26968651Skris			lib$$i.so.${SHLIB_MAJOR}; \
27068651Skris		ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so ); \
27168651Skris	done
27255714Skris
27368651Skris# This assumes that GNU utilities are *not* used
27468651Skristrue64-shared:
27568651Skris	libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
27668651Skris	( set -x; ${CC}  -shared -no_archive -o lib$$i.so \
27768651Skris		-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
27868651Skris		-all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
27968651Skris	libs="$$libs -L. -l$$i"; \
28068651Skris	done
28168651Skris
28268651Skris# This assumes that GNU utilities are *not* used
28368651Skrissolaris-shared:
28468651Skris	libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
28568651Skris	rm -f lib$$i.so \
28668651Skris		lib$$i.so.${SHLIB_MAJOR} \
28768651Skris		lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
28868651Skris	( set -x; ${CC}  -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
28968651Skris		-h lib$$i.so.${SHLIB_MAJOR} \
29068651Skris		-z allextract lib$$i.a $$libs ${EX_LIBS} -lc ) || exit 1; \
29168651Skris	libs="$$libs -L. -l$$i"; \
29268651Skris	ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
29368651Skris		lib$$i.so.${SHLIB_MAJOR}; \
29468651Skris	ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so; \
29568651Skris	done
29668651Skris
29755714SkrisMakefile.ssl: Makefile.org
29855714Skris	@echo "Makefile.ssl is older than Makefile.org."
29955714Skris	@echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
30055714Skris	@false
30155714Skris
30255714Skrislibclean:
30355714Skris	rm -f *.a */lib */*/lib
30455714Skris
30555714Skrisclean:
30659191Skris	rm -f shlib/*.o *.o core a.out fluff *.map rehash.time testlog make.log cctest cctest.c
30755714Skris	@for i in $(DIRS) ;\
30855714Skris	do \
30968651Skris	if echo "$$i" | grep -v '^\.'; then \
31068651Skris		(cd $$i && echo "making clean in $$i..." && \
31168651Skris		$(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \
31268651Skris		rm -f $(LIBS); \
31368651Skris	fi; \
31455714Skris	done;
31555714Skris	rm -f *.a *.o speed.* *.map *.so .pure core
31655714Skris	rm -f $(TARFILE)
31755714Skris	@for i in $(ONEDIRS) ;\
31855714Skris	do \
31955714Skris	rm -fr $$i/*; \
32055714Skris	done
32155714Skris
32255714Skrismakefile.one: files
32355714Skris	$(PERL) util/mk1mf.pl >makefile.one; \
32455714Skris	sh util/do_ms.sh
32555714Skris
32655714Skrisfiles:
32755714Skris	$(PERL) $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
32855714Skris	@for i in $(DIRS) ;\
32955714Skris	do \
33068651Skris	if echo "$$i" | grep -v '^\.'; then \
33168651Skris		(cd $$i && echo "making 'files' in $$i..." && \
33268651Skris		$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \
33368651Skris	fi; \
33455714Skris	done;
33555714Skris
33655714Skrislinks:
33755714Skris	@$(TOP)/util/point.sh Makefile.ssl Makefile
33855714Skris	@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
33955714Skris	@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
34055714Skris	@for i in $(DIRS); do \
34168651Skris	if echo "$$i" | grep -v '^\.'; then \
34268651Skris		(cd $$i && echo "making links in $$i..." && \
34368651Skris		$(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}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PERL='${PERL}' links ) || exit 1; \
34468651Skris	fi; \
34555714Skris	done;
34655714Skris
34755714Skrisdclean:
34855714Skris	rm -f *.bak
34955714Skris	@for i in $(DIRS) ;\
35055714Skris	do \
35168651Skris	if echo "$$i" | grep -v '^\.'; then \
35268651Skris		(cd $$i && echo "making dclean in $$i..." && \
35368651Skris		$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \
35468651Skris	fi; \
35555714Skris	done;
35655714Skris
35759191Skrisrehash: rehash.time
35859191Skrisrehash.time: certs
35968651Skris	@(OPENSSL="`pwd`/apps/openssl"; export OPENSSL; $(PERL) tools/c_rehash certs)
36059191Skris	touch rehash.time
36155714Skris
36255714Skristest:   tests
36355714Skris
36455714Skristests: rehash
36555714Skris	@(cd test && echo "testing..." && \
36655714Skris	$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' tests );
36755714Skris	@apps/openssl version -a
36855714Skris
36959191Skrisreport:
37059191Skris	@$(PERL) util/selftest.pl
37159191Skris
37255714Skrisdepend:
37355714Skris	@for i in $(DIRS) ;\
37455714Skris	do \
37568651Skris	if echo "$$i" | grep -v '^\.'; then \
37668651Skris		(cd $$i && echo "making dependencies $$i..." && \
37768651Skris		$(MAKE) SDIRS='${SDIRS}' DEPFLAG='${DEPFLAG}' depend ) || exit 1; \
37868651Skris	fi; \
37955714Skris	done;
38055714Skris
38155714Skrislint:
38255714Skris	@for i in $(DIRS) ;\
38355714Skris	do \
38468651Skris	if echo "$$i" | grep -v '^\.'; then \
38568651Skris		(cd $$i && echo "making lint $$i..." && \
38668651Skris		$(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
38768651Skris	fi; \
38855714Skris	done;
38955714Skris
39055714Skristags:
39155714Skris	@for i in $(DIRS) ;\
39255714Skris	do \
39368651Skris	if echo "$$i" | grep -v '^\.'; then \
39468651Skris		(cd $$i && echo "making tags $$i..." && \
39568651Skris		$(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \
39668651Skris	fi; \
39755714Skris	done;
39855714Skris
39955714Skriserrors:
40055714Skris	perl util/mkerr.pl -recurse -write
40155714Skris
40268651Skrisstacks:
40368651Skris	perl util/mkstack.pl -write
40468651Skris
40555714Skrisutil/libeay.num::
40655714Skris	perl util/mkdef.pl crypto update
40755714Skris
40855714Skrisutil/ssleay.num::
40955714Skris	perl util/mkdef.pl ssl update
41055714Skris
41168651Skriscrypto/objects/obj_dat.h: crypto/objects/obj_mac.h crypto/objects/obj_dat.pl
41268651Skris	perl crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
41368651Skriscrypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt 
41468651Skris	perl crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
41559191Skris
41655714SkrisTABLE: Configure
41755714Skris	(echo 'Output of `Configure TABLE'"':"; \
41855714Skris	perl Configure TABLE) > TABLE
41955714Skris
42068651Skrisupdate: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h TABLE
42155714Skris
42255714Skristar:
42359191Skris	@$(TAR) $(TARFLAGS) -cvf - \
42455714Skris		`find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort` |\
42555714Skris	tardy --user_number=0  --user_name=openssl \
42655714Skris	      --group_number=0 --group_name=openssl \
42755714Skris	      --prefix=openssl-$(VERSION) - |\
42855714Skris	gzip --best >../$(TARFILE).gz; \
42955714Skris	ls -l ../$(TARFILE).gz
43055714Skris
43155714Skrisdist:   
43255714Skris	$(PERL) Configure dist
43355714Skris	@$(MAKE) dist_pem_h
43455714Skris	@$(MAKE) SDIRS='${SDIRS}' clean
43555714Skris	@$(MAKE) tar
43655714Skris
43755714Skrisdist_pem_h:
43855714Skris	(cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
43955714Skris
44059191Skrisinstall: all install_docs
44155714Skris	@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
44255714Skris		$(INSTALL_PREFIX)$(INSTALLTOP)/lib \
44355714Skris		$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
44455714Skris		$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
44555714Skris		$(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
44655714Skris		$(INSTALL_PREFIX)$(OPENSSLDIR)/private \
44755714Skris		$(INSTALL_PREFIX)$(OPENSSLDIR)/lib
44855714Skris	@for i in $(EXHEADER) ;\
44955714Skris	do \
45055714Skris	(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
45155714Skris	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
45255714Skris	done;
45355714Skris	@for i in $(DIRS) ;\
45455714Skris	do \
45568651Skris	if echo "$$i" | grep -v '^\.'; then \
45668651Skris		(cd $$i; echo "installing $$i..."; \
45768651Skris		$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' RANLIB='${RANLIB}' install ); \
45868651Skris	fi; \
45955714Skris	done
46055714Skris	@for i in $(LIBS) ;\
46155714Skris	do \
46268651Skris		if [ -f "$$i" ]; then \
46368651Skris		(       echo installing $$i; \
46468651Skris			cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
46568651Skris			$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
46668651Skris			chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
46768651Skris		fi \
46855714Skris	done
46955714Skris
47059191Skrisinstall_docs:
47159191Skris	@$(PERL) $(TOP)/util/mkdir-p.pl \
47259191Skris		$(INSTALL_PREFIX)$(MANDIR)/man1 \
47359191Skris		$(INSTALL_PREFIX)$(MANDIR)/man3 \
47459191Skris		$(INSTALL_PREFIX)$(MANDIR)/man5 \
47559191Skris		$(INSTALL_PREFIX)$(MANDIR)/man7
47659191Skris	@echo installing man 1 and man 5
47759191Skris	@for i in doc/apps/*.pod; do \
47859191Skris		fn=`basename $$i .pod`; \
47959191Skris		sec=`[ "$$fn" = "config" ] && echo 5 || echo 1`; \
48059191Skris		(cd `dirname $$i`; \
48159191Skris		$(PERL) ../../util/pod2man.pl --section=$$sec --center=OpenSSL \
48259191Skris			 --release=$(VERSION) `basename $$i`) \
48359191Skris			>  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
48459191Skris	done
48559191Skris	@echo installing man 3 and man 7
48659191Skris	@for i in doc/crypto/*.pod doc/ssl/*.pod; do \
48759191Skris		fn=`basename $$i .pod`; \
48859191Skris		sec=`[ "$$fn" = "des_modes" ] && echo 7 || echo 3`; \
48959191Skris		(cd `dirname $$i`; \
49059191Skris		$(PERL) ../../util/pod2man.pl --section=$$sec --center=OpenSSL \
49159191Skris			--release=$(VERSION) `basename $$i`) \
49259191Skris			>  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
49359191Skris	done
49459191Skris
49559191Skrisshlib: all
49659191Skris	if [ ! -d shlib_dir ] ; then mkdir shlib_dir ; else rm -f shlib_dir/* ; fi
49759191Skris	cd shlib_dir ; ar -x ../libcrypto.a && $(CC) -shared ./*.o -Wl,-soname -Wl,libcrypto.so.0.9 \
49859191Skris            -o ./libcrypto.so.0.9.4 && rm *.o
49959191Skris	cd shlib_dir ; ar -x ../libssl.a && $(CC) -shared ./*.o -Wl,-soname -Wl,libssl.so.0.9 \
50059191Skris            -o ./libssl.so.0.9.4 && rm *.o
50159191Skris
50255714Skris# DO NOT DELETE THIS LINE -- make depend depends on it.
503