1999-03-22 22:45:08 +08:00
##
## Makefile for OpenSSL
##
1999-04-29 00:16:31 +08:00
VERSION =
MAJOR =
MINOR =
2000-07-21 23:08:53 +08:00
SHLIB_VERSION_NUMBER =
SHLIB_VERSION_HISTORY =
SHLIB_MAJOR =
SHLIB_MINOR =
2000-10-13 23:25:06 +08:00
SHLIB_EXT =
1999-03-22 22:45:08 +08:00
PLATFORM = dist
1999-05-13 18:28:14 +08:00
OPTIONS =
2000-08-17 18:23:45 +08:00
CONFIGURE_ARGS =
2000-07-21 23:08:53 +08:00
SHLIB_TARGET =
2002-12-15 13:59:13 +08: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 = .
1999-04-30 05:52:08 +08: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 =
1999-04-25 06:59:36 +08:00
INSTALLTOP = /usr/local/ssl
# Do not edit this manually. Use Configure --openssldir=DIR do change this!
OPENSSLDIR = /usr/local/ssl
1999-03-22 22:45:08 +08:00
1998-12-21 18:52:47 +08:00
# 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.
1999-04-13 19:01:44 +08:00
# SSL_FORBID_ENULL - define if you want the server to be not 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
1999-04-27 09:14:46 +08:00
DEPFLAG =
2001-03-23 05:20:54 +08:00
PEX_LIBS =
1998-12-22 23:04:48 +08:00
EX_LIBS =
2001-04-04 23:50:30 +08:00
EXE_EXT =
2002-08-02 04:28:16 +08:00
ARFLAGS =
AR = ar $( ARFLAGS) r
1999-04-01 20:34:33 +08:00
RANLIB = ranlib
PERL = perl
2000-02-24 09:59:55 +08:00
TAR = tar
2000-09-21 15:15:52 +08:00
TARFLAGS = --no-recursion
2001-02-20 00:06:34 +08:00
MAKEDEPPROG = makedepend
1998-12-21 18:52:47 +08:00
2003-01-04 01:37:53 +08: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
ASFLAGS = $( CFLAG)
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
2000-12-01 06:53:34 +08:00
# KRB5 stuff
KRB5_INCLUDES =
2003-02-14 21:12:00 +08:00
LIBKRB5 =
2000-12-01 06:53:34 +08:00
2002-10-12 02:51:29 +08:00
DIRS = crypto ssl engines apps test tools
1999-04-29 00:16:31 +08:00
SHLIBDIRS = crypto ssl
1998-12-21 18:52:47 +08:00
# dirs in crypto to build
SDIRS = \
2000-08-14 22:05:53 +08:00
md2 md4 md5 sha mdc2 hmac ripemd \
1998-12-21 18:56:39 +08:00
des rc2 rc4 rc5 idea bf cast \
2002-08-09 16:43:04 +08:00
bn ec rsa dsa ecdsa dh ecdh dso engine aes \
1999-01-25 09:09:21 +08:00
buffer bio stack lhash rand err objects \
2001-07-10 05:46:58 +08:00
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5
1998-12-21 18:52:47 +08:00
2000-11-13 04:24:30 +08:00
# tests to perform. "alltests" is a special word indicating that all tests
# should be performed.
TESTS = alltests
1998-12-21 18:52:47 +08:00
MAKEFILE = Makefile.ssl
2002-10-11 08:37:11 +08:00
NEWMAKE = make
MAKE = $( NEWMAKE) -f Makefile.ssl
1998-12-21 18:52:47 +08:00
2000-02-16 02:34:46 +08:00
MANDIR = $( OPENSSLDIR) /man
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
1999-05-13 19:37:32 +08:00
EDIRS = times doc bugs util include certs ms shlib mt demos perl sf dep VMS
1998-12-21 18:56:39 +08:00
WDIRS = windows
2000-07-21 23:08:53 +08:00
LIBS = libcrypto.a libssl.a
2000-10-13 23:25:06 +08:00
SHARED_CRYPTO = libcrypto$( SHLIB_EXT)
SHARED_SSL = libssl$( SHLIB_EXT)
SHARED_LIBS =
SHARED_LIBS_LINK_EXTS =
2002-01-02 18:30:07 +08:00
SHARED_LDFLAGS =
1998-12-21 18:56:39 +08:00
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
2001-02-20 00:06:34 +08:00
EXHEADER = e_os2.h
1998-12-21 18:56:39 +08:00
HEADER = e_os.h
1998-12-21 18:52:47 +08:00
2002-11-07 07:35:00 +08:00
all : Makefile .ssl build_all openssl .pc
1998-12-21 18:52:47 +08:00
2002-10-09 22:52:01 +08:00
BUILD_CMD = if echo " $( DIRS) " | grep " $$ i " >/dev/null 2>/dev/null; then \
2000-10-13 23:25:06 +08:00
if [ -d " $$ i " ] ; then \
2000-07-21 23:08:53 +08:00
( cd $$ i && echo " making all in $$ i... " && \
2003-01-04 01:37:53 +08:00
$( MAKE) CC = '${CC}' PLATFORM = '${PLATFORM}' CFLAG = '${CFLAG}' AS = '${AS}' ASFLAGS = '${ASFLAGS}' 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}' 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; \
2000-10-13 23:25:06 +08:00
else \
$( MAKE) $$ i; \
2002-10-09 22:52:01 +08:00
fi ; fi
2002-10-09 23:03:21 +08:00
sub_all : build_all
2002-10-09 22:52:01 +08:00
build_all : build_libs build_apps build_tests build_tools
2002-10-12 02:51:29 +08:00
build_libs : build_crypto build_ssl build_engines
2002-10-09 22:52:01 +08:00
build_crypto :
@i= crypto; $( BUILD_CMD)
build_ssl :
@i= ssl; $( BUILD_CMD)
2002-10-12 02:51:29 +08:00
build_engines :
@i= engines; $( BUILD_CMD)
2002-10-09 22:52:01 +08:00
build_apps :
@i= apps; $( BUILD_CMD)
build_tests :
@i= test; $( BUILD_CMD)
build_tools :
@i= tools; $( BUILD_CMD)
2000-07-21 23:08:53 +08:00
2000-10-13 23:25:06 +08:00
libcrypto$(SHLIB_EXT) : libcrypto .a
2000-07-25 04:36:46 +08:00
@if [ " $( SHLIB_TARGET) " != "" ] ; then \
2000-10-13 23:25:06 +08:00
$( MAKE) SHLIBDIRS = crypto build-shared; \
2000-07-25 04:36:46 +08:00
else \
echo "There's no support for shared libraries on this platform" >& 2; \
fi
2002-01-29 00:30:06 +08:00
2000-10-13 23:25:06 +08:00
libssl$(SHLIB_EXT) : libcrypto $( SHLIB_EXT ) libssl .a
2000-07-25 04:36:46 +08:00
@if [ " $( SHLIB_TARGET) " != "" ] ; then \
2001-03-16 06:10:07 +08:00
$( MAKE) SHLIBDIRS = ssl SHLIBDEPS = '-lcrypto' build-shared; \
2000-07-25 04:36:46 +08:00
else \
echo "There's no support for shared libraries on this platform" >& 2; \
fi
2000-07-21 23:08:53 +08:00
clean-shared :
2000-10-13 23:25:06 +08: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-02-14 20:28:24 +08:00
if [ " $( PLATFORM) " = "Cygwin" ] ; then \
2002-02-13 22:44:33 +08:00
( set -x; rm -f cyg$$ i$( SHLIB_EXT) lib$$ i$( SHLIB_EXT) .a ) ; \
fi ; \
2000-07-21 23:08:53 +08:00
done
1998-12-21 18:52:47 +08:00
2000-10-13 23:25:06 +08:00
link-shared :
2002-10-11 08:37:11 +08:00
@ for i in ${ SHLIBDIRS } ; do \
2002-12-15 13:59:13 +08:00
$( NEWMAKE) -f $( HERE) /Makefile.shared \
2002-10-11 08:37:11 +08:00
LIBNAME = $$ i LIBVERSION = ${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
LIBCOMPATVERSIONS = " ; ${ SHLIB_VERSION_HISTORY } " \
symlink.$( SHLIB_TARGET) ; \
2001-10-10 22:46:41 +08:00
libs = " $$ libs -l $$ i " ; \
2000-10-22 05:24:11 +08:00
done
2002-10-11 08:37:11 +08:00
build-shared : do_ $( SHLIB_TARGET ) link -shared
do_$(SHLIB_TARGET) :
@ libs = '-L. ${SHLIBDEPS}' ; for i in ${ SHLIBDIRS } ; do \
2003-02-14 21:12:00 +08:00
if [ " ${ SHLIBDIRS } " = "ssl" -a -n " $( LIBKRB5) " ] ; then \
libs = " $( LIBKRB5) $$ libs " ; \
fi ; \
2002-10-11 08:37:11 +08:00
$( NEWMAKE) -f Makefile.shared \
CC = " $( CC) " LDFLAGS = " $( LDFLAGS) " \
SHARED_LDFLAGS = " $( SHARED_LDFLAGS) " \
LIBNAME = $$ i LIBVERSION = ${ SHLIB_MAJOR } .${ SHLIB_MINOR } \
LIBCOMPATVERSIONS = " ; ${ SHLIB_VERSION_HISTORY } " \
LIBDEPS = " $$ libs $( EX_LIBS) " \
2003-02-14 07:52:54 +08:00
LIBRPATH = " $( INSTALLTOP) /lib " \
2002-10-11 08:37:11 +08:00
link_a.$( SHLIB_TARGET) ; \
2003-02-14 21:12:00 +08:00
libs = " -l $$ i $$ libs " ; \
2002-01-26 11:17:27 +08:00
done
2002-12-20 05:56:40 +08:00
openssl.pc : Makefile .ssl
2002-11-07 07:35:00 +08: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: ' ; \
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)' ; \
2002-12-30 07:03:12 +08:00
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
2002-11-07 07:35:00 +08:00
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."
1999-07-23 00:10:31 +08:00
@echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
1999-01-25 02:15:00 +08:00
@false
1998-12-21 19:00:56 +08:00
libclean :
2003-02-22 23:04:03 +08:00
rm -f *.map *.so *.so.* engines/*.so *.a */lib */*/lib
1998-12-21 19:00:56 +08:00
2003-02-22 23:04:03 +08:00
clean : libclean
rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
1998-12-21 18:52:47 +08:00
@for i in $( DIRS) ; \
do \
2000-10-13 23:25:06 +08:00
if [ -d " $$ i " ] ; then \
2000-07-21 23:08:53 +08:00
( cd $$ i && echo " making clean in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' clean ) || exit 1; \
rm -f $( LIBS) ; \
fi ; \
1998-12-21 18:52:47 +08:00
done ;
2002-11-07 07:35:00 +08:00
rm -f openssl.pc
2003-02-22 23:04:03 +08:00
rm -f speed.* .pure
1999-03-06 20:32:06 +08:00
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
1999-04-01 20:34:33 +08:00
$( PERL) util/mk1mf.pl >makefile.one; \
1998-12-21 18:52:47 +08:00
sh util/do_ms.sh
1999-04-08 23:19:36 +08:00
files :
1999-04-01 20:34:33 +08:00
$( PERL) $( TOP) /util/files.pl Makefile.ssl > $( TOP) /MINFO
1998-12-21 18:52:47 +08:00
@for i in $( DIRS) ; \
do \
2000-10-13 23:25:06 +08:00
if [ -d " $$ i " ] ; then \
2000-07-21 23:08:53 +08:00
( cd $$ i && echo " making 'files' in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' PERL = '${PERL}' files ) || exit 1; \
fi ; \
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
1999-06-07 21:33:50 +08:00
@$( PERL) $( TOP) /util/mkdir-p.pl include/openssl
2001-02-22 22:45:02 +08:00
@$( PERL) $( TOP) /util/mklink.pl include/openssl $( EXHEADER)
1999-03-06 20:32:06 +08:00
@for i in $( DIRS) ; do \
2000-10-13 23:25:06 +08:00
if [ -d " $$ i " ] ; then \
2000-07-21 23:08:53 +08:00
( cd $$ i && echo " making links in $$ i... " && \
2000-12-01 06:53:34 +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}' PERL = '${PERL}' KRB5_INCLUDES = '${KRB5_INCLUDES}' LIBKRB5 = '${LIBKRB5}' links ) || exit 1; \
2000-07-21 23:08:53 +08:00
fi ; \
1998-12-21 18:52:47 +08:00
done ;
2002-07-23 21:31:04 +08:00
gentests :
@( cd test && echo "generating dummy tests (if needed)..." && \
$( 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}' 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 ) ;
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 \
2000-10-13 23:25:06 +08:00
if [ -d " $$ i " ] ; then \
2000-07-21 23:08:53 +08:00
( cd $$ i && echo " making dclean in $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' PERL = '${PERL}' dclean ) || exit 1; \
fi ; \
1998-12-21 18:52:47 +08:00
done ;
2000-02-12 00:25:44 +08:00
rehash : rehash .time
rehash.time : certs
2002-12-05 03:13:43 +08:00
@( OPENSSL = "`pwd`/apps/openssl" ; OPENSSL_DEBUG_MEMORY = on; \
2001-10-30 16:00:59 +08:00
export OPENSSL OPENSSL_DEBUG_MEMORY; \
2003-03-20 19:37:47 +08:00
LD_LIBRARY_PATH = " `pwd`: $$ LD_LIBRARY_PATH " ; \
DYLD_LIBRARY_PATH = " `pwd`: $$ DYLD_LIBRARY_PATH " ; \
SHLIB_PATH = " `pwd`: $$ SHLIB_PATH " ; \
LIBPATH = " `pwd`: $$ LIBPATH " ; \
2003-01-13 23:16:40 +08:00
if [ " $( PLATFORM) " = "Cygwin" ] ; then PATH = " `pwd`: $$ PATH " ; fi ; \
2002-11-16 00:48:38 +08:00
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
2001-10-30 16:00:59 +08:00
$( PERL) tools/c_rehash certs)
2000-02-12 01:18:50 +08:00
touch rehash.time
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
1999-04-29 00:14:39 +08:00
tests : rehash
1999-03-06 20:32:06 +08:00
@( cd test && echo "testing..." && \
2002-06-06 18:21:04 +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}' 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-03-20 19:37:47 +08: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
1998-12-21 18:52:47 +08:00
2000-02-24 07:47:05 +08:00
report :
@$( PERL) util/selftest.pl
1998-12-21 18:52:47 +08:00
depend :
@for i in $( DIRS) ; \
do \
2000-10-13 23:25:06 +08:00
if [ -d " $$ i " ] ; then \
2000-07-21 23:08:53 +08:00
( cd $$ i && echo " making dependencies $$ i... " && \
2002-06-28 00:39:25 +08:00
$( MAKE) SDIRS = '${SDIRS}' CFLAG = '${CFLAG}' DEPFLAG = '${DEPFLAG}' MAKEDEPPROG = '${MAKEDEPPROG}' KRB5_INCLUDES = '${KRB5_INCLUDES}' PERL = '${PERL}' depend ) || exit 1; \
2000-07-21 23:08:53 +08:00
fi ; \
1998-12-21 18:52:47 +08:00
done ;
lint :
@for i in $( DIRS) ; \
do \
2000-10-13 23:25:06 +08:00
if [ -d " $$ i " ] ; then \
2000-07-21 23:08:53 +08:00
( cd $$ i && echo " making lint $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' lint ) || exit 1; \
fi ; \
1998-12-21 18:52:47 +08:00
done ;
tags :
@for i in $( DIRS) ; \
do \
2000-10-13 23:25:06 +08:00
if [ -d " $$ i " ] ; then \
2000-07-21 23:08:53 +08:00
( cd $$ i && echo " making tags $$ i... " && \
$( MAKE) SDIRS = '${SDIRS}' tags ) || exit 1; \
fi ; \
1998-12-21 18:52:47 +08:00
done ;
errors :
2001-01-11 00:40:30 +08:00
$( PERL) util/mkerr.pl -recurse -write
2002-10-12 02:51:29 +08:00
( cd engines; $( MAKE) PERL = $( PERL) errors)
1998-12-21 18:52:47 +08:00
2000-06-01 13:13:52 +08:00
stacks :
2001-01-11 00:40:30 +08:00
$( PERL) util/mkstack.pl -write
2000-06-01 13:13:52 +08:00
1999-06-10 00:18:53 +08:00
util/libeay.num ::
2001-01-11 00:40:30 +08:00
$( PERL) util/mkdef.pl crypto update
1999-06-10 00:18:53 +08:00
util/ssleay.num ::
2001-01-11 00:40:30 +08:00
$( PERL) util/mkdef.pl ssl update
1999-06-10 00:18:53 +08:00
2001-03-06 16:58:38 +08:00
crypto/objects/obj_dat.h : crypto /objects /obj_dat .pl crypto /objects /obj_mac .h
2001-01-11 00:40:30 +08:00
$( PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
2001-03-14 00:30:09 +08:00
crypto/objects/obj_mac.h : crypto /objects /objects .pl crypto /objects /objects .txt crypto /objects /obj_mac .num
2001-01-11 00:40:30 +08:00
$( PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
1999-09-30 05:03:02 +08:00
1999-06-10 05:13:30 +08:00
TABLE : Configure
1999-06-10 07:13:03 +08:00
( echo 'Output of `Configure TABLE' "':" ; \
2001-01-11 00:40:30 +08:00
$( PERL) Configure TABLE) > TABLE
1999-06-10 00:18:53 +08:00
2000-06-01 13:13:52 +08:00
update : depend errors stacks util /libeay .num util /ssleay .num crypto /objects /obj_dat .h TABLE
1999-06-10 00:18:53 +08:00
2002-06-12 20:26:34 +08: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.
1998-12-21 18:52:47 +08:00
tar :
2002-11-11 16:57:04 +08: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-06-12 20:26:34 +08:00
find * \! -path CVS/\* \! -path \* /CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$( TARFILE) .list; \
$( TAR) $( TARFLAGS) --files-from ../$( TARFILE) .list -cvf - | \
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; \
2002-06-12 20:26:34 +08:00
rm -f ../$( TARFILE) .list; \
1998-12-22 23:04:48 +08:00
ls -l ../$( TARFILE) .gz
1998-12-21 18:52:47 +08:00
2001-02-22 22:45:02 +08:00
tar-snap :
@$( TAR) $( TARFLAGS) -cvf - \
2002-04-13 20:28:44 +08:00
` 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` | \
2001-02-22 22:45:02 +08:00
tardy --user_number= 0 --user_name= openssl \
--group_number= 0 --group_name= openssl \
--prefix= openssl-$( VERSION) - > ../$( TARFILE) ; \
ls -l ../$( TARFILE)
1998-12-21 18:56:39 +08:00
dist :
1999-04-01 20:34:33 +08:00
$( PERL) Configure dist
1998-12-21 18:52:47 +08:00
@$( MAKE) dist_pem_h
@$( MAKE) SDIRS = '${SDIRS}' clean
2002-06-10 16:10:32 +08:00
@$( MAKE) TAR = '${TAR}' TARFLAGS = '${TARFLAGS}' tar
1998-12-21 18:52:47 +08:00
dist_pem_h :
1999-05-13 19:37:32 +08:00
( cd crypto/pem; $( MAKE) CC = '${CC}' SDIRS = '${SDIRS}' CFLAG = '${CFLAG}' pem.h; $( MAKE) clean)
1998-12-21 18:52:47 +08:00
2000-02-12 00:25:44 +08:00
install : all install_docs
1999-06-08 18:18:19 +08:00
@$( PERL) $( TOP) /util/mkdir-p.pl $( INSTALL_PREFIX) $( INSTALLTOP) /bin \
$( INSTALL_PREFIX) $( INSTALLTOP) /lib \
2002-12-20 01:44:42 +08:00
$( INSTALL_PREFIX) $( INSTALLTOP) /lib/pkgconfig \
1999-06-08 18:18:19 +08:00
$( INSTALL_PREFIX) $( INSTALLTOP) /include/openssl \
2002-10-12 02:51:29 +08:00
$( INSTALL_PREFIX) $( OPENSSLDIR) /engines \
1999-06-08 18:18:19 +08:00
$( INSTALL_PREFIX) $( OPENSSLDIR) /misc \
$( INSTALL_PREFIX) $( OPENSSLDIR) /certs \
$( INSTALL_PREFIX) $( OPENSSLDIR) /private \
2000-02-12 00:25:44 +08:00
$( INSTALL_PREFIX) $( OPENSSLDIR) /lib
1999-05-15 21:24:16 +08:00
@for i in $( EXHEADER) ; \
do \
( cp $$ i $( INSTALL_PREFIX) $( INSTALLTOP) /include/openssl/$$ i; \
chmod 644 $( INSTALL_PREFIX) $( INSTALLTOP) /include/openssl/$$ i ) ; \
done ;
1998-12-21 18:52:47 +08:00
@for i in $( DIRS) ; \
do \
2000-10-13 23:25:06 +08:00
if [ -d " $$ i " ] ; then \
2000-07-21 23:08:53 +08:00
( cd $$ i; echo " installing $$ i... " ; \
2002-10-19 03:05:32 +08: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}' SHARED_LIBS = '${SHARED_LIBS}' install ) ; \
2000-07-21 23:08:53 +08:00
fi ; \
1998-12-21 18:52:47 +08:00
done
@for i in $( LIBS) ; \
do \
2000-07-21 23:08:53 +08:00
if [ -f " $$ i " ] ; then \
( echo installing $$ i; \
2002-10-04 21:43:43 +08:00
cp $$ i $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
$( RANLIB) $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
chmod 644 $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
2002-12-15 13:59:13 +08:00
mv -f $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i ) ; \
2002-05-07 23:35:48 +08:00
fi ; \
done ;
2000-10-13 23:25:06 +08:00
@if [ -n " $( SHARED_LIBS) " ] ; then \
tmp = " $( SHARED_LIBS) " ; \
for i in $$ { tmp:-x} ; \
do \
2002-02-13 22:44:33 +08:00
if [ -f " $$ i " -o -f " $$ i.a " ] ; then \
2000-10-13 23:25:06 +08:00
( echo installing $$ i; \
2002-02-14 20:28:24 +08:00
if [ " $( PLATFORM) " != "Cygwin" ] ; then \
2002-10-04 21:43:43 +08:00
cp $$ i $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
chmod 555 $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new; \
2002-12-15 13:59:13 +08:00
mv -f $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.new $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i; \
2002-02-13 22:44:33 +08:00
else \
c = ` echo $$ i | sed 's/^lib/cyg/' ` ; \
2002-10-04 21:43:43 +08:00
cp $$ c $( INSTALL_PREFIX) $( INSTALLTOP) /bin/$$ c.new; \
chmod 755 $( INSTALL_PREFIX) $( INSTALLTOP) /bin/$$ c.new; \
2002-12-15 13:59:13 +08:00
mv -f $( INSTALL_PREFIX) $( INSTALLTOP) /bin/$$ c.new $( INSTALL_PREFIX) $( INSTALLTOP) /bin/$$ c; \
2002-10-04 21:43:43 +08:00
cp $$ i.a $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.a.new; \
chmod 644 $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.a.new; \
2002-12-15 13:59:13 +08:00
mv -f $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.a.new $( INSTALL_PREFIX) $( INSTALLTOP) /lib/$$ i.a; \
2002-02-13 22:44:33 +08:00
fi ) ; \
2002-05-07 23:35:48 +08:00
fi ; \
2000-10-13 23:25:06 +08:00
done ; \
( here = "`pwd`" ; \
cd $( INSTALL_PREFIX) $( INSTALLTOP) /lib; \
2002-12-15 13:59:13 +08:00
$( NEWMAKE) -f $$ here/Makefile HERE = " $$ here " link-shared ) ; \
2003-01-11 00:14:32 +08:00
if [ " $( INSTALLTOP) " != "/usr" ] ; then \
echo 'OpenSSL shared libraries have been installed in:' ; \
echo ' $(INSTALLTOP)' ; \
echo '' ; \
2003-01-11 00:32:32 +08:00
sed -e '1,/^$$/d' doc/openssl-shared.txt; \
2003-01-11 00:14:32 +08:00
fi ; \
2000-10-13 23:25:06 +08:00
fi
2002-12-20 01:42:23 +08:00
cp openssl.pc $( INSTALL_PREFIX) $( INSTALLTOP) /lib/pkgconfig
2000-02-12 00:25:44 +08:00
install_docs :
@$( PERL) $( TOP) /util/mkdir-p.pl \
2000-02-16 02:34:46 +08:00
$( INSTALL_PREFIX) $( MANDIR) /man1 \
$( INSTALL_PREFIX) $( MANDIR) /man3 \
$( INSTALL_PREFIX) $( MANDIR) /man5 \
$( INSTALL_PREFIX) $( MANDIR) /man7
2002-08-14 22:04:24 +08:00
@pod2man= " `cd util; ./pod2mantest $( PERL) ` " ; \
2002-12-15 14:45:43 +08:00
here = "`pwd`" ; \
filecase = ; \
if [ " $( PLATFORM) " = "DJGPP" -o " $( PLATFORM) " = "Cygwin" ] ; then \
filecase = -i; \
fi ; \
2002-08-02 05:52:56 +08:00
for i in doc/apps/*.pod; do \
2000-02-15 00:55:23 +08:00
fn = ` basename $$ i .pod` ; \
2001-04-08 21:49:45 +08:00
if [ " $$ fn " = "config" ] ; then sec = 5; else sec = 1; fi ; \
2002-11-29 23:00:58 +08:00
echo " installing man $$ sec/ $$ fn. $$ sec " ; \
2002-06-05 22:10:59 +08:00
( cd ` $( PERL) util/dirname.pl $$ i` ; \
2002-08-14 22:04:24 +08:00
sh -c " $$ pod2man \
2002-05-30 23:19:43 +08:00
--section= $$ sec --center= OpenSSL \
--release= $( VERSION) ` basename $$ i` " ) \
2002-11-29 23:00:58 +08:00
> $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/$$ fn.$$ sec; \
2002-12-15 14:45:43 +08:00
$( PERL) util/extract-names.pl < $$ i | \
grep -v $$ filecase " ^ $$ fn\$ $" | \
( cd $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/; \
while read n; do \
$$ here/util/point.sh $$ fn.$$ sec $$ n.$$ sec; \
done ) ; \
2002-08-02 05:52:56 +08:00
done ; \
2002-08-05 04:40:23 +08:00
for i in doc/crypto/*.pod doc/ssl/*.pod; do \
2000-02-15 00:55:23 +08:00
fn = ` basename $$ i .pod` ; \
2001-04-08 21:49:45 +08:00
if [ " $$ fn " = "des_modes" ] ; then sec = 7; else sec = 3; fi ; \
2002-11-29 23:00:58 +08:00
echo " installing man $$ sec/ $$ fn. $$ sec " ; \
2002-06-05 22:10:59 +08:00
( cd ` $( PERL) util/dirname.pl $$ i` ; \
2002-08-14 22:04:24 +08:00
sh -c " $$ pod2man \
2002-05-30 23:19:43 +08:00
--section= $$ sec --center= OpenSSL \
--release= $( VERSION) ` basename $$ i` " ) \
2002-11-29 23:00:58 +08:00
> $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/$$ fn.$$ sec; \
2002-12-15 14:45:43 +08:00
$( PERL) util/extract-names.pl < $$ i | \
grep -v $$ filecase " ^ $$ fn\$ $" | \
( cd $( INSTALL_PREFIX) $( MANDIR) /man$$ sec/; \
while read n; do \
$$ here/util/point.sh $$ fn.$$ sec $$ n.$$ sec; \
done ) ; \
2000-02-15 00:55:23 +08:00
done
1998-12-21 18:52:47 +08:00
# DO NOT DELETE THIS LINE -- make depend depends on it.