2000-01-10 06:22:05 +00:00
##
## Makefile for OpenSSL
##
VERSION =
MAJOR =
MINOR =
PLATFORM = dist
OPTIONS =
# INSTALL_PREFIX is for package builders so that they can configure
# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
# Normally it is left empty.
INSTALL_PREFIX =
INSTALLTOP = /usr/local/ssl
# Do not edit this manually. Use Configure --openssldir=DIR do change this!
OPENSSLDIR = /usr/local/ssl
# 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
# system defines as well, i.e. _REENTERANT for Solaris 2.[34]
# 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
# one. 32 bytes will be read from this when the random
# number generator is initalised.
# SSL_FORBID_ENULL - define if you want the server to be not able to use the
# NULL encryption ciphers.
#
# LOCK_DEBUG - turns on lots of lock debug output :-)
# REF_CHECK - turn on some xyz_free() assertions.
# REF_PRINT - prints some stuff on structure free.
# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
# MFUNC - Make all Malloc/Free/Realloc calls call
# 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
# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must
# equal 4.
# PKCS1_CHECK - pkcs1 tests.
CC = gcc
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
CFLAG = -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
DEPFLAG =
PEX_LIBS = -L. -L.. -L../.. -L../../..
EX_LIBS =
AR = ar r
RANLIB = ranlib
PERL = perl
2000-04-13 06:33:22 +00:00
TAR = tar
TARFLAGS = --norecurse
2000-01-10 06:22:05 +00: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
# For x86 assembler: Set PROCESSOR to 386 if you want to support
# the 80386.
PROCESSOR =
# Set DES_ENC to des_enc.o if you want to use the C version
#There are 4 x86 assember options.
DES_ENC = asm/dx86-out.o asm/yx86-out.o
#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
# Set BF_ENC to bf_enc.o if you want to use the C version
#There are 4 x86 assember options.
BF_ENC = asm/bx86-out.o
#BF_ENC= bf_enc.o
#BF_ENC= asm/bx86-elf.o # elf
#BF_ENC= asm/bx86-sol.o # solaris
#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
#BF_ENC= asm/bx86bsdi.o # bsdi
# Set CAST_ENC to c_enc.o if you want to use the C version
#There are 4 x86 assember options.
CAST_ENC = asm/cx86-out.o
#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.
RC4_ENC = asm/rx86-out.o
#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.
RC5_ENC = asm/r586-out.o
#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
MD5_ASM_OBJ = asm/mx86-out.o
#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
SHA1_ASM_OBJ = asm/sx86-out.o
#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
RMD160_ASM_OBJ = asm/rm86-out.o
#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
SHLIBDIRS = crypto ssl
# dirs in crypto to build
SDIRS = \
md2 md5 sha mdc2 hmac ripemd \
des rc2 rc4 rc5 idea bf cast \
bn rsa dsa dh \
buffer bio stack lhash rand err objects \
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp
MAKEFILE = Makefile.ssl
MAKE = make -f Makefile.ssl
2000-04-13 06:33:22 +00:00
MANDIR = $( OPENSSLDIR) /man
2000-01-10 06:22:05 +00:00
MAN1 = 1
MAN3 = 3
SHELL = /bin/sh
TOP = .
ONEDIRS = out tmp
EDIRS = times doc bugs util include certs ms shlib mt demos perl sf dep VMS
WDIRS = windows
LIBS = libcrypto.a libssl.a
GENERAL = Makefile
BASENAME = openssl
NAME = $( BASENAME) -$( VERSION)
TARFILE = $( NAME) .tar
WTARFILE = $( NAME) -win.tar
EXHEADER = e_os.h e_os2.h
HEADER = e_os.h
all : Makefile .ssl
@for i in $( DIRS) ; \
do \
( cd $$ i && echo " making all in $$ i... " && \
$( 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; \
done
2000-04-13 06:33:22 +00:00
-@# cd crypto; $( 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}' testapps
2000-01-10 06:22:05 +00:00
-@# cd perl; $( PERL) Makefile.PL; make
sub_all :
@for i in $( DIRS) ; \
do \
( cd $$ i && echo " making all in $$ i... " && \
$( 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; \
done ;
linux-shared :
for i in ${ SHLIBDIRS } ; do \
rm -f lib$$ i.a lib$$ i.so \
lib$$ i.so.${ MAJOR } lib$$ i.so.${ MAJOR } .${ MINOR } ; \
${ MAKE } CC = '${CC}' PLATFORM = '${PLATFORM}' CFLAG = '-fPIC ${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}' DIRS = $$ i clean all || exit 1; \
( set -x; ${ CC } -shared -o lib$$ i.so.${ MAJOR } .${ MINOR } \
-Wl,-S,-soname= lib$$ i.so.${ MAJOR } \
-Wl,--whole-archive lib$$ i.a \
-Wl,--no-whole-archive -lc ) || exit 1; \
rm -f lib$$ i.a; make -C $$ i clean || exit 1 ; \
done ;
@set -x; \
for i in ${ SHLIBDIRS } ; do \
ln -s lib$$ i.so.${ MAJOR } .${ MINOR } lib$$ i.so.${ MAJOR } ; \
ln -s lib$$ i.so.${ MAJOR } lib$$ i.so; \
done ;
Makefile.ssl : Makefile .org
@echo "Makefile.ssl is older than Makefile.org."
@echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
@false
libclean :
rm -f *.a */lib */*/lib
clean :
2000-04-13 06:33:22 +00:00
rm -f shlib/*.o *.o core a.out fluff *.map rehash.time testlog make.log cctest cctest.c
2000-01-10 06:22:05 +00:00
@for i in $( DIRS) ; \
do \
( cd $$ i && echo " making clean in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' clean ) || exit 1; \
rm -f $( LIBS) ; \
done ;
rm -f *.a *.o speed.* *.map *.so .pure core
rm -f $( TARFILE)
@for i in $( ONEDIRS) ; \
do \
rm -fr $$ i/*; \
done
makefile.one : files
$( PERL) util/mk1mf.pl >makefile.one; \
sh util/do_ms.sh
files :
$( PERL) $( TOP) /util/files.pl Makefile.ssl > $( TOP) /MINFO
@for i in $( DIRS) ; \
do \
( cd $$ i && echo " making 'files' in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' PERL = '${PERL}' files ) || exit 1; \
done ;
links :
@$( TOP) /util/point.sh Makefile.ssl Makefile
@$( PERL) $( TOP) /util/mkdir-p.pl include/openssl
@$( PERL) $( TOP) /util/mklink.pl include/openssl $( EXHEADER)
@for i in $( DIRS) ; do \
( cd $$ i && echo " making links in $$ i... " && \
$( 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; \
done ;
dclean :
rm -f *.bak
@for i in $( DIRS) ; \
do \
( cd $$ i && echo " making dclean in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' PERL = '${PERL}' dclean ) || exit 1; \
done ;
2000-04-13 06:33:22 +00:00
rehash : rehash .time
rehash.time : certs
2000-01-10 06:22:05 +00:00
@( OPENSSL = "`pwd`/apps/openssl" ; export OPENSSL; sh tools/c_rehash certs)
2000-04-13 06:33:22 +00:00
touch rehash.time
2000-01-10 06:22:05 +00:00
test : tests
tests : rehash
@( cd test && echo "testing..." && \
$( 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 ) ;
@apps/openssl version -a
2000-04-13 06:33:22 +00:00
report :
@$( PERL) util/selftest.pl
2000-01-10 06:22:05 +00:00
depend :
@for i in $( DIRS) ; \
do \
( cd $$ i && echo " making dependencies $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' DEPFLAG = '${DEPFLAG}' depend ) || exit 1; \
done ;
lint :
@for i in $( DIRS) ; \
do \
( cd $$ i && echo " making lint $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' lint ) || exit 1; \
done ;
tags :
@for i in $( DIRS) ; \
do \
( cd $$ i && echo " making tags $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' tags ) || exit 1; \
done ;
errors :
perl util/mkerr.pl -recurse -write
util/libeay.num ::
perl util/mkdef.pl crypto update
util/ssleay.num ::
perl util/mkdef.pl ssl update
2000-04-13 06:33:22 +00:00
crypto/objects/obj_dat.h : crypto /objects /objects .h crypto /objects /obj_dat .pl
perl crypto/objects/obj_dat.pl crypto/objects/objects.h crypto/objects/obj_dat.h
2000-01-10 06:22:05 +00:00
TABLE : Configure
( echo 'Output of `Configure TABLE' "':" ; \
perl Configure TABLE) > TABLE
2000-04-13 06:33:22 +00:00
update : depend errors util /libeay .num util /ssleay .num crypto /objects /obj_dat .h TABLE
2000-01-10 06:22:05 +00:00
tar :
2000-04-13 06:33:22 +00:00
@$( TAR) $( TARFLAGS) -cvf - \
2000-01-10 06:22:05 +00:00
` find * \! -path CVS/\* \! -path \* /CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort` | \
tardy --user_number= 0 --user_name= openssl \
--group_number= 0 --group_name= openssl \
--prefix= openssl-$( VERSION) - | \
gzip --best >../$( TARFILE) .gz; \
ls -l ../$( TARFILE) .gz
dist :
$( PERL) Configure dist
@$( MAKE) dist_pem_h
@$( MAKE) SDIRS = '${SDIRS}' clean
@$( MAKE) tar
dist_pem_h :
( cd crypto/pem; $( MAKE) CC = '${CC}' SDIRS = '${SDIRS}' CFLAG = '${CFLAG}' pem.h; $( MAKE) clean)
2000-04-13 06:33:22 +00:00
install : all install_docs
2000-01-10 06:22:05 +00:00
@$( PERL) $( TOP) /util/mkdir-p.pl $( INSTALL_PREFIX) $( INSTALLTOP) /bin \
$( INSTALL_PREFIX) $( INSTALLTOP) /lib \
$( INSTALL_PREFIX) $( INSTALLTOP) /include/openssl \
$( INSTALL_PREFIX) $( OPENSSLDIR) /misc \
$( INSTALL_PREFIX) $( OPENSSLDIR) /certs \
$( INSTALL_PREFIX) $( OPENSSLDIR) /private \
$( INSTALL_PREFIX) $( OPENSSLDIR) /lib
@for i in $( EXHEADER) ; \
do \
( cp $$ i $( INSTALL_PREFIX) $( INSTALLTOP) /include/openssl/$$ i; \
chmod 644 $( INSTALL_PREFIX) $( INSTALLTOP) /include/openssl/$$ i ) ; \
done ;
@for i in $( DIRS) ; \
do \
( cd $$ i; echo " installing $$ i... " ; \
2000-04-13 06:33:22 +00:00
$( MAKE) CC = '${CC}' CFLAG = '${CFLAG}' INSTALL_PREFIX = '${INSTALL_PREFIX}' INSTALLTOP = '${INSTALLTOP}' OPENSSLDIR = '${OPENSSLDIR}' EX_LIBS = '${EX_LIBS}' SDIRS = '${SDIRS}' RANLIB = '${RANLIB}' install ) ; \
2000-01-10 06:22:05 +00:00
done
@for i in $( LIBS) ; \
do \
( echo installing $$ i; \
cp $$ i $( INSTALL_PREFIX) $( INSTALLTOP) /lib; \
$( RANLIB) $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i; \
chmod 644 $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i ) ; \
done
2000-04-13 06:33:22 +00:00
install_docs :
@$( PERL) $( TOP) /util/mkdir-p.pl \
$( INSTALL_PREFIX) $( MANDIR) /man1 \
$( INSTALL_PREFIX) $( MANDIR) /man3 \
$( INSTALL_PREFIX) $( MANDIR) /man5 \
$( INSTALL_PREFIX) $( MANDIR) /man7
@echo installing man 1 and man 5
@for i in doc/apps/*.pod; do \
fn = ` basename $$ i .pod` ; \
sec = ` [ " $$ fn " = "config" ] && echo 5 || echo 1` ; \
( cd ` dirname $$ i` ; \
$( PERL) ../../util/pod2man.pl --section= $$ sec --center= OpenSSL \
--release= $( VERSION) ` basename $$ i` ) \
> $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/` basename $$ i .pod` .$$ sec; \
done
@echo installing man 3 and man 7
@for i in doc/crypto/*.pod doc/ssl/*.pod; do \
fn = ` basename $$ i .pod` ; \
sec = ` [ " $$ fn " = "des_modes" ] && echo 7 || echo 3` ; \
( cd ` dirname $$ i` ; \
$( PERL) ../../util/pod2man.pl --section= $$ sec --center= OpenSSL \
--release= $( VERSION) ` basename $$ i` ) \
> $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/` basename $$ i .pod` .$$ sec; \
done
shlib : all
if [ ! -d shlib_dir ] ; then mkdir shlib_dir ; else rm -f shlib_dir/* ; fi
cd shlib_dir ; ar -x ../libcrypto.a && $( CC) -shared ./*.o -Wl,-soname -Wl,libcrypto.so.0.9 \
-o ./libcrypto.so.0.9.4 && rm *.o
cd shlib_dir ; ar -x ../libssl.a && $( CC) -shared ./*.o -Wl,-soname -Wl,libssl.so.0.9 \
-o ./libssl.so.0.9.4 && rm *.o
2000-01-10 06:22:05 +00:00
# DO NOT DELETE THIS LINE -- make depend depends on it.