2000-01-10 06:22:05 +00:00
##
## Makefile for OpenSSL
##
VERSION =
MAJOR =
MINOR =
2000-11-13 01:03:58 +00:00
SHLIB_VERSION_NUMBER =
SHLIB_VERSION_HISTORY =
SHLIB_MAJOR =
SHLIB_MINOR =
2001-05-20 03:07:21 +00:00
SHLIB_EXT =
2000-01-10 06:22:05 +00:00
PLATFORM = dist
OPTIONS =
2000-11-13 01:03:58 +00:00
CONFIGURE_ARGS =
SHLIB_TARGET =
2003-01-28 21:43:22 +00:00
# HERE indicates where this Makefile lives. This can be used to indicate
# where sub-Makefiles are expected to be. Currently has very limited usage,
# and should probably not be bothered with at all.
HERE = .
2000-01-10 06:22:05 +00:00
# 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
# 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 =
2001-05-20 03:07:21 +00:00
PEX_LIBS =
2000-01-10 06:22:05 +00:00
EX_LIBS =
2001-05-20 03:07:21 +00:00
EXE_EXT =
2003-01-28 21:43:22 +00:00
ARFLAGS =
AR = ar $( ARFLAGS) r
2000-01-10 06:22:05 +00:00
RANLIB = ranlib
PERL = perl
2000-04-13 06:33:22 +00:00
TAR = tar
2000-11-13 01:03:58 +00:00
TARFLAGS = --no-recursion
2003-01-28 21:43:22 +00:00
MAKEDEPPROG = makedepend
2000-01-10 06:22:05 +00:00
2003-02-19 23:17:42 +00:00
# We let the C compiler driver to take care of .s files. This is done in
# order to be excused from maintaining a separate set of architecture
# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
# gcc, then the driver will automatically translate it to -xarch=v8plus
# and pass it down to assembler.
AS = $( CC) -c
2003-10-01 12:32:41 +00:00
ASFLAG = $( CFLAG)
2003-02-19 23:17:42 +00:00
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.
2005-02-25 05:39:05 +00:00
FIPS_DES_ENC = des_enc.o fcrypt_b.o
2000-01-10 06:22:05 +00:00
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
2005-02-25 05:39:05 +00:00
FIPS_SHA1_ASM_OBJ = asm/sx86-out.o
2000-01-10 06:22:05 +00: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
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
2003-01-28 21:43:22 +00:00
# KRB5 stuff
KRB5_INCLUDES =
2003-02-19 23:17:42 +00:00
LIBKRB5 =
2003-01-28 21:43:22 +00:00
2000-11-13 01:03:58 +00:00
# When we're prepared to use shared libraries in the programs we link here
2001-05-20 03:07:21 +00:00
# we might set SHLIB_MARK to '$(SHARED_LIBS)'.
SHLIB_MARK =
2000-11-13 01:03:58 +00:00
2005-02-25 05:39:05 +00:00
DIRS = crypto fips ssl $( SHLIB_MARK) sigs apps test tools
SHLIBDIRS = fips crypto ssl
2000-01-10 06:22:05 +00:00
# dirs in crypto to build
2005-02-25 05:39:05 +00:00
SDIRS = objects \
2000-11-13 01:03:58 +00:00
md2 md4 md5 sha mdc2 hmac ripemd \
2000-01-10 06:22:05 +00:00
des rc2 rc4 rc5 idea bf cast \
2003-01-28 21:43:22 +00:00
bn ec rsa dsa dh dso engine aes \
2005-02-25 05:39:05 +00:00
buffer bio stack lhash rand err \
2003-01-28 21:43:22 +00:00
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5
2005-02-25 05:39:05 +00:00
FDIRS = sha1 rand des aes dsa rsa dh
2003-01-28 21:43:22 +00:00
# tests to perform. "alltests" is a special word indicating that all tests
# should be performed.
TESTS = alltests
2000-01-10 06:22:05 +00:00
2005-02-25 05:39:05 +00:00
MAKEFILE = Makefile
2000-01-10 06:22:05 +00:00
2000-04-13 06:33:22 +00:00
MANDIR = $( OPENSSLDIR) /man
2000-01-10 06:22:05 +00:00
MAN1 = 1
MAN3 = 3
2003-10-01 12:32:41 +00:00
MANSUFFIX =
2000-01-10 06:22:05 +00:00
SHELL = /bin/sh
TOP = .
ONEDIRS = out tmp
EDIRS = times doc bugs util include certs ms shlib mt demos perl sf dep VMS
WDIRS = windows
2000-11-13 01:03:58 +00:00
LIBS = libcrypto.a libssl.a
2005-02-25 05:39:05 +00:00
SIGS = libcrypto.a.sha1
2001-05-20 03:07:21 +00:00
SHARED_CRYPTO = libcrypto$( SHLIB_EXT)
SHARED_SSL = libssl$( SHLIB_EXT)
SHARED_LIBS =
SHARED_LIBS_LINK_EXTS =
2002-07-30 12:44:15 +00:00
SHARED_LDFLAGS =
2000-01-10 06:22:05 +00:00
GENERAL = Makefile
BASENAME = openssl
NAME = $( BASENAME) -$( VERSION)
TARFILE = $( NAME) .tar
WTARFILE = $( NAME) -win.tar
2003-01-28 21:43:22 +00:00
EXHEADER = e_os2.h
2000-01-10 06:22:05 +00:00
HEADER = e_os.h
2001-05-20 03:07:21 +00:00
# When we're prepared to use shared libraries in the programs we link here
# we might remove 'clean-shared' from the targets to perform at this stage
2005-02-25 05:39:05 +00:00
all : Makefile sub_all openssl .pc
sigs : $( SIGS )
libcrypto.a.sha1 : libcrypto .a
if egrep 'define OPENSSL_FIPS' $( TOP) /include/openssl/opensslconf.h > /dev/null; then \
$( RANLIB) libcrypto.a; \
fips/sha1/fips_standalone_sha1 libcrypto.a > libcrypto.a.sha1; \
fi
2000-01-10 06:22:05 +00:00
sub_all :
2001-05-20 03:07:21 +00:00
@for i in $( DIRS) ; \
2000-01-10 06:22:05 +00:00
do \
2001-05-20 03:07:21 +00:00
if [ -d " $$ i " ] ; then \
2000-11-13 01:03:58 +00:00
( cd $$ i && echo " making all in $$ i... " && \
2005-02-25 05:39:05 +00:00
$( 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}' 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}' all ) || exit 1; \
else \
$( MAKE) $$ i; \
fi ; \
done ;
sub_target :
@for i in $( DIRS) ; \
do \
if [ -d " $$ i " ] ; then \
( cd $$ i && echo " making $( TARGET) in $$ i... " && \
$( 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}' 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; \
2001-05-20 03:07:21 +00:00
else \
$( MAKE) $$ i; \
2000-11-13 01:03:58 +00:00
fi ; \
2003-01-28 21:43:22 +00:00
done ;
2000-11-13 01:03:58 +00:00
2001-05-20 03:07:21 +00:00
libcrypto$(SHLIB_EXT) : libcrypto .a
2000-11-13 01:03:58 +00:00
@if [ " $( SHLIB_TARGET) " != "" ] ; then \
2001-05-20 03:07:21 +00:00
$( MAKE) SHLIBDIRS = crypto build-shared; \
2000-11-13 01:03:58 +00:00
else \
echo "There's no support for shared libraries on this platform" >& 2; \
fi
2003-01-28 21:43:22 +00:00
2001-05-20 03:07:21 +00:00
libssl$(SHLIB_EXT) : libcrypto $( SHLIB_EXT ) libssl .a
2000-11-13 01:03:58 +00:00
@if [ " $( SHLIB_TARGET) " != "" ] ; then \
2001-05-20 03:07:21 +00:00
$( MAKE) SHLIBDIRS = ssl SHLIBDEPS = '-lcrypto' build-shared; \
2000-11-13 01:03:58 +00:00
else \
echo "There's no support for shared libraries on this platform" >& 2; \
fi
clean-shared :
2001-05-20 03:07:21 +00:00
@for i in $( SHLIBDIRS) ; do \
if [ -n " $( SHARED_LIBS_LINK_EXTS) " ] ; then \
tmp = " $( SHARED_LIBS_LINK_EXTS) " ; \
for j in $$ { tmp:-x} ; do \
( set -x; rm -f lib$$ i$$ j ) ; \
done ; \
fi ; \
( set -x; rm -f lib$$ i$( SHLIB_EXT) ) ; \
2002-07-30 12:44:15 +00:00
if [ " $( PLATFORM) " = "Cygwin" ] ; then \
2003-01-28 21:43:22 +00:00
( set -x; rm -f cyg$$ i-$( SHLIB_VERSION_NUMBER) $( SHLIB_EXT) lib$$ i$( SHLIB_EXT) .a ) ; \
2002-07-30 12:44:15 +00:00
fi ; \
2000-11-13 01:03:58 +00:00
done
2000-01-10 06:22:05 +00:00
2001-05-20 03:07:21 +00:00
link-shared :
2002-07-30 12:44:15 +00:00
@if [ -n " $( SHARED_LIBS_LINK_EXTS) " ] ; then \
tmp = " $( SHARED_LIBS_LINK_EXTS) " ; \
for i in $( SHLIBDIRS) ; do \
prev = lib$$ i$( SHLIB_EXT) ; \
2001-05-20 03:07:21 +00:00
for j in $$ { tmp:-x} ; do \
2002-08-10 01:40:00 +00:00
( set -x; \
rm -f lib$$ i$$ j; ln -s $$ prev lib$$ i$$ j ) ; \
2001-05-20 03:07:21 +00:00
prev = lib$$ i$$ j; \
done ; \
2002-07-30 12:44:15 +00:00
done ; \
fi
2001-05-20 03:07:21 +00:00
build-shared : clean -shared do_ $( SHLIB_TARGET ) link -shared
do_bsd-gcc-shared : do_gnu -shared
do_linux-shared : do_gnu -shared
do_gnu-shared :
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-07-30 12:44:15 +00:00
( set -x; ${ CC } ${ SHARED_LDFLAGS } \
-shared -o lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2002-01-27 03:13:07 +00:00
-Wl,-soname= lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2002-07-30 12:44:15 +00:00
-Wl,-Bsymbolic \
2000-01-10 06:22:05 +00:00
-Wl,--whole-archive lib$$ i.a \
2000-11-13 01:03:58 +00:00
-Wl,--no-whole-archive $$ libs ${ EX_LIBS } -lc ) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2000-11-13 01:03:58 +00:00
done
2003-01-28 21:43:22 +00:00
DETECT_GNU_LD = ( ${ CC } -Wl,-V /dev/null 2>& 1 | grep '^GNU ld' ) >/dev/null
2002-01-27 03:13:07 +00:00
2002-07-30 12:44:15 +00:00
# For Darwin AKA Mac OS/X (dyld)
do_darwin-shared :
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
( set -x; ${ CC } --verbose -dynamiclib -o lib$$ i${ SHLIB_EXT } \
2002-07-30 12:44:15 +00:00
lib$$ i.a $$ libs -all_load -current_version ${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
-compatibility_version ${ SHLIB_MAJOR } .` echo ${ SHLIB_MINOR } | cut -d. -f1` \
-install_name ${ INSTALLTOP } /lib/lib$$ i${ SHLIB_EXT } ) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l`basename $$ i ${ SHLIB_EXT } .dylib` $$ libs " ; \
2002-07-30 12:44:15 +00:00
echo "" ; \
done
do_cygwin-shared :
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2003-01-28 21:43:22 +00:00
( set -x; ${ CC } -shared -o cyg$$ i-$( SHLIB_VERSION_NUMBER) .dll \
2002-07-30 12:44:15 +00:00
-Wl,-Bsymbolic \
-Wl,--whole-archive lib$$ i.a \
-Wl,--out-implib,lib$$ i.dll.a \
-Wl,--no-whole-archive $$ libs ) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2002-07-30 12:44:15 +00:00
done
2002-01-27 03:13:07 +00:00
# This assumes that GNU utilities are *not* used
do_alpha-osf1-shared :
if ${ DETECT_GNU_LD } ; then \
$( MAKE) do_gnu-shared; \
else \
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-07-30 12:44:15 +00:00
( set -x; ${ CC } ${ SHARED_LDFLAGS } \
-shared -o lib$$ i.so \
2002-01-27 03:13:07 +00:00
-set_version " ${ SHLIB_VERSION_HISTORY } ${ SHLIB_VERSION_NUMBER } " \
-all lib$$ i.a -none $$ libs ${ EX_LIBS } -lc ) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2002-01-27 03:13:07 +00:00
done ; \
fi
2000-11-13 01:03:58 +00:00
# This assumes that GNU utilities are *not* used
2002-01-27 03:13:07 +00:00
# The difference between alpha-osf1-shared and tru64-shared is the `-msym'
# option passed to the linker.
2001-05-20 03:07:21 +00:00
do_tru64-shared :
2002-01-27 03:13:07 +00:00
if ${ DETECT_GNU_LD } ; then \
$( MAKE) do_gnu-shared; \
else \
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-07-30 12:44:15 +00:00
( set -x; ${ CC } ${ SHARED_LDFLAGS } \
-shared -msym -o lib$$ i.so \
2002-01-27 03:13:07 +00:00
-set_version " ${ SHLIB_VERSION_HISTORY } ${ SHLIB_VERSION_NUMBER } " \
-all lib$$ i.a -none $$ libs ${ EX_LIBS } -lc ) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2002-01-27 03:13:07 +00:00
done ; \
fi
# This assumes that GNU utilities are *not* used
# The difference between tru64-shared and tru64-shared-rpath is the
# -rpath ${INSTALLTOP}/lib passed to the linker.
do_tru64-shared-rpath :
if ${ DETECT_GNU_LD } ; then \
$( MAKE) do_gnu-shared; \
else \
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-07-30 12:44:15 +00:00
( set -x; ${ CC } ${ SHARED_LDFLAGS } \
-shared -msym -o lib$$ i.so \
2002-01-27 03:13:07 +00:00
-rpath ${ INSTALLTOP } /lib \
-set_version " ${ SHLIB_VERSION_HISTORY } ${ SHLIB_VERSION_NUMBER } " \
-all lib$$ i.a -none $$ libs ${ EX_LIBS } -lc ) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2002-01-27 03:13:07 +00:00
done ; \
fi
2000-11-13 01:03:58 +00:00
# This assumes that GNU utilities are *not* used
2001-05-20 03:07:21 +00:00
do_solaris-shared :
2002-01-27 03:13:07 +00:00
if ${ DETECT_GNU_LD } ; then \
$( MAKE) do_gnu-shared; \
else \
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-01-27 03:13:07 +00:00
( PATH = /usr/ccs/bin:$$ PATH ; export PATH; \
2003-01-28 21:43:22 +00:00
MINUSZ = '-z ' ; \
( ${ CC } -v 2>& 1 | grep gcc) > /dev/null && MINUSZ = '-Wl,-z,' ; \
set -x; ${ CC } ${ SHARED_LDFLAGS } -G -dy -z text \
-o lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2002-01-27 03:13:07 +00:00
-h lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2005-02-25 05:39:05 +00:00
-Wl,-Bsymbolic \
2003-01-28 21:43:22 +00:00
$$ { MINUSZ} allextract lib$$ i.a $$ { MINUSZ} defaultextract \
$$ libs ${ EX_LIBS } -lc ) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2002-01-27 03:13:07 +00:00
done ; \
fi
2002-07-30 12:44:15 +00:00
# OpenServer 5 native compilers used
do_svr3-shared :
if ${ DETECT_GNU_LD } ; then \
$( MAKE) do_gnu-shared; \
else \
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-07-30 12:44:15 +00:00
( PATH = /usr/ccs/bin:$$ PATH ; export PATH; \
find . -name "*.o" -print > allobjs ; \
OBJS = ; export OBJS ; \
for obj in ` ar t lib$$ i.a` ; do \
2003-10-01 12:32:41 +00:00
OBJS = " $$ {OBJS} `grep / $$ obj allobjs` " ; \
2002-07-30 12:44:15 +00:00
done ; \
2003-10-01 12:32:41 +00:00
set -x; ${ CC } ${ SHARED_LDFLAGS } \
-G -o lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2002-07-30 12:44:15 +00:00
-h lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
$$ { OBJS} $$ libs ${ EX_LIBS } ) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2002-07-30 12:44:15 +00:00
done ; \
fi
2002-01-27 03:13:07 +00:00
# UnixWare 7 and OpenUNIX 8 native compilers used
do_svr5-shared :
if ${ DETECT_GNU_LD } ; then \
$( MAKE) do_gnu-shared; \
else \
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-01-27 03:13:07 +00:00
( PATH = /usr/ccs/bin:$$ PATH ; export PATH; \
2003-10-01 12:32:41 +00:00
SHARE_FLAG = '-G' ; \
( ${ CC } -v 2>& 1 | grep gcc) > /dev/null && SHARE_FLAG = '-shared' ; \
2002-01-27 03:13:07 +00:00
find . -name "*.o" -print > allobjs ; \
OBJS = ; export OBJS ; \
for obj in ` ar t lib$$ i.a` ; do \
2003-10-01 12:32:41 +00:00
OBJS = " $$ {OBJS} `grep / $$ obj allobjs` " ; \
2002-01-27 03:13:07 +00:00
done ; \
2003-10-01 12:32:41 +00:00
set -x; LD_LIBRARY_PATH = .:$$ LD_LIBRARY_PATH \
${ CC } ${ SHARED_LDFLAGS } \
$$ { SHARE_FLAG} -o lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2002-01-27 03:13:07 +00:00
-h lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
$$ { OBJS} $$ libs ${ EX_LIBS } ) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2002-01-27 03:13:07 +00:00
done ; \
fi
# This assumes that GNU utilities are *not* used
do_irix-shared :
if ${ DETECT_GNU_LD } ; then \
$( MAKE) do_gnu-shared; \
else \
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2004-03-17 15:49:33 +00:00
( WHOLELIB = " -all lib $$ i.a -notall " ; \
( ${ CC } -v 2>& 1 | grep gcc) > /dev/null && WHOLELIB = " -Wl,-all,lib $$ i.a,-notall " ; \
set -x; ${ CC } ${ SHARED_LDFLAGS } \
2002-07-30 12:44:15 +00:00
-shared -o lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2002-01-27 03:13:07 +00:00
-Wl,-soname,lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2004-03-17 15:49:33 +00:00
$$ { WHOLELIB} $$ libs ${ EX_LIBS } -lc) || exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2002-01-27 03:13:07 +00:00
done ; \
fi
# This assumes that GNU utilities are *not* used
2003-01-28 21:43:22 +00:00
# HP-UX includes the full pathname of libs we depend on, so we would get
# ./libcrypto (with ./ as path information) compiled into libssl, hence
# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto
# anyway.
# The object modules are loaded from lib$i.a using the undocumented -Fl
# option.
#
# WARNING: Until DSO is fixed to support a search path, we support SHLIB_PATH
# by temporarily specifying "+s"!
#
2002-01-27 03:13:07 +00:00
do_hpux-shared :
2003-01-28 21:43:22 +00:00
for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-07-30 12:44:15 +00:00
( set -x; /usr/ccs/bin/ld ${ SHARED_LDFLAGS } \
2005-02-25 05:39:05 +00:00
+vnocompatwarnings \
2003-01-28 21:43:22 +00:00
-b -z +s \
-o lib$$ i.sl.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2002-01-27 03:13:07 +00:00
+h lib$$ i.sl.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2003-01-28 21:43:22 +00:00
-Fl lib$$ i.a -ldld -lc ) || exit 1; \
chmod a = rx lib$$ i.sl.${ SHLIB_MAJOR } .${ SHLIB_MINOR } ; \
2002-01-27 03:13:07 +00:00
done
# This assumes that GNU utilities are *not* used
2003-01-28 21:43:22 +00:00
# HP-UX includes the full pathname of libs we depend on, so we would get
# ./libcrypto (with ./ as path information) compiled into libssl, hence
# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto
# anyway.
#
# HP-UX in 64bit mode has "+s" enabled by default; it will search for
# shared libraries along LD_LIBRARY_PATH _and_ SHLIB_PATH.
#
2002-01-27 03:13:07 +00:00
do_hpux64-shared :
2003-01-28 21:43:22 +00:00
for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-07-30 12:44:15 +00:00
( set -x; /usr/ccs/bin/ld ${ SHARED_LDFLAGS } \
2005-02-25 05:39:05 +00:00
-b -z \
2003-01-28 21:43:22 +00:00
-o lib$$ i.sl.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2002-01-27 03:13:07 +00:00
+h lib$$ i.sl.${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
2003-01-28 21:43:22 +00:00
+forceload lib$$ i.a -ldl -lc ) || exit 1; \
chmod a = rx lib$$ i.sl.${ SHLIB_MAJOR } .${ SHLIB_MINOR } ; \
2002-01-27 03:13:07 +00:00
done
# The following method is said to work on all platforms. Tests will
# determine if that's how it's gong to be used.
# This assumes that for all but GNU systems, GNU utilities are *not* used.
# ALLSYMSFLAGS would be:
# GNU systems: --whole-archive
# Tru64 Unix: -all
# Solaris: -z allextract
# Irix: -all
# HP/UX-32bit: -Fl
# HP/UX-64bit: +forceload
# AIX: -bnogc
# SHAREDFLAGS would be:
# GNU systems: -shared -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
# Tru64 Unix: -shared \
# -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}"
# Solaris: -G -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
# Irix: -shared -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
# HP/UX-32bit: +vnocompatwarnings -b -z +s \
# +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}
# HP/UX-64bit: -b -z +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}
# AIX: -G -bE:lib$$i.exp -bM:SRE
# SHAREDCMD would be:
# GNU systems: $(CC)
# Tru64 Unix: $(CC)
# Solaris: $(CC)
# Irix: $(CC)
# HP/UX-32bit: /usr/ccs/bin/ld
# HP/UX-64bit: /usr/ccs/bin/ld
# AIX: $(CC)
ALLSYMSFLAG = -bnogc
2002-07-30 12:44:15 +00:00
SHAREDFLAGS = ${ SHARED_LDFLAGS } -G -bE:lib$$ i.exp -bM:SRE
2002-01-27 03:13:07 +00:00
SHAREDCMD = $( CC)
do_aix-shared :
2001-05-20 03:07:21 +00:00
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-01-27 03:13:07 +00:00
( set -x; \
2003-02-19 23:17:42 +00:00
ld -r -o lib$$ i.o $( ALLSYMSFLAG) lib$$ i.a && \
2002-01-27 03:13:07 +00:00
( nm -Pg lib$$ i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$ i.exp; \
2003-02-19 23:17:42 +00:00
$( SHAREDCMD) $( SHAREDFLAGS) \
-o lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } lib$$ i.o \
2002-01-27 03:13:07 +00:00
$$ libs ${ EX_LIBS } ) ) \
|| exit 1; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2000-11-13 01:03:58 +00:00
done
2000-01-10 06:22:05 +00:00
2003-01-28 21:43:22 +00:00
do_reliantunix-shared :
libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-19 23:17:42 +00:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2003-01-28 21:43:22 +00:00
tmpdir = /tmp/openssl.$$ $$ ; rm -rf $$ tmpdir ; \
( set -x; \
( Opwd = ` pwd ` ; mkdir $$ tmpdir || exit 1; \
cd $$ tmpdir || exit 1 ; ar x $$ Opwd/lib$$ i.a ; \
${ CC } -G -o lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } *.o \
) || exit 1; \
cp $$ tmpdir/lib$$ i.so.${ SHLIB_MAJOR } .${ SHLIB_MINOR } . ; \
) || exit 1; \
rm -rf $$ tmpdir ; \
2003-02-19 23:17:42 +00:00
libs = " -l $$ i $$ libs " ; \
2003-01-28 21:43:22 +00:00
done
2005-02-25 05:39:05 +00:00
openssl.pc : Makefile
2003-01-28 21:43:22 +00:00
@ ( echo 'prefix=$(INSTALLTOP)' ; \
echo 'exec_prefix=$${prefix}' ; \
echo 'libdir=$${exec_prefix}/lib' ; \
echo 'includedir=$${prefix}/include' ; \
echo '' ; \
echo 'Name: OpenSSL' ; \
echo 'Description: Secure Sockets Layer and cryptography libraries and tools' ; \
echo 'Version: ' $( VERSION) ; \
echo 'Requires: ' ; \
2003-02-19 23:17:42 +00:00
echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)' ; \
2003-01-28 21:43:22 +00:00
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
2005-02-25 05:39:05 +00:00
Makefile : Makefile .org
@echo "Makefile is older than Makefile.org."
2000-01-10 06:22:05 +00:00
@echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
@false
libclean :
2003-10-01 12:32:41 +00:00
rm -f *.map *.so *.so.* engines/*.so *.a */lib */*/lib
2000-01-10 06:22:05 +00:00
2003-10-01 12:32:41 +00:00
clean : libclean
rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
2000-01-10 06:22:05 +00:00
@for i in $( DIRS) ; \
do \
2001-05-20 03:07:21 +00:00
if [ -d " $$ i " ] ; then \
2000-11-13 01:03:58 +00:00
( cd $$ i && echo " making clean in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' clean ) || exit 1; \
rm -f $( LIBS) ; \
fi ; \
2000-01-10 06:22:05 +00:00
done ;
2003-01-28 21:43:22 +00:00
rm -f openssl.pc
2003-10-01 12:32:41 +00:00
rm -f speed.* .pure
2000-01-10 06:22:05 +00:00
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 :
2005-02-25 05:39:05 +00:00
$( PERL) $( TOP) /util/files.pl Makefile > $( TOP) /MINFO
2000-01-10 06:22:05 +00:00
@for i in $( DIRS) ; \
do \
2001-05-20 03:07:21 +00:00
if [ -d " $$ i " ] ; then \
2000-11-13 01:03:58 +00:00
( cd $$ i && echo " making 'files' in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' PERL = '${PERL}' files ) || exit 1; \
fi ; \
2000-01-10 06:22:05 +00:00
done ;
links :
@$( PERL) $( TOP) /util/mkdir-p.pl include/openssl
@$( PERL) $( TOP) /util/mklink.pl include/openssl $( EXHEADER)
@for i in $( DIRS) ; do \
2001-05-20 03:07:21 +00:00
if [ -d " $$ i " ] ; then \
2000-11-13 01:03:58 +00:00
( cd $$ i && echo " making links in $$ i... " && \
2005-02-25 05:39:05 +00: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}' 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; \
2000-11-13 01:03:58 +00:00
fi ; \
2000-01-10 06:22:05 +00:00
done ;
2003-01-28 21:43:22 +00:00
gentests :
@( cd test && echo "generating dummy tests (if needed)..." && \
2005-02-25 05:39:05 +00: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}' 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 ) ;
2003-01-28 21:43:22 +00:00
2000-01-10 06:22:05 +00:00
dclean :
rm -f *.bak
@for i in $( DIRS) ; \
do \
2001-05-20 03:07:21 +00:00
if [ -d " $$ i " ] ; then \
2000-11-13 01:03:58 +00:00
( cd $$ i && echo " making dclean in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' PERL = '${PERL}' dclean ) || exit 1; \
fi ; \
2000-01-10 06:22:05 +00:00
done ;
2000-04-13 06:33:22 +00:00
rehash : rehash .time
rehash.time : certs
2005-02-25 05:39:05 +00:00
@( OPENSSL = " `pwd`/apps/openssl $( EXE_EXT) " ; OPENSSL_DEBUG_MEMORY = on; \
2003-01-28 21:43:22 +00:00
export OPENSSL OPENSSL_DEBUG_MEMORY; \
2003-10-01 12:32:41 +00:00
LD_LIBRARY_PATH = " `pwd`: $$ LD_LIBRARY_PATH " ; \
DYLD_LIBRARY_PATH = " `pwd`: $$ DYLD_LIBRARY_PATH " ; \
SHLIB_PATH = " `pwd`: $$ SHLIB_PATH " ; \
LIBPATH = " `pwd`: $$ LIBPATH " ; \
2003-02-19 23:17:42 +00:00
if [ " $( PLATFORM) " = "Cygwin" ] ; then PATH = " `pwd`: $$ PATH " ; fi ; \
2003-01-28 21:43:22 +00:00
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
$( PERL) 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..." && \
2005-02-25 05:39:05 +00: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}' 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 ) ;
2003-10-01 12:32:41 +00:00
@LD_LIBRARY_PATH= " `pwd`: $$ LD_LIBRARY_PATH " ; \
DYLD_LIBRARY_PATH = " `pwd`: $$ DYLD_LIBRARY_PATH " ; \
SHLIB_PATH = " `pwd`: $$ SHLIB_PATH " ; \
LIBPATH = " `pwd`: $$ LIBPATH " ; \
if [ " $( PLATFORM) " = "Cygwin" ] ; then PATH = " `pwd`: $$ PATH " ; fi ; \
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
apps/openssl version -a
2000-01-10 06:22:05 +00:00
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 \
2001-05-20 03:07:21 +00:00
if [ -d " $$ i " ] ; then \
2000-11-13 01:03:58 +00:00
( cd $$ i && echo " making dependencies $$ i... " && \
2003-01-28 21:43:22 +00:00
$( MAKE) SDIRS = '${SDIRS}' CFLAG = '${CFLAG}' DEPFLAG = '${DEPFLAG}' MAKEDEPPROG = '${MAKEDEPPROG}' KRB5_INCLUDES = '${KRB5_INCLUDES}' PERL = '${PERL}' depend ) || exit 1; \
2000-11-13 01:03:58 +00:00
fi ; \
2000-01-10 06:22:05 +00:00
done ;
lint :
@for i in $( DIRS) ; \
do \
2001-05-20 03:07:21 +00:00
if [ -d " $$ i " ] ; then \
2000-11-13 01:03:58 +00:00
( cd $$ i && echo " making lint $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' lint ) || exit 1; \
fi ; \
2000-01-10 06:22:05 +00:00
done ;
tags :
2005-02-25 05:39:05 +00:00
rm -f TAGS
find . -name '[^.]*.[ch]' | xargs etags -a
2000-01-10 06:22:05 +00:00
errors :
2002-01-27 03:13:07 +00:00
$( PERL) util/mkerr.pl -recurse -write
2003-01-28 21:43:22 +00:00
( cd crypto/engine; $( MAKE) PERL = $( PERL) errors)
2000-01-10 06:22:05 +00:00
2000-11-13 01:03:58 +00:00
stacks :
2002-01-27 03:13:07 +00:00
$( PERL) util/mkstack.pl -write
2000-11-13 01:03:58 +00:00
2000-01-10 06:22:05 +00:00
util/libeay.num ::
2002-01-27 03:13:07 +00:00
$( PERL) util/mkdef.pl crypto update
2000-01-10 06:22:05 +00:00
util/ssleay.num ::
2002-01-27 03:13:07 +00:00
$( PERL) util/mkdef.pl ssl update
2000-01-10 06:22:05 +00:00
2003-01-28 21:43:22 +00:00
crypto/objects/obj_dat.h : crypto /objects /obj_dat .pl crypto /objects /obj_mac .h
2002-01-27 03:13:07 +00:00
$( PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
2003-01-28 21:43:22 +00:00
crypto/objects/obj_mac.h : crypto /objects /objects .pl crypto /objects /objects .txt crypto /objects /obj_mac .num
2002-01-27 03:13:07 +00:00
$( PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
2000-04-13 06:33:22 +00:00
2005-02-25 05:39:05 +00:00
apps/openssl-vms.cnf : apps /openssl .cnf
$( PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
2000-01-10 06:22:05 +00:00
TABLE : Configure
( echo 'Output of `Configure TABLE' "':" ; \
2002-01-27 03:13:07 +00:00
$( PERL) Configure TABLE) > TABLE
2000-01-10 06:22:05 +00:00
2005-02-25 05:39:05 +00:00
update : depend errors stacks util /libeay .num util /ssleay .num crypto /objects /obj_dat .h apps /openssl -vms .cnf TABLE
2000-01-10 06:22:05 +00:00
2002-07-30 13:38:06 +00:00
# Build distribution tar-file. As the list of files returned by "find" is
# pretty long, on several platforms a "too many arguments" error or similar
# would occur. Therefore the list of files is temporarily stored into a file
# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
# tar does not support the --files-from option.
2000-01-10 06:22:05 +00:00
tar :
2003-01-28 21:43:22 +00:00
find . -type d -print | xargs chmod 755
find . -type f -print | xargs chmod a+r
find . -type f -perm -0100 -print | xargs chmod a+x
2002-07-30 13:38:06 +00:00
find * \! -path CVS/\* \! -path \* /CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$( TARFILE) .list; \
$( TAR) $( TARFLAGS) --files-from ../$( TARFILE) .list -cvf - | \
2000-01-10 06:22:05 +00:00
tardy --user_number= 0 --user_name= openssl \
--group_number= 0 --group_name= openssl \
--prefix= openssl-$( VERSION) - | \
gzip --best >../$( TARFILE) .gz; \
2002-07-30 13:38:06 +00:00
rm -f ../$( TARFILE) .list; \
2000-01-10 06:22:05 +00:00
ls -l ../$( TARFILE) .gz
2003-01-28 21:43:22 +00:00
tar-snap :
@$( TAR) $( TARFLAGS) -cvf - \
` 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` | \
tardy --user_number= 0 --user_name= openssl \
--group_number= 0 --group_name= openssl \
--prefix= openssl-$( VERSION) - > ../$( TARFILE) ; \
ls -l ../$( TARFILE)
2000-01-10 06:22:05 +00:00
dist :
$( PERL) Configure dist
@$( MAKE) dist_pem_h
@$( MAKE) SDIRS = '${SDIRS}' clean
2002-07-30 13:38:06 +00:00
@$( MAKE) TAR = '${TAR}' TARFLAGS = '${TARFLAGS}' tar
2000-01-10 06:22:05 +00:00
dist_pem_h :
( cd crypto/pem; $( MAKE) CC = '${CC}' SDIRS = '${SDIRS}' CFLAG = '${CFLAG}' pem.h; $( MAKE) clean)
2005-02-25 05:39:05 +00:00
install : all install_docs install_sw
install_sw :
2000-01-10 06:22:05 +00:00
@$( PERL) $( TOP) /util/mkdir-p.pl $( INSTALL_PREFIX) $( INSTALLTOP) /bin \
$( INSTALL_PREFIX) $( INSTALLTOP) /lib \
2003-01-28 21:43:22 +00:00
$( INSTALL_PREFIX) $( INSTALLTOP) /lib/pkgconfig \
2000-01-10 06:22:05 +00:00
$( INSTALL_PREFIX) $( INSTALLTOP) /include/openssl \
$( INSTALL_PREFIX) $( OPENSSLDIR) /misc \
$( INSTALL_PREFIX) $( OPENSSLDIR) /certs \
2005-02-25 05:39:05 +00:00
$( INSTALL_PREFIX) $( OPENSSLDIR) /private
2000-01-10 06:22:05 +00:00
@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 \
2001-05-20 03:07:21 +00:00
if [ -d " $$ i " ] ; then \
2000-11-13 01:03:58 +00:00
( cd $$ i; echo " installing $$ i... " ; \
2001-05-20 03:07:21 +00:00
$( 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 ) ; \
2000-11-13 01:03:58 +00:00
fi ; \
2000-01-10 06:22:05 +00:00
done
@for i in $( LIBS) ; \
do \
2000-11-13 01:03:58 +00:00
if [ -f " $$ i " ] ; then \
( echo installing $$ i; \
2003-01-28 21:43:22 +00:00
cp $$ i $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
2005-02-25 05:39:05 +00:00
if egrep 'define OPENSSL_FIPS' $( TOP) /include/openssl/opensslconf.h > /dev/null; then \
: ; \
else \
$( RANLIB) $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
fi ; \
2003-01-28 21:43:22 +00:00
chmod 644 $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
mv -f $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i ) ; \
2002-07-30 12:44:15 +00:00
fi ; \
2003-01-28 21:43:22 +00:00
done ;
2001-05-20 03:07:21 +00:00
@if [ -n " $( SHARED_LIBS) " ] ; then \
tmp = " $( SHARED_LIBS) " ; \
for i in $$ { tmp:-x} ; \
do \
2002-07-30 12:44:15 +00:00
if [ -f " $$ i " -o -f " $$ i.a " ] ; then \
2001-05-20 03:07:21 +00:00
( echo installing $$ i; \
2002-07-30 12:44:15 +00:00
if [ " $( PLATFORM) " != "Cygwin" ] ; then \
2003-01-28 21:43:22 +00:00
cp $$ i $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
chmod 555 $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
mv -f $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i; \
2002-07-30 12:44:15 +00:00
else \
2003-02-19 23:17:42 +00:00
c = ` echo $$ i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/' ` ; \
2003-01-28 21:43:22 +00:00
cp $$ c $( INSTALL_PREFIX) $( INSTALLTOP) /bin/$$ c.new; \
chmod 755 $( INSTALL_PREFIX) $( INSTALLTOP) /bin/$$ c.new; \
mv -f $( INSTALL_PREFIX) $( INSTALLTOP) /bin/$$ c.new $( INSTALL_PREFIX) $( INSTALLTOP) /bin/$$ c; \
cp $$ i.a $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.a.new; \
chmod 644 $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.a.new; \
mv -f $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.a.new $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.a; \
2002-07-30 12:44:15 +00:00
fi ) ; \
fi ; \
2001-05-20 03:07:21 +00:00
done ; \
( here = "`pwd`" ; \
cd $( INSTALL_PREFIX) $( INSTALLTOP) /lib; \
2002-08-10 01:48:01 +00:00
set $( MAKE) ; \
$$ 1 -f $$ here/Makefile link-shared ) ; \
2003-02-19 23:17:42 +00:00
if [ " $( INSTALLTOP) " != "/usr" ] ; then \
echo 'OpenSSL shared libraries have been installed in:' ; \
echo ' $(INSTALLTOP)' ; \
echo '' ; \
sed -e '1,/^$$/d' doc/openssl-shared.txt; \
fi ; \
2001-05-20 03:07:21 +00:00
fi
2005-02-25 05:39:05 +00:00
@for i in $( SIGS) ; \
do \
if [ -f " $$ i " ] ; then \
( echo installing $$ i; \
cp $$ i $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
chmod 644 $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
mv -f $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i ) ; \
fi ; \
done ;
2003-01-28 21:43:22 +00:00
cp openssl.pc $( INSTALL_PREFIX) $( INSTALLTOP) /lib/pkgconfig
2004-03-17 15:49:33 +00:00
chmod 644 $( INSTALL_PREFIX) $( INSTALLTOP) /lib/pkgconfig/openssl.pc
2000-01-10 06:22:05 +00:00
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
2003-01-28 21:43:22 +00:00
@pod2man= " `cd util; ./pod2mantest $( PERL) ` " ; \
here = "`pwd`" ; \
filecase = ; \
if [ " $( PLATFORM) " = "DJGPP" -o " $( PLATFORM) " = "Cygwin" ] ; then \
filecase = -i; \
fi ; \
2002-08-10 01:40:00 +00:00
for i in doc/apps/*.pod; do \
2000-04-13 06:33:22 +00:00
fn = ` basename $$ i .pod` ; \
2001-07-19 19:59:37 +00:00
if [ " $$ fn " = "config" ] ; then sec = 5; else sec = 1; fi ; \
2003-10-01 12:32:41 +00:00
echo " installing man $$ sec/ $$ fn. $$ {sec} $( MANSUFFIX) " ; \
2002-07-30 13:38:06 +00:00
( cd ` $( PERL) util/dirname.pl $$ i` ; \
2003-01-28 21:43:22 +00:00
sh -c " $$ pod2man \
2002-07-30 13:38:06 +00:00
--section= $$ sec --center= OpenSSL \
--release= $( VERSION) ` basename $$ i` " ) \
2003-10-01 12:32:41 +00:00
> $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/$$ fn.$$ { sec} $( MANSUFFIX) ; \
2003-01-28 21:43:22 +00:00
$( PERL) util/extract-names.pl < $$ i | \
grep -v $$ filecase " ^ $$ fn\$ $" | \
2004-03-17 15:49:33 +00:00
grep -v "[ ]" | \
2003-01-28 21:43:22 +00:00
( cd $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/; \
while read n; do \
2003-10-01 12:32:41 +00:00
$$ here/util/point.sh $$ fn.$$ { sec} $( MANSUFFIX) " $$ n " .$$ { sec} $( MANSUFFIX) ; \
2003-01-28 21:43:22 +00:00
done ) ; \
2002-08-10 01:40:00 +00:00
done ; \
2002-08-10 01:48:01 +00:00
for i in doc/crypto/*.pod doc/ssl/*.pod; do \
2000-04-13 06:33:22 +00:00
fn = ` basename $$ i .pod` ; \
2001-07-19 19:59:37 +00:00
if [ " $$ fn " = "des_modes" ] ; then sec = 7; else sec = 3; fi ; \
2003-10-01 12:32:41 +00:00
echo " installing man $$ sec/ $$ fn. $$ {sec} $( MANSUFFIX) " ; \
2002-07-30 13:38:06 +00:00
( cd ` $( PERL) util/dirname.pl $$ i` ; \
2003-01-28 21:43:22 +00:00
sh -c " $$ pod2man \
2002-07-30 13:38:06 +00:00
--section= $$ sec --center= OpenSSL \
--release= $( VERSION) ` basename $$ i` " ) \
2003-10-01 12:32:41 +00:00
> $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/$$ fn.$$ { sec} $( MANSUFFIX) ; \
2003-01-28 21:43:22 +00:00
$( PERL) util/extract-names.pl < $$ i | \
grep -v $$ filecase " ^ $$ fn\$ $" | \
2004-03-17 15:49:33 +00:00
grep -v "[ ]" | \
2003-01-28 21:43:22 +00:00
( cd $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/; \
while read n; do \
2003-10-01 12:32:41 +00:00
$$ here/util/point.sh $$ fn.$$ { sec} $( MANSUFFIX) " $$ n " .$$ { sec} $( MANSUFFIX) ; \
2003-01-28 21:43:22 +00:00
done ) ; \
2000-04-13 06:33:22 +00:00
done
2000-01-10 06:22:05 +00:00
# DO NOT DELETE THIS LINE -- make depend depends on it.