1999-03-22 22:45:08 +08:00
##
## Makefile for OpenSSL
##
VERSION = 0.9.2b
PLATFORM = dist
1998-12-21 18:52:47 +08:00
# NOCONST - Define for C compilers that don't like the const key word.
# NOPROTO - Define in if your compiler does not support prototypes.
# RSAref - Define if we are to link with RSAref.
# NO_IDEA - Define to build without the IDEA algorithm
# NO_RC4 - Define to build without the RC4 algorithm
# NO_RC2 - Define to build without the RC2 algorithm
# THREADS - Define when building with threads, you will probably also need any
1998-12-21 18:56:39 +08:00
# system defines as well, i.e. _REENTERANT for Solaris 2.[34]
1998-12-21 18:52:47 +08:00
# TERMIO - Define the termio terminal subsystem, needed if sgtty is missing.
# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
# DEVRANDOM - Give this the value of the 'random device' if your OS supports
1998-12-21 18:56:39 +08:00
# one. 32 bytes will be read from this when the random
# number generator is initalised.
1998-12-21 18:52:47 +08:00
# SSL_ALLOW_ADH - define if you want the server to be able to use the
1998-12-21 18:56:39 +08:00
# SSLv3 anon-DH ciphers.
1998-12-21 18:52:47 +08:00
# SSL_ALLOW_ENULL - define if you want the server to be able to use the
1998-12-21 18:56:39 +08:00
# NULL encryption ciphers.
1998-12-21 18:52:47 +08:00
#
# LOCK_DEBUG - turns on lots of lock debug output :-)
# REF_CHECK - turn on some xyz_free() assertions.
1998-12-21 18:56:39 +08:00
# REF_PRINT - prints some stuff on structure free.
1998-12-21 18:52:47 +08:00
# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
# MFUNC - Make all Malloc/Free/Realloc calls call
1998-12-21 18:56:39 +08:00
# CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
# call application defined callbacks via CRYPTO_set_mem_functions()
# MD5_ASM needs to be defined to use the x86 assembler for MD5
# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
1998-12-21 19:00:56 +08:00
# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must
# equal 4.
# PKCS1_CHECK - pkcs1 tests.
1998-12-21 18:52:47 +08:00
1998-12-29 05:58:19 +08:00
CC = gcc
1998-12-21 19:00:56 +08:00
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
1998-12-29 05:58:19 +08:00
CFLAG = -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
1998-12-21 18:52:47 +08:00
PEX_LIBS = -L. -L.. -L../.. -L../../..
1998-12-22 23:04:48 +08:00
EX_LIBS =
1998-12-21 18:52:47 +08:00
AR = ar r
1998-12-21 19:00:56 +08:00
# Set BN_ASM to bn_asm.o if you want to use the C version
BN_ASM = bn_asm.o
#BN_ASM= bn_asm.o
#BN_ASM= asm/bn86-elf.o # elf, linux-elf
#BN_ASM= asm/bn86-sol.o # solaris
#BN_ASM= asm/bn86-out.o # a.out, FreeBSD
#BN_ASM= asm/bn86bsdi.o # bsdi
#BN_ASM= asm/alpha.o # DEC Alpha
#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC
#BN_ASM= asm/r3000.o # SGI MIPS cpu
#BN_ASM= asm/sparc.o # Sun solaris/SunOS
#BN_ASM= asm/bn-win32.o # Windows 95/NT
#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS
#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1
1998-12-21 18:52:47 +08:00
1999-03-31 20:38:27 +08:00
# For x86 assembler: Set PROCESSOR to 386 if you want to support
# the 80386.
PROCESSOR =
1998-12-21 18:52:47 +08:00
# Set DES_ENC to des_enc.o if you want to use the C version
#There are 4 x86 assember options.
1998-12-29 05:58:19 +08:00
DES_ENC = asm/dx86-out.o asm/yx86-out.o
1998-12-21 18:56:39 +08:00
#DES_ENC= des_enc.o fcrypt_b.o # C
#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD
#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi
1998-12-21 18:52:47 +08:00
# Set BF_ENC to bf_enc.o if you want to use the C version
#There are 4 x86 assember options.
1998-12-29 05:58:19 +08:00
BF_ENC = asm/bx86-out.o
1998-12-21 18:56:39 +08:00
#BF_ENC= bf_enc.o
1998-12-21 18:52:47 +08:00
#BF_ENC= asm/bx86-elf.o # elf
1998-12-21 18:56:39 +08:00
#BF_ENC= asm/bx86-sol.o # solaris
#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
#BF_ENC= asm/bx86bsdi.o # bsdi
1998-12-21 18:52:47 +08:00
1998-12-21 18:56:39 +08:00
# Set CAST_ENC to c_enc.o if you want to use the C version
#There are 4 x86 assember options.
1998-12-29 05:58:19 +08:00
CAST_ENC = asm/cx86-out.o
1998-12-21 18:56:39 +08:00
#CAST_ENC= c_enc.o
#CAST_ENC= asm/cx86-elf.o # elf
#CAST_ENC= asm/cx86-sol.o # solaris
#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD
#CAST_ENC= asm/cx86bsdi.o # bsdi
# Set RC4_ENC to rc4_enc.o if you want to use the C version
#There are 4 x86 assember options.
1998-12-29 05:58:19 +08:00
RC4_ENC = asm/rx86-out.o
1998-12-21 18:56:39 +08:00
#RC4_ENC= rc4_enc.o
#RC4_ENC= asm/rx86-elf.o # elf
#RC4_ENC= asm/rx86-sol.o # solaris
#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD
#RC4_ENC= asm/rx86bsdi.o # bsdi
# Set RC5_ENC to rc5_enc.o if you want to use the C version
#There are 4 x86 assember options.
1998-12-29 05:58:19 +08:00
RC5_ENC = asm/r586-out.o
1998-12-21 18:56:39 +08:00
#RC5_ENC= rc5_enc.o
#RC5_ENC= asm/r586-elf.o # elf
#RC5_ENC= asm/r586-sol.o # solaris
#RC5_ENC= asm/r586-out.o # a.out, FreeBSD
#RC5_ENC= asm/r586bsdi.o # bsdi
# Also need MD5_ASM defined
1998-12-29 05:58:19 +08:00
MD5_ASM_OBJ = asm/mx86-out.o
1998-12-21 18:56:39 +08:00
#MD5_ASM_OBJ= asm/mx86-elf.o # elf
#MD5_ASM_OBJ= asm/mx86-sol.o # solaris
#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD
#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi
# Also need SHA1_ASM defined
1998-12-29 05:58:19 +08:00
SHA1_ASM_OBJ = asm/sx86-out.o
1998-12-21 18:56:39 +08:00
#SHA1_ASM_OBJ= asm/sx86-elf.o # elf
#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris
#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD
#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi
# Also need RMD160_ASM defined
1998-12-29 05:58:19 +08:00
RMD160_ASM_OBJ = asm/rm86-out.o
1998-12-21 18:56:39 +08:00
#RMD160_ASM_OBJ= asm/rm86-elf.o # elf
#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris
#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD
#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi
DIRS = crypto ssl rsaref apps test tools
1998-12-21 18:52:47 +08:00
# dirs in crypto to build
SDIRS = \
1998-12-21 18:56:39 +08:00
md2 md5 sha mdc2 hmac ripemd \
des rc2 rc4 rc5 idea bf cast \
bn rsa dsa dh \
1999-01-25 09:09:21 +08:00
buffer bio stack lhash rand err objects \
1999-03-29 07:17:34 +08:00
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp
1998-12-21 18:52:47 +08:00
1999-03-20 21:17:22 +08:00
# Do not edit this manually. Use util/ssldir.pl do change this!
1998-12-21 18:52:47 +08:00
INSTALLTOP = /usr/local/ssl
MAKEFILE = Makefile.ssl
1998-12-21 18:56:39 +08:00
MAKE = make -f Makefile.ssl
1998-12-21 18:52:47 +08:00
MAN1 = 1
MAN3 = 3
SHELL = /bin/sh
1998-12-21 18:56:39 +08:00
TOP = .
1998-12-21 18:52:47 +08:00
ONEDIRS = out tmp
1998-12-21 19:00:56 +08:00
EDIRS = times doc bugs util include certs ms shlib mt demos perl sf dep
1998-12-21 18:56:39 +08:00
WDIRS = windows
LIBS = libcrypto.a libssl.a
GENERAL = Makefile
1998-12-23 15:58:53 +08:00
BASENAME = openssl
1998-12-21 18:56:39 +08:00
NAME = $( BASENAME) -$( VERSION)
TARFILE = $( NAME) .tar
WTARFILE = $( NAME) -win.tar
EXHEADER = e_os.h
HEADER = e_os.h
1998-12-21 18:52:47 +08:00
1999-01-25 02:15:00 +08:00
all : Makefile .ssl
1998-12-21 18:52:47 +08:00
@for i in $( DIRS) ; \
do \
1999-03-06 20:32:06 +08:00
( cd $$ i && echo " making all in $$ i... " && \
1999-03-31 20:38:27 +08:00
$( 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)' all ) || exit 1; \
1998-12-21 18:52:47 +08:00
done ;
sub_all :
@for i in $( DIRS) ; \
do \
1999-03-06 20:32:06 +08:00
( cd $$ i && echo " making all in $$ i... " && \
1999-03-31 20:38:27 +08:00
$( 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)' all ) || exit 1; \
1998-12-21 18:52:47 +08:00
done ;
1999-01-25 02:15:00 +08:00
Makefile.ssl : Makefile .org
1999-03-22 22:38:33 +08:00
@echo "Makefile.ssl is older than Makefile.org."
@echo "Reconfigure the source tree (via 'perl Configure' or 'sh config')"
@echo "and update the error lists (via 'make errors'), please."
1999-01-25 02:15:00 +08:00
@false
1998-12-21 19:00:56 +08:00
libclean :
1999-03-06 20:32:06 +08:00
rm -f *.a */lib */*/lib
1998-12-21 19:00:56 +08:00
1998-12-21 18:52:47 +08:00
clean :
1999-03-06 20:32:06 +08:00
rm -f shlib/*.o *.o core a.out fluff *.map
1998-12-21 18:52:47 +08:00
@for i in $( DIRS) ; \
do \
1999-03-06 20:32:06 +08:00
( cd $$ i && echo " making clean in $$ i... " && \
1999-01-01 20:51:11 +08:00
$( MAKE) SDIRS = '${SDIRS}' clean ) || exit 1; \
1999-03-06 20:32:06 +08:00
rm -f $( LIBS) ; \
1998-12-21 18:52:47 +08:00
done ;
1999-03-06 20:32:06 +08:00
rm -f *.a *.o speed.* *.map *.so .pure core
rm -f $( TARFILE)
1998-12-21 18:52:47 +08:00
@for i in $( ONEDIRS) ; \
do \
1999-03-06 20:32:06 +08:00
rm -fr $$ i/*; \
1998-12-21 18:52:47 +08:00
done
makefile.one : files
perl util/mk1mf.pl >makefile.one; \
sh util/do_ms.sh
1998-12-21 18:56:39 +08:00
files : MINFO
1998-12-21 18:52:47 +08:00
perl $( TOP) /util/files.pl Makefile.ssl > $( TOP) /MINFO
@for i in $( DIRS) ; \
do \
1999-01-01 20:51:11 +08:00
( cd $$ i && echo " making 'files' in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' files ) || exit 1; \
1998-12-21 18:52:47 +08:00
done ;
links :
1999-03-06 20:32:06 +08:00
@$( TOP) /util/point.sh Makefile.ssl Makefile
@$( TOP) /util/mklink.sh include $( EXHEADER)
@for i in $( DIRS) ; do \
1999-01-01 20:51:11 +08:00
( cd $$ i && echo " making links in $$ i... " && \
1999-03-10 09:37:33 +08:00
$( 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}' links ) || exit 1; \
1998-12-21 18:52:47 +08:00
done ;
1999-01-02 23:52:11 +08:00
@( OPENSSL = "`pwd`/apps/openssl" ; export OPENSSL; sh tools/c_rehash certs)
1998-12-21 18:52:47 +08:00
dclean :
1999-03-06 20:32:06 +08:00
rm -f *.bak
1998-12-21 18:52:47 +08:00
@for i in $( DIRS) ; \
do \
1999-03-06 20:32:06 +08:00
( cd $$ i && echo " making dclean in $$ i... " && \
1999-01-01 20:51:11 +08:00
$( MAKE) SDIRS = '${SDIRS}' dclean ) || exit 1; \
1998-12-21 18:52:47 +08:00
done ;
rehash :
1999-01-31 19:10:10 +08:00
@( OPENSSL = "`pwd`/apps/openssl" ; export OPENSSL; sh tools/c_rehash certs)
1998-12-21 18:52:47 +08:00
1998-12-21 18:56:39 +08:00
test : tests
1998-12-21 18:52:47 +08:00
tests :
1999-03-06 20:32:06 +08:00
@( cd test && echo "testing..." && \
1998-12-21 19:00:56 +08:00
$( 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 ) ;
1999-01-02 23:08:29 +08:00
@apps/openssl version -a
1998-12-21 18:52:47 +08:00
depend :
@for i in $( DIRS) ; \
do \
1999-01-01 20:51:11 +08:00
( cd $$ i && echo " making dependancies $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' depend ) || exit 1; \
1998-12-21 18:52:47 +08:00
done ;
lint :
@for i in $( DIRS) ; \
do \
1999-01-01 20:51:11 +08:00
( cd $$ i && echo " making lint $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' lint ) || exit 1; \
1998-12-21 18:52:47 +08:00
done ;
tags :
@for i in $( DIRS) ; \
do \
1999-01-01 20:51:11 +08:00
( cd $$ i && echo " making tags $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' tags ) || exit 1; \
1998-12-21 18:52:47 +08:00
done ;
errors :
@for i in $( DIRS) ; \
do \
1999-01-01 20:51:11 +08:00
( cd $$ i && echo " making errors in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' errors ) || exit 1; \
1998-12-21 18:52:47 +08:00
done ;
tar :
1998-12-22 23:04:48 +08:00
@gtar --no-recursion -cvf - \
1999-03-20 21:49:32 +08:00
` find * -depth -print | grep -v CVS | grep -v .cvsignore | grep -v STATUS | sort` | \
1999-03-08 20:17:53 +08:00
tardy --user_number= 0 --user_name= openssl \
1998-12-23 15:58:53 +08:00
--group_number= 0 --group_name= openssl \
--prefix= openssl-$( VERSION) - | \
1998-12-22 23:04:48 +08:00
gzip --best >../$( TARFILE) .gz; \
ls -l ../$( TARFILE) .gz
1998-12-21 18:52:47 +08:00
1998-12-21 18:56:39 +08:00
dist :
1998-12-21 18:52:47 +08:00
perl Configure dist
@$( MAKE) dist_pem_h
@$( MAKE) SDIRS = '${SDIRS}' clean
@$( MAKE) tar
dist_pem_h :
( cd crypto/pem; $( MAKE) SDIRS = '${SDIRS}' CFLAG = '${CFLAG}' pem.h; $( MAKE) clean)
install : all
@-mkdir -p $( INSTALLTOP) /bin 2>/dev/null
@-mkdir -p $( INSTALLTOP) /lib 2>/dev/null
@-mkdir -p $( INSTALLTOP) /include 2>/dev/null
@-mkdir -p $( INSTALLTOP) /certs 2>/dev/null
@-mkdir -p $( INSTALLTOP) /private 2>/dev/null
@for i in $( DIRS) ; \
do \
( cd $$ i; echo " installing $$ i... " ; \
$( MAKE) CC = '${CC}' CFLAG = '${CFLAG}' INSTALLTOP = '${INSTALLTOP}' EX_LIBS = '${EX_LIBS}' SDIRS = '${SDIRS}' install ) ; \
done
@for i in $( LIBS) ; \
do \
1998-12-21 18:56:39 +08:00
( echo installing $$ i; \
1998-12-21 18:52:47 +08:00
cp $$ i $( INSTALLTOP) /lib; \
sh util/ranlib.sh $( INSTALLTOP) /lib/$$ i; \
chmod 644 $( INSTALLTOP) /lib/$$ i ) ; \
done
# DO NOT DELETE THIS LINE -- make depend depends on it.