Makefile.org revision 142425
155714Skris## 255714Skris## Makefile for OpenSSL 355714Skris## 455714Skris 555714SkrisVERSION= 655714SkrisMAJOR= 755714SkrisMINOR= 868651SkrisSHLIB_VERSION_NUMBER= 968651SkrisSHLIB_VERSION_HISTORY= 1068651SkrisSHLIB_MAJOR= 1168651SkrisSHLIB_MINOR= 1276866SkrisSHLIB_EXT= 1355714SkrisPLATFORM=dist 1455714SkrisOPTIONS= 1568651SkrisCONFIGURE_ARGS= 1668651SkrisSHLIB_TARGET= 1768651Skris 18109998Smarkm# HERE indicates where this Makefile lives. This can be used to indicate 19109998Smarkm# where sub-Makefiles are expected to be. Currently has very limited usage, 20109998Smarkm# and should probably not be bothered with at all. 21109998SmarkmHERE=. 22109998Smarkm 2355714Skris# INSTALL_PREFIX is for package builders so that they can configure 2455714Skris# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/. 2555714Skris# Normally it is left empty. 2655714SkrisINSTALL_PREFIX= 2755714SkrisINSTALLTOP=/usr/local/ssl 2855714Skris 2955714Skris# Do not edit this manually. Use Configure --openssldir=DIR do change this! 3055714SkrisOPENSSLDIR=/usr/local/ssl 3155714Skris 3255714Skris# NO_IDEA - Define to build without the IDEA algorithm 3355714Skris# NO_RC4 - Define to build without the RC4 algorithm 3455714Skris# NO_RC2 - Define to build without the RC2 algorithm 3555714Skris# THREADS - Define when building with threads, you will probably also need any 3655714Skris# system defines as well, i.e. _REENTERANT for Solaris 2.[34] 3755714Skris# TERMIO - Define the termio terminal subsystem, needed if sgtty is missing. 3855714Skris# TERMIOS - Define the termios terminal subsystem, Silicon Graphics. 3955714Skris# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3). 4055714Skris# DEVRANDOM - Give this the value of the 'random device' if your OS supports 4155714Skris# one. 32 bytes will be read from this when the random 4255714Skris# number generator is initalised. 4355714Skris# SSL_FORBID_ENULL - define if you want the server to be not able to use the 4455714Skris# NULL encryption ciphers. 4555714Skris# 4655714Skris# LOCK_DEBUG - turns on lots of lock debug output :-) 4755714Skris# REF_CHECK - turn on some xyz_free() assertions. 4855714Skris# REF_PRINT - prints some stuff on structure free. 4955714Skris# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff 5055714Skris# MFUNC - Make all Malloc/Free/Realloc calls call 5155714Skris# CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to 5255714Skris# call application defined callbacks via CRYPTO_set_mem_functions() 5355714Skris# MD5_ASM needs to be defined to use the x86 assembler for MD5 5455714Skris# SHA1_ASM needs to be defined to use the x86 assembler for SHA1 5555714Skris# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160 5655714Skris# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must 5755714Skris# equal 4. 5855714Skris# PKCS1_CHECK - pkcs1 tests. 5955714Skris 6055714SkrisCC= gcc 6155714Skris#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM 6255714SkrisCFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM 6355714SkrisDEPFLAG= 6476866SkrisPEX_LIBS= 6555714SkrisEX_LIBS= 6676866SkrisEXE_EXT= 67109998SmarkmARFLAGS= 68109998SmarkmAR=ar $(ARFLAGS) r 6955714SkrisRANLIB= ranlib 7055714SkrisPERL= perl 7159191SkrisTAR= tar 7268651SkrisTARFLAGS= --no-recursion 73109998SmarkmMAKEDEPPROG=makedepend 7455714Skris 75111147Snectar# We let the C compiler driver to take care of .s files. This is done in 76111147Snectar# order to be excused from maintaining a separate set of architecture 77111147Snectar# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC 78111147Snectar# gcc, then the driver will automatically translate it to -xarch=v8plus 79111147Snectar# and pass it down to assembler. 80111147SnectarAS=$(CC) -c 81120631SnectarASFLAG=$(CFLAG) 82111147Snectar 8355714Skris# Set BN_ASM to bn_asm.o if you want to use the C version 8455714SkrisBN_ASM= bn_asm.o 8555714Skris#BN_ASM= bn_asm.o 8655714Skris#BN_ASM= asm/bn86-elf.o # elf, linux-elf 8755714Skris#BN_ASM= asm/bn86-sol.o # solaris 8855714Skris#BN_ASM= asm/bn86-out.o # a.out, FreeBSD 8955714Skris#BN_ASM= asm/bn86bsdi.o # bsdi 9055714Skris#BN_ASM= asm/alpha.o # DEC Alpha 9155714Skris#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC 9255714Skris#BN_ASM= asm/r3000.o # SGI MIPS cpu 9355714Skris#BN_ASM= asm/sparc.o # Sun solaris/SunOS 9455714Skris#BN_ASM= asm/bn-win32.o # Windows 95/NT 9555714Skris#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS 9655714Skris#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1 9755714Skris 9855714Skris# For x86 assembler: Set PROCESSOR to 386 if you want to support 9955714Skris# the 80386. 10055714SkrisPROCESSOR= 10155714Skris 10255714Skris# Set DES_ENC to des_enc.o if you want to use the C version 10355714Skris#There are 4 x86 assember options. 104142425SnectarFIPS_DES_ENC= des_enc.o fcrypt_b.o 10555714SkrisDES_ENC= asm/dx86-out.o asm/yx86-out.o 10655714Skris#DES_ENC= des_enc.o fcrypt_b.o # C 10755714Skris#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf 10855714Skris#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris 10955714Skris#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD 11055714Skris#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi 11155714Skris 11255714Skris# Set BF_ENC to bf_enc.o if you want to use the C version 11355714Skris#There are 4 x86 assember options. 11455714SkrisBF_ENC= asm/bx86-out.o 11555714Skris#BF_ENC= bf_enc.o 11655714Skris#BF_ENC= asm/bx86-elf.o # elf 11755714Skris#BF_ENC= asm/bx86-sol.o # solaris 11855714Skris#BF_ENC= asm/bx86-out.o # a.out, FreeBSD 11955714Skris#BF_ENC= asm/bx86bsdi.o # bsdi 12055714Skris 12155714Skris# Set CAST_ENC to c_enc.o if you want to use the C version 12255714Skris#There are 4 x86 assember options. 12355714SkrisCAST_ENC= asm/cx86-out.o 12455714Skris#CAST_ENC= c_enc.o 12555714Skris#CAST_ENC= asm/cx86-elf.o # elf 12655714Skris#CAST_ENC= asm/cx86-sol.o # solaris 12755714Skris#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD 12855714Skris#CAST_ENC= asm/cx86bsdi.o # bsdi 12955714Skris 13055714Skris# Set RC4_ENC to rc4_enc.o if you want to use the C version 13155714Skris#There are 4 x86 assember options. 13255714SkrisRC4_ENC= asm/rx86-out.o 13355714Skris#RC4_ENC= rc4_enc.o 13455714Skris#RC4_ENC= asm/rx86-elf.o # elf 13555714Skris#RC4_ENC= asm/rx86-sol.o # solaris 13655714Skris#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD 13755714Skris#RC4_ENC= asm/rx86bsdi.o # bsdi 13855714Skris 13955714Skris# Set RC5_ENC to rc5_enc.o if you want to use the C version 14055714Skris#There are 4 x86 assember options. 14155714SkrisRC5_ENC= asm/r586-out.o 14255714Skris#RC5_ENC= rc5_enc.o 14355714Skris#RC5_ENC= asm/r586-elf.o # elf 14455714Skris#RC5_ENC= asm/r586-sol.o # solaris 14555714Skris#RC5_ENC= asm/r586-out.o # a.out, FreeBSD 14655714Skris#RC5_ENC= asm/r586bsdi.o # bsdi 14755714Skris 14855714Skris# Also need MD5_ASM defined 14955714SkrisMD5_ASM_OBJ= asm/mx86-out.o 15055714Skris#MD5_ASM_OBJ= asm/mx86-elf.o # elf 15155714Skris#MD5_ASM_OBJ= asm/mx86-sol.o # solaris 15255714Skris#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD 15355714Skris#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi 15455714Skris 15555714Skris# Also need SHA1_ASM defined 15655714SkrisSHA1_ASM_OBJ= asm/sx86-out.o 157142425SnectarFIPS_SHA1_ASM_OBJ= asm/sx86-out.o 15855714Skris#SHA1_ASM_OBJ= asm/sx86-elf.o # elf 15955714Skris#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris 16055714Skris#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD 16155714Skris#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi 16255714Skris 16355714Skris# Also need RMD160_ASM defined 16455714SkrisRMD160_ASM_OBJ= asm/rm86-out.o 16555714Skris#RMD160_ASM_OBJ= asm/rm86-elf.o # elf 16655714Skris#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris 16755714Skris#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD 16855714Skris#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi 16955714Skris 170109998Smarkm# KRB5 stuff 171109998SmarkmKRB5_INCLUDES= 172111147SnectarLIBKRB5= 173109998Smarkm 17468651Skris# When we're prepared to use shared libraries in the programs we link here 17576866Skris# we might set SHLIB_MARK to '$(SHARED_LIBS)'. 17676866SkrisSHLIB_MARK= 17768651Skris 178142425SnectarDIRS= crypto fips ssl $(SHLIB_MARK) sigs apps test tools 179142425SnectarSHLIBDIRS= fips crypto ssl 18055714Skris 18155714Skris# dirs in crypto to build 182142425SnectarSDIRS= objects \ 18368651Skris md2 md4 md5 sha mdc2 hmac ripemd \ 18455714Skris des rc2 rc4 rc5 idea bf cast \ 185109998Smarkm bn ec rsa dsa dh dso engine aes \ 186142425Snectar buffer bio stack lhash rand err \ 187109998Smarkm evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 18855714Skris 189142425SnectarFDIRS= sha1 rand des aes dsa rsa dh 190142425Snectar 191109998Smarkm# tests to perform. "alltests" is a special word indicating that all tests 192109998Smarkm# should be performed. 193109998SmarkmTESTS = alltests 194109998Smarkm 195142425SnectarMAKEFILE= Makefile 19655714Skris 19759191SkrisMANDIR=$(OPENSSLDIR)/man 19855714SkrisMAN1=1 19955714SkrisMAN3=3 200120631SnectarMANSUFFIX= 20155714SkrisSHELL=/bin/sh 20255714Skris 20355714SkrisTOP= . 20455714SkrisONEDIRS=out tmp 20555714SkrisEDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS 20655714SkrisWDIRS= windows 20768651SkrisLIBS= libcrypto.a libssl.a 208142425SnectarSIGS= libcrypto.a.sha1 20976866SkrisSHARED_CRYPTO=libcrypto$(SHLIB_EXT) 21076866SkrisSHARED_SSL=libssl$(SHLIB_EXT) 21176866SkrisSHARED_LIBS= 21276866SkrisSHARED_LIBS_LINK_EXTS= 213100928SnectarSHARED_LDFLAGS= 21455714Skris 21555714SkrisGENERAL= Makefile 21655714SkrisBASENAME= openssl 21755714SkrisNAME= $(BASENAME)-$(VERSION) 21855714SkrisTARFILE= $(NAME).tar 21955714SkrisWTARFILE= $(NAME)-win.tar 220109998SmarkmEXHEADER= e_os2.h 22155714SkrisHEADER= e_os.h 22255714Skris 22376866Skris# When we're prepared to use shared libraries in the programs we link here 22476866Skris# we might remove 'clean-shared' from the targets to perform at this stage 22555714Skris 226142425Snectarall: Makefile sub_all openssl.pc 22776866Skris 228142425Snectarsigs: $(SIGS) 229142425Snectarlibcrypto.a.sha1: libcrypto.a 230142425Snectar if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \ 231142425Snectar $(RANLIB) libcrypto.a; \ 232142425Snectar fips/sha1/fips_standalone_sha1 libcrypto.a > libcrypto.a.sha1; \ 233142425Snectar fi 234142425Snectar 23555714Skrissub_all: 23676866Skris @for i in $(DIRS); \ 23755714Skris do \ 23876866Skris if [ -d "$$i" ]; then \ 23976866Skris (cd $$i && echo "making all in $$i..." && \ 240142425Snectar $(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; \ 24168651Skris else \ 24276866Skris $(MAKE) $$i; \ 24368651Skris fi; \ 244109998Smarkm done; 24555714Skris 246142425Snectarsub_target: 247142425Snectar @for i in $(DIRS); \ 248142425Snectar do \ 249142425Snectar if [ -d "$$i" ]; then \ 250142425Snectar (cd $$i && echo "making $(TARGET) in $$i..." && \ 251142425Snectar $(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; \ 252142425Snectar else \ 253142425Snectar $(MAKE) $$i; \ 254142425Snectar fi; \ 255142425Snectar done; 256142425Snectar 25776866Skrislibcrypto$(SHLIB_EXT): libcrypto.a 25868651Skris @if [ "$(SHLIB_TARGET)" != "" ]; then \ 25976866Skris $(MAKE) SHLIBDIRS=crypto build-shared; \ 26068651Skris else \ 26168651Skris echo "There's no support for shared libraries on this platform" >&2; \ 26268651Skris fi 263109998Smarkm 26476866Skrislibssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a 26568651Skris @if [ "$(SHLIB_TARGET)" != "" ]; then \ 26676866Skris $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ 26768651Skris else \ 26868651Skris echo "There's no support for shared libraries on this platform" >&2; \ 26968651Skris fi 27068651Skris 27168651Skrisclean-shared: 27276866Skris @for i in $(SHLIBDIRS); do \ 27376866Skris if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ 27476866Skris tmp="$(SHARED_LIBS_LINK_EXTS)"; \ 27576866Skris for j in $${tmp:-x}; do \ 27676866Skris ( set -x; rm -f lib$$i$$j ); \ 27776866Skris done; \ 27876866Skris fi; \ 27976866Skris ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \ 280100928Snectar if [ "$(PLATFORM)" = "Cygwin" ]; then \ 281109998Smarkm ( set -x; rm -f cyg$$i-$(SHLIB_VERSION_NUMBER)$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \ 282100928Snectar fi; \ 28368651Skris done 28468651Skris 28576866Skrislink-shared: 286100928Snectar @if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ 287100928Snectar tmp="$(SHARED_LIBS_LINK_EXTS)"; \ 288100928Snectar for i in $(SHLIBDIRS); do \ 289100928Snectar prev=lib$$i$(SHLIB_EXT); \ 29076866Skris for j in $${tmp:-x}; do \ 291101613Snectar ( set -x; \ 292101613Snectar rm -f lib$$i$$j; ln -s $$prev lib$$i$$j ); \ 29376866Skris prev=lib$$i$$j; \ 29476866Skris done; \ 295100928Snectar done; \ 296100928Snectar fi 29776866Skris 29876866Skrisbuild-shared: clean-shared do_$(SHLIB_TARGET) link-shared 29976866Skris 30076866Skrisdo_bsd-gcc-shared: do_gnu-shared 30176866Skrisdo_linux-shared: do_gnu-shared 30276866Skrisdo_gnu-shared: 30376866Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 304111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 305111147Snectar libs="$(LIBKRB5) $$libs"; \ 306111147Snectar fi; \ 307100928Snectar ( set -x; ${CC} ${SHARED_LDFLAGS} \ 308100928Snectar -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 30989837Skris -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 310100928Snectar -Wl,-Bsymbolic \ 31155714Skris -Wl,--whole-archive lib$$i.a \ 31268651Skris -Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \ 313111147Snectar libs="-l$$i $$libs"; \ 31468651Skris done 31555714Skris 316109998SmarkmDETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null 31789837Skris 318100928Snectar# For Darwin AKA Mac OS/X (dyld) 319100928Snectardo_darwin-shared: 320100928Snectar libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 321111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 322111147Snectar libs="$(LIBKRB5) $$libs"; \ 323111147Snectar fi; \ 324111147Snectar ( set -x; ${CC} --verbose -dynamiclib -o lib$$i${SHLIB_EXT} \ 325100928Snectar lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \ 326100928Snectar -compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \ 327100928Snectar -install_name ${INSTALLTOP}/lib/lib$$i${SHLIB_EXT} ) || exit 1; \ 328111147Snectar libs="-l`basename $$i${SHLIB_EXT} .dylib` $$libs"; \ 329100928Snectar echo "" ; \ 330100928Snectar done 331100928Snectar 332100928Snectardo_cygwin-shared: 333100928Snectar libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 334111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 335111147Snectar libs="$(LIBKRB5) $$libs"; \ 336111147Snectar fi; \ 337109998Smarkm ( set -x; ${CC} -shared -o cyg$$i-$(SHLIB_VERSION_NUMBER).dll \ 338100928Snectar -Wl,-Bsymbolic \ 339100928Snectar -Wl,--whole-archive lib$$i.a \ 340100928Snectar -Wl,--out-implib,lib$$i.dll.a \ 341100928Snectar -Wl,--no-whole-archive $$libs ) || exit 1; \ 342111147Snectar libs="-l$$i $$libs"; \ 343100928Snectar done 344100928Snectar 34568651Skris# This assumes that GNU utilities are *not* used 34689837Skrisdo_alpha-osf1-shared: 34789837Skris if ${DETECT_GNU_LD}; then \ 34889837Skris $(MAKE) do_gnu-shared; \ 34989837Skris else \ 35089837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 351111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 352111147Snectar libs="$(LIBKRB5) $$libs"; \ 353111147Snectar fi; \ 354100928Snectar ( set -x; ${CC} ${SHARED_LDFLAGS} \ 355100928Snectar -shared -o lib$$i.so \ 35689837Skris -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 35789837Skris -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ 358111147Snectar libs="-l$$i $$libs"; \ 35989837Skris done; \ 36089837Skris fi 36189837Skris 36289837Skris# This assumes that GNU utilities are *not* used 36389837Skris# The difference between alpha-osf1-shared and tru64-shared is the `-msym' 36489837Skris# option passed to the linker. 36576866Skrisdo_tru64-shared: 36689837Skris if ${DETECT_GNU_LD}; then \ 36789837Skris $(MAKE) do_gnu-shared; \ 36889837Skris else \ 36989837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 370111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 371111147Snectar libs="$(LIBKRB5) $$libs"; \ 372111147Snectar fi; \ 373100928Snectar ( set -x; ${CC} ${SHARED_LDFLAGS} \ 374100928Snectar -shared -msym -o lib$$i.so \ 37589837Skris -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 37689837Skris -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ 377111147Snectar libs="-l$$i $$libs"; \ 37889837Skris done; \ 37989837Skris fi 38089837Skris 38189837Skris# This assumes that GNU utilities are *not* used 38289837Skris# The difference between tru64-shared and tru64-shared-rpath is the 38389837Skris# -rpath ${INSTALLTOP}/lib passed to the linker. 38489837Skrisdo_tru64-shared-rpath: 38589837Skris if ${DETECT_GNU_LD}; then \ 38689837Skris $(MAKE) do_gnu-shared; \ 38789837Skris else \ 38889837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 389111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 390111147Snectar libs="$(LIBKRB5) $$libs"; \ 391111147Snectar fi; \ 392100928Snectar ( set -x; ${CC} ${SHARED_LDFLAGS} \ 393100928Snectar -shared -msym -o lib$$i.so \ 39489837Skris -rpath ${INSTALLTOP}/lib \ 39589837Skris -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 39689837Skris -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ 397111147Snectar libs="-l$$i $$libs"; \ 39889837Skris done; \ 39989837Skris fi 40089837Skris 40189837Skris 40289837Skris# This assumes that GNU utilities are *not* used 40389837Skrisdo_solaris-shared: 40489837Skris if ${DETECT_GNU_LD}; then \ 40589837Skris $(MAKE) do_gnu-shared; \ 40689837Skris else \ 40789837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 408111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 409111147Snectar libs="$(LIBKRB5) $$libs"; \ 410111147Snectar fi; \ 41189837Skris ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 412109998Smarkm MINUSZ='-z '; \ 413109998Smarkm (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ 414109998Smarkm set -x; ${CC} ${SHARED_LDFLAGS} -G -dy -z text \ 415109998Smarkm -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 41689837Skris -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 417142425Snectar -Wl,-Bsymbolic \ 418109998Smarkm $${MINUSZ}allextract lib$$i.a $${MINUSZ}defaultextract \ 419109998Smarkm $$libs ${EX_LIBS} -lc ) || exit 1; \ 420111147Snectar libs="-l$$i $$libs"; \ 42189837Skris done; \ 42289837Skris fi 42389837Skris 424100928Snectar# OpenServer 5 native compilers used 425100928Snectardo_svr3-shared: 426100928Snectar if ${DETECT_GNU_LD}; then \ 427100928Snectar $(MAKE) do_gnu-shared; \ 428100928Snectar else \ 429100928Snectar libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 430111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 431111147Snectar libs="$(LIBKRB5) $$libs"; \ 432111147Snectar fi; \ 433100928Snectar ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 434100928Snectar find . -name "*.o" -print > allobjs ; \ 435100928Snectar OBJS= ; export OBJS ; \ 436100928Snectar for obj in `ar t lib$$i.a` ; do \ 437120631Snectar OBJS="$${OBJS} `grep /$$obj allobjs`" ; \ 438100928Snectar done ; \ 439120631Snectar set -x; ${CC} ${SHARED_LDFLAGS} \ 440120631Snectar -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 441100928Snectar -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 442100928Snectar $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \ 443111147Snectar libs="-l$$i $$libs"; \ 444100928Snectar done; \ 445100928Snectar fi 446100928Snectar 44789837Skris# UnixWare 7 and OpenUNIX 8 native compilers used 44889837Skrisdo_svr5-shared: 44989837Skris if ${DETECT_GNU_LD}; then \ 45089837Skris $(MAKE) do_gnu-shared; \ 45189837Skris else \ 45289837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 453111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 454111147Snectar libs="$(LIBKRB5) $$libs"; \ 455111147Snectar fi; \ 45689837Skris ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 457120631Snectar SHARE_FLAG='-G'; \ 458120631Snectar (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \ 45989837Skris find . -name "*.o" -print > allobjs ; \ 46089837Skris OBJS= ; export OBJS ; \ 46189837Skris for obj in `ar t lib$$i.a` ; do \ 462120631Snectar OBJS="$${OBJS} `grep /$$obj allobjs`" ; \ 46389837Skris done ; \ 464120631Snectar set -x; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \ 465120631Snectar ${CC} ${SHARED_LDFLAGS} \ 466120631Snectar $${SHARE_FLAG} -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 46789837Skris -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 46889837Skris $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \ 469111147Snectar libs="-l$$i $$libs"; \ 47089837Skris done; \ 47189837Skris fi 47289837Skris 47389837Skris# This assumes that GNU utilities are *not* used 47489837Skrisdo_irix-shared: 47589837Skris if ${DETECT_GNU_LD}; then \ 47689837Skris $(MAKE) do_gnu-shared; \ 47789837Skris else \ 47889837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 479111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 480111147Snectar libs="$(LIBKRB5) $$libs"; \ 481111147Snectar fi; \ 482127128Snectar ( WHOLELIB="-all lib$$i.a -notall"; \ 483127128Snectar (${CC} -v 2>&1 | grep gcc) > /dev/null && WHOLELIB="-Wl,-all,lib$$i.a,-notall"; \ 484127128Snectar set -x; ${CC} ${SHARED_LDFLAGS} \ 485100928Snectar -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 48689837Skris -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 487127128Snectar $${WHOLELIB} $$libs ${EX_LIBS} -lc) || exit 1; \ 488111147Snectar libs="-l$$i $$libs"; \ 48989837Skris done; \ 49089837Skris fi 49189837Skris 49289837Skris# This assumes that GNU utilities are *not* used 493109998Smarkm# HP-UX includes the full pathname of libs we depend on, so we would get 494109998Smarkm# ./libcrypto (with ./ as path information) compiled into libssl, hence 495109998Smarkm# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto 496109998Smarkm# anyway. 497109998Smarkm# The object modules are loaded from lib$i.a using the undocumented -Fl 498109998Smarkm# option. 499109998Smarkm# 500109998Smarkm# WARNING: Until DSO is fixed to support a search path, we support SHLIB_PATH 501109998Smarkm# by temporarily specifying "+s"! 502109998Smarkm# 50389837Skrisdo_hpux-shared: 504109998Smarkm for i in ${SHLIBDIRS}; do \ 505111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 506111147Snectar libs="$(LIBKRB5) $$libs"; \ 507111147Snectar fi; \ 508100928Snectar ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ 509142425Snectar +vnocompatwarnings \ 510109998Smarkm -b -z +s \ 511109998Smarkm -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 51289837Skris +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 513109998Smarkm -Fl lib$$i.a -ldld -lc ) || exit 1; \ 514109998Smarkm chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 51568651Skris done 51668651Skris 51768651Skris# This assumes that GNU utilities are *not* used 518109998Smarkm# HP-UX includes the full pathname of libs we depend on, so we would get 519109998Smarkm# ./libcrypto (with ./ as path information) compiled into libssl, hence 520109998Smarkm# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto 521109998Smarkm# anyway. 522109998Smarkm# 523109998Smarkm# HP-UX in 64bit mode has "+s" enabled by default; it will search for 524109998Smarkm# shared libraries along LD_LIBRARY_PATH _and_ SHLIB_PATH. 525109998Smarkm# 52689837Skrisdo_hpux64-shared: 527109998Smarkm for i in ${SHLIBDIRS}; do \ 528111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 529111147Snectar libs="$(LIBKRB5) $$libs"; \ 530111147Snectar fi; \ 531100928Snectar ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ 532142425Snectar -b -z \ 533109998Smarkm -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 53489837Skris +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 535109998Smarkm +forceload lib$$i.a -ldl -lc ) || exit 1; \ 536109998Smarkm chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 53789837Skris done 53889837Skris 53989837Skris# The following method is said to work on all platforms. Tests will 54089837Skris# determine if that's how it's gong to be used. 54189837Skris# This assumes that for all but GNU systems, GNU utilities are *not* used. 54289837Skris# ALLSYMSFLAGS would be: 54389837Skris# GNU systems: --whole-archive 54489837Skris# Tru64 Unix: -all 54589837Skris# Solaris: -z allextract 54689837Skris# Irix: -all 54789837Skris# HP/UX-32bit: -Fl 54889837Skris# HP/UX-64bit: +forceload 54989837Skris# AIX: -bnogc 55089837Skris# SHAREDFLAGS would be: 55189837Skris# GNU systems: -shared -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 55289837Skris# Tru64 Unix: -shared \ 55389837Skris# -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" 55489837Skris# Solaris: -G -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 55589837Skris# Irix: -shared -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 55689837Skris# HP/UX-32bit: +vnocompatwarnings -b -z +s \ 55789837Skris# +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} 55889837Skris# HP/UX-64bit: -b -z +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} 55989837Skris# AIX: -G -bE:lib$$i.exp -bM:SRE 56089837Skris# SHAREDCMD would be: 56189837Skris# GNU systems: $(CC) 56289837Skris# Tru64 Unix: $(CC) 56389837Skris# Solaris: $(CC) 56489837Skris# Irix: $(CC) 56589837Skris# HP/UX-32bit: /usr/ccs/bin/ld 56689837Skris# HP/UX-64bit: /usr/ccs/bin/ld 56789837Skris# AIX: $(CC) 56889837SkrisALLSYMSFLAG=-bnogc 569100928SnectarSHAREDFLAGS=${SHARED_LDFLAGS} -G -bE:lib$$i.exp -bM:SRE 57089837SkrisSHAREDCMD=$(CC) 57189837Skrisdo_aix-shared: 57276866Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 573111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 574111147Snectar libs="$(LIBKRB5) $$libs"; \ 575111147Snectar fi; \ 57689837Skris ( set -x; \ 577111147Snectar ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \ 57889837Skris ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \ 579111147Snectar $(SHAREDCMD) $(SHAREDFLAGS) \ 580111147Snectar -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} lib$$i.o \ 58189837Skris $$libs ${EX_LIBS} ) ) \ 58289837Skris || exit 1; \ 583111147Snectar libs="-l$$i $$libs"; \ 58468651Skris done 58568651Skris 586109998Smarkmdo_reliantunix-shared: 587109998Smarkm libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 588111147Snectar if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 589111147Snectar libs="$(LIBKRB5) $$libs"; \ 590111147Snectar fi; \ 591109998Smarkm tmpdir=/tmp/openssl.$$$$ ; rm -rf $$tmpdir ; \ 592109998Smarkm ( set -x; \ 593109998Smarkm ( Opwd=`pwd` ; mkdir $$tmpdir || exit 1; \ 594109998Smarkm cd $$tmpdir || exit 1 ; ar x $$Opwd/lib$$i.a ; \ 595109998Smarkm ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} *.o \ 596109998Smarkm ) || exit 1; \ 597109998Smarkm cp $$tmpdir/lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} . ; \ 598109998Smarkm ) || exit 1; \ 599109998Smarkm rm -rf $$tmpdir ; \ 600111147Snectar libs="-l$$i $$libs"; \ 601109998Smarkm done 602109998Smarkm 603142425Snectaropenssl.pc: Makefile 604109998Smarkm @ ( echo 'prefix=$(INSTALLTOP)'; \ 605109998Smarkm echo 'exec_prefix=$${prefix}'; \ 606109998Smarkm echo 'libdir=$${exec_prefix}/lib'; \ 607109998Smarkm echo 'includedir=$${prefix}/include'; \ 608109998Smarkm echo ''; \ 609109998Smarkm echo 'Name: OpenSSL'; \ 610109998Smarkm echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \ 611109998Smarkm echo 'Version: '$(VERSION); \ 612109998Smarkm echo 'Requires: '; \ 613111147Snectar echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \ 614109998Smarkm echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc 615109998Smarkm 616142425SnectarMakefile: Makefile.org 617142425Snectar @echo "Makefile is older than Makefile.org." 61855714Skris @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please." 61955714Skris @false 62055714Skris 62155714Skrislibclean: 622120631Snectar rm -f *.map *.so *.so.* engines/*.so *.a */lib */*/lib 62355714Skris 624120631Snectarclean: libclean 625120631Snectar rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c 62655714Skris @for i in $(DIRS) ;\ 62755714Skris do \ 62876866Skris if [ -d "$$i" ]; then \ 62968651Skris (cd $$i && echo "making clean in $$i..." && \ 63068651Skris $(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \ 63168651Skris rm -f $(LIBS); \ 63268651Skris fi; \ 63355714Skris done; 634109998Smarkm rm -f openssl.pc 635120631Snectar rm -f speed.* .pure 63655714Skris rm -f $(TARFILE) 63755714Skris @for i in $(ONEDIRS) ;\ 63855714Skris do \ 63955714Skris rm -fr $$i/*; \ 64055714Skris done 64155714Skris 64255714Skrismakefile.one: files 64355714Skris $(PERL) util/mk1mf.pl >makefile.one; \ 64455714Skris sh util/do_ms.sh 64555714Skris 64655714Skrisfiles: 647142425Snectar $(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO 64855714Skris @for i in $(DIRS) ;\ 64955714Skris do \ 65076866Skris if [ -d "$$i" ]; then \ 65168651Skris (cd $$i && echo "making 'files' in $$i..." && \ 65268651Skris $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \ 65368651Skris fi; \ 65455714Skris done; 65555714Skris 65655714Skrislinks: 65755714Skris @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl 65855714Skris @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER) 65955714Skris @for i in $(DIRS); do \ 66076866Skris if [ -d "$$i" ]; then \ 66168651Skris (cd $$i && echo "making links in $$i..." && \ 662142425Snectar $(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; \ 66368651Skris fi; \ 66455714Skris done; 66555714Skris 666109998Smarkmgentests: 667109998Smarkm @(cd test && echo "generating dummy tests (if needed)..." && \ 668142425Snectar $(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 ); 669109998Smarkm 67055714Skrisdclean: 67155714Skris rm -f *.bak 67255714Skris @for i in $(DIRS) ;\ 67355714Skris do \ 67476866Skris if [ -d "$$i" ]; then \ 67568651Skris (cd $$i && echo "making dclean in $$i..." && \ 67668651Skris $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \ 67768651Skris fi; \ 67855714Skris done; 67955714Skris 68059191Skrisrehash: rehash.time 68159191Skrisrehash.time: certs 682142425Snectar @(OPENSSL="`pwd`/apps/openssl$(EXE_EXT)"; OPENSSL_DEBUG_MEMORY=on; \ 683109998Smarkm export OPENSSL OPENSSL_DEBUG_MEMORY; \ 684120631Snectar LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \ 685120631Snectar DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \ 686120631Snectar SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \ 687120631Snectar LIBPATH="`pwd`:$$LIBPATH"; \ 688111147Snectar if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \ 689109998Smarkm export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \ 690109998Smarkm $(PERL) tools/c_rehash certs) 69159191Skris touch rehash.time 69255714Skris 69355714Skristest: tests 69455714Skris 69555714Skristests: rehash 69655714Skris @(cd test && echo "testing..." && \ 697142425Snectar $(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 ); 698120631Snectar @LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \ 699120631Snectar DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \ 700120631Snectar SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \ 701120631Snectar LIBPATH="`pwd`:$$LIBPATH"; \ 702120631Snectar if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \ 703120631Snectar export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \ 704120631Snectar apps/openssl version -a 70555714Skris 70659191Skrisreport: 70759191Skris @$(PERL) util/selftest.pl 70859191Skris 70955714Skrisdepend: 71055714Skris @for i in $(DIRS) ;\ 71155714Skris do \ 71276866Skris if [ -d "$$i" ]; then \ 71368651Skris (cd $$i && echo "making dependencies $$i..." && \ 714109998Smarkm $(MAKE) SDIRS='${SDIRS}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ) || exit 1; \ 71568651Skris fi; \ 71655714Skris done; 71755714Skris 71855714Skrislint: 71955714Skris @for i in $(DIRS) ;\ 72055714Skris do \ 72176866Skris if [ -d "$$i" ]; then \ 72268651Skris (cd $$i && echo "making lint $$i..." && \ 72368651Skris $(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \ 72468651Skris fi; \ 72555714Skris done; 72655714Skris 72755714Skristags: 728142425Snectar rm -f TAGS 729142425Snectar find . -name '[^.]*.[ch]' | xargs etags -a 73055714Skris 73155714Skriserrors: 73289837Skris $(PERL) util/mkerr.pl -recurse -write 733109998Smarkm (cd crypto/engine; $(MAKE) PERL=$(PERL) errors) 73455714Skris 73568651Skrisstacks: 73689837Skris $(PERL) util/mkstack.pl -write 73768651Skris 73855714Skrisutil/libeay.num:: 73989837Skris $(PERL) util/mkdef.pl crypto update 74055714Skris 74155714Skrisutil/ssleay.num:: 74289837Skris $(PERL) util/mkdef.pl ssl update 74355714Skris 744109998Smarkmcrypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h 74589837Skris $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h 746109998Smarkmcrypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num 74789837Skris $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h 74859191Skris 749142425Snectarapps/openssl-vms.cnf: apps/openssl.cnf 750142425Snectar $(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf 751142425Snectar 75255714SkrisTABLE: Configure 75355714Skris (echo 'Output of `Configure TABLE'"':"; \ 75489837Skris $(PERL) Configure TABLE) > TABLE 75555714Skris 756142425Snectarupdate: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf TABLE 75755714Skris 758100936Snectar# Build distribution tar-file. As the list of files returned by "find" is 759100936Snectar# pretty long, on several platforms a "too many arguments" error or similar 760100936Snectar# would occur. Therefore the list of files is temporarily stored into a file 761100936Snectar# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal 762100936Snectar# tar does not support the --files-from option. 76355714Skristar: 764109998Smarkm find . -type d -print | xargs chmod 755 765109998Smarkm find . -type f -print | xargs chmod a+r 766109998Smarkm find . -type f -perm -0100 -print | xargs chmod a+x 767100936Snectar find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \ 768100936Snectar $(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \ 76955714Skris tardy --user_number=0 --user_name=openssl \ 77055714Skris --group_number=0 --group_name=openssl \ 77155714Skris --prefix=openssl-$(VERSION) - |\ 77255714Skris gzip --best >../$(TARFILE).gz; \ 773100936Snectar rm -f ../$(TARFILE).list; \ 77455714Skris ls -l ../$(TARFILE).gz 77555714Skris 776109998Smarkmtar-snap: 777109998Smarkm @$(TAR) $(TARFLAGS) -cvf - \ 778109998Smarkm `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` |\ 779109998Smarkm tardy --user_number=0 --user_name=openssl \ 780109998Smarkm --group_number=0 --group_name=openssl \ 781109998Smarkm --prefix=openssl-$(VERSION) - > ../$(TARFILE);\ 782109998Smarkm ls -l ../$(TARFILE) 783109998Smarkm 78455714Skrisdist: 78555714Skris $(PERL) Configure dist 78655714Skris @$(MAKE) dist_pem_h 78755714Skris @$(MAKE) SDIRS='${SDIRS}' clean 788100936Snectar @$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar 78955714Skris 79055714Skrisdist_pem_h: 79155714Skris (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean) 79255714Skris 793142425Snectarinstall: all install_docs install_sw 794142425Snectar 795142425Snectarinstall_sw: 79655714Skris @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ 79755714Skris $(INSTALL_PREFIX)$(INSTALLTOP)/lib \ 798109998Smarkm $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \ 79955714Skris $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ 80055714Skris $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ 80155714Skris $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ 802142425Snectar $(INSTALL_PREFIX)$(OPENSSLDIR)/private 80355714Skris @for i in $(EXHEADER) ;\ 80455714Skris do \ 80555714Skris (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ 80655714Skris chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ 80755714Skris done; 80855714Skris @for i in $(DIRS) ;\ 80955714Skris do \ 81076866Skris if [ -d "$$i" ]; then \ 81168651Skris (cd $$i; echo "installing $$i..."; \ 81276866Skris $(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 ); \ 81368651Skris fi; \ 81455714Skris done 81555714Skris @for i in $(LIBS) ;\ 81655714Skris do \ 81768651Skris if [ -f "$$i" ]; then \ 81868651Skris ( echo installing $$i; \ 819109998Smarkm cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 820142425Snectar if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \ 821142425Snectar : ; \ 822142425Snectar else \ 823142425Snectar $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 824142425Snectar fi; \ 825109998Smarkm chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 826109998Smarkm mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ 827100928Snectar fi; \ 828109998Smarkm done; 82976866Skris @if [ -n "$(SHARED_LIBS)" ]; then \ 83076866Skris tmp="$(SHARED_LIBS)"; \ 83176866Skris for i in $${tmp:-x}; \ 83276866Skris do \ 833100928Snectar if [ -f "$$i" -o -f "$$i.a" ]; then \ 83476866Skris ( echo installing $$i; \ 835100928Snectar if [ "$(PLATFORM)" != "Cygwin" ]; then \ 836109998Smarkm cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 837109998Smarkm chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 838109998Smarkm mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \ 839100928Snectar else \ 840111147Snectar c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \ 841109998Smarkm cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 842109998Smarkm chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 843109998Smarkm mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \ 844109998Smarkm cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ 845109998Smarkm chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ 846109998Smarkm mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \ 847100928Snectar fi ); \ 848100928Snectar fi; \ 84976866Skris done; \ 85076866Skris ( here="`pwd`"; \ 85176866Skris cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ 852101618Snectar set $(MAKE); \ 853101618Snectar $$1 -f $$here/Makefile link-shared ); \ 854111147Snectar if [ "$(INSTALLTOP)" != "/usr" ]; then \ 855111147Snectar echo 'OpenSSL shared libraries have been installed in:'; \ 856111147Snectar echo ' $(INSTALLTOP)'; \ 857111147Snectar echo ''; \ 858111147Snectar sed -e '1,/^$$/d' doc/openssl-shared.txt; \ 859111147Snectar fi; \ 86076866Skris fi 861142425Snectar @for i in $(SIGS) ;\ 862142425Snectar do \ 863142425Snectar if [ -f "$$i" ]; then \ 864142425Snectar ( echo installing $$i; \ 865142425Snectar cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 866142425Snectar chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 867142425Snectar mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ 868142425Snectar fi; \ 869142425Snectar done; 870109998Smarkm cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig 871127128Snectar chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc 87255714Skris 87359191Skrisinstall_docs: 87459191Skris @$(PERL) $(TOP)/util/mkdir-p.pl \ 87559191Skris $(INSTALL_PREFIX)$(MANDIR)/man1 \ 87659191Skris $(INSTALL_PREFIX)$(MANDIR)/man3 \ 87759191Skris $(INSTALL_PREFIX)$(MANDIR)/man5 \ 87859191Skris $(INSTALL_PREFIX)$(MANDIR)/man7 879109998Smarkm @pod2man="`cd util; ./pod2mantest $(PERL)`"; \ 880109998Smarkm here="`pwd`"; \ 881109998Smarkm filecase=; \ 882109998Smarkm if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" ]; then \ 883109998Smarkm filecase=-i; \ 884109998Smarkm fi; \ 885101613Snectar for i in doc/apps/*.pod; do \ 88659191Skris fn=`basename $$i .pod`; \ 88779998Skris if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \ 888120631Snectar echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ 889100936Snectar (cd `$(PERL) util/dirname.pl $$i`; \ 890109998Smarkm sh -c "$$pod2man \ 891100936Snectar --section=$$sec --center=OpenSSL \ 892100936Snectar --release=$(VERSION) `basename $$i`") \ 893120631Snectar > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ 894109998Smarkm $(PERL) util/extract-names.pl < $$i | \ 895109998Smarkm grep -v $$filecase "^$$fn\$$" | \ 896127128Snectar grep -v "[ ]" | \ 897109998Smarkm (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 898109998Smarkm while read n; do \ 899120631Snectar $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ 900109998Smarkm done); \ 901101613Snectar done; \ 902101618Snectar for i in doc/crypto/*.pod doc/ssl/*.pod; do \ 90359191Skris fn=`basename $$i .pod`; \ 90479998Skris if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \ 905120631Snectar echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ 906100936Snectar (cd `$(PERL) util/dirname.pl $$i`; \ 907109998Smarkm sh -c "$$pod2man \ 908100936Snectar --section=$$sec --center=OpenSSL \ 909100936Snectar --release=$(VERSION) `basename $$i`") \ 910120631Snectar > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ 911109998Smarkm $(PERL) util/extract-names.pl < $$i | \ 912109998Smarkm grep -v $$filecase "^$$fn\$$" | \ 913127128Snectar grep -v "[ ]" | \ 914109998Smarkm (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 915109998Smarkm while read n; do \ 916120631Snectar $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ 917109998Smarkm done); \ 91859191Skris done 91959191Skris 92055714Skris# DO NOT DELETE THIS LINE -- make depend depends on it. 921