Makefile.org revision 109998
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 7555714Skris# Set BN_ASM to bn_asm.o if you want to use the C version 7655714SkrisBN_ASM= bn_asm.o 7755714Skris#BN_ASM= bn_asm.o 7855714Skris#BN_ASM= asm/bn86-elf.o # elf, linux-elf 7955714Skris#BN_ASM= asm/bn86-sol.o # solaris 8055714Skris#BN_ASM= asm/bn86-out.o # a.out, FreeBSD 8155714Skris#BN_ASM= asm/bn86bsdi.o # bsdi 8255714Skris#BN_ASM= asm/alpha.o # DEC Alpha 8355714Skris#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC 8455714Skris#BN_ASM= asm/r3000.o # SGI MIPS cpu 8555714Skris#BN_ASM= asm/sparc.o # Sun solaris/SunOS 8655714Skris#BN_ASM= asm/bn-win32.o # Windows 95/NT 8755714Skris#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS 8855714Skris#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1 8955714Skris 9055714Skris# For x86 assembler: Set PROCESSOR to 386 if you want to support 9155714Skris# the 80386. 9255714SkrisPROCESSOR= 9355714Skris 9455714Skris# Set DES_ENC to des_enc.o if you want to use the C version 9555714Skris#There are 4 x86 assember options. 9655714SkrisDES_ENC= asm/dx86-out.o asm/yx86-out.o 9755714Skris#DES_ENC= des_enc.o fcrypt_b.o # C 9855714Skris#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf 9955714Skris#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris 10055714Skris#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD 10155714Skris#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi 10255714Skris 10355714Skris# Set BF_ENC to bf_enc.o if you want to use the C version 10455714Skris#There are 4 x86 assember options. 10555714SkrisBF_ENC= asm/bx86-out.o 10655714Skris#BF_ENC= bf_enc.o 10755714Skris#BF_ENC= asm/bx86-elf.o # elf 10855714Skris#BF_ENC= asm/bx86-sol.o # solaris 10955714Skris#BF_ENC= asm/bx86-out.o # a.out, FreeBSD 11055714Skris#BF_ENC= asm/bx86bsdi.o # bsdi 11155714Skris 11255714Skris# Set CAST_ENC to c_enc.o if you want to use the C version 11355714Skris#There are 4 x86 assember options. 11455714SkrisCAST_ENC= asm/cx86-out.o 11555714Skris#CAST_ENC= c_enc.o 11655714Skris#CAST_ENC= asm/cx86-elf.o # elf 11755714Skris#CAST_ENC= asm/cx86-sol.o # solaris 11855714Skris#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD 11955714Skris#CAST_ENC= asm/cx86bsdi.o # bsdi 12055714Skris 12155714Skris# Set RC4_ENC to rc4_enc.o if you want to use the C version 12255714Skris#There are 4 x86 assember options. 12355714SkrisRC4_ENC= asm/rx86-out.o 12455714Skris#RC4_ENC= rc4_enc.o 12555714Skris#RC4_ENC= asm/rx86-elf.o # elf 12655714Skris#RC4_ENC= asm/rx86-sol.o # solaris 12755714Skris#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD 12855714Skris#RC4_ENC= asm/rx86bsdi.o # bsdi 12955714Skris 13055714Skris# Set RC5_ENC to rc5_enc.o if you want to use the C version 13155714Skris#There are 4 x86 assember options. 13255714SkrisRC5_ENC= asm/r586-out.o 13355714Skris#RC5_ENC= rc5_enc.o 13455714Skris#RC5_ENC= asm/r586-elf.o # elf 13555714Skris#RC5_ENC= asm/r586-sol.o # solaris 13655714Skris#RC5_ENC= asm/r586-out.o # a.out, FreeBSD 13755714Skris#RC5_ENC= asm/r586bsdi.o # bsdi 13855714Skris 13955714Skris# Also need MD5_ASM defined 14055714SkrisMD5_ASM_OBJ= asm/mx86-out.o 14155714Skris#MD5_ASM_OBJ= asm/mx86-elf.o # elf 14255714Skris#MD5_ASM_OBJ= asm/mx86-sol.o # solaris 14355714Skris#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD 14455714Skris#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi 14555714Skris 14655714Skris# Also need SHA1_ASM defined 14755714SkrisSHA1_ASM_OBJ= asm/sx86-out.o 14855714Skris#SHA1_ASM_OBJ= asm/sx86-elf.o # elf 14955714Skris#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris 15055714Skris#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD 15155714Skris#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi 15255714Skris 15355714Skris# Also need RMD160_ASM defined 15455714SkrisRMD160_ASM_OBJ= asm/rm86-out.o 15555714Skris#RMD160_ASM_OBJ= asm/rm86-elf.o # elf 15655714Skris#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris 15755714Skris#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD 15855714Skris#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi 15955714Skris 160109998Smarkm# KRB5 stuff 161109998SmarkmKRB5_INCLUDES= 162109998Smarkm 16368651Skris# When we're prepared to use shared libraries in the programs we link here 16476866Skris# we might set SHLIB_MARK to '$(SHARED_LIBS)'. 16576866SkrisSHLIB_MARK= 16668651Skris 167109998SmarkmDIRS= crypto ssl $(SHLIB_MARK) apps test tools 16855714SkrisSHLIBDIRS= crypto ssl 16955714Skris 17055714Skris# dirs in crypto to build 17155714SkrisSDIRS= \ 17268651Skris md2 md4 md5 sha mdc2 hmac ripemd \ 17355714Skris des rc2 rc4 rc5 idea bf cast \ 174109998Smarkm bn ec rsa dsa dh dso engine aes \ 17555714Skris buffer bio stack lhash rand err objects \ 176109998Smarkm evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 17755714Skris 178109998Smarkm# tests to perform. "alltests" is a special word indicating that all tests 179109998Smarkm# should be performed. 180109998SmarkmTESTS = alltests 181109998Smarkm 18255714SkrisMAKEFILE= Makefile.ssl 18355714SkrisMAKE= make -f Makefile.ssl 18455714Skris 18559191SkrisMANDIR=$(OPENSSLDIR)/man 18655714SkrisMAN1=1 18755714SkrisMAN3=3 18855714SkrisSHELL=/bin/sh 18955714Skris 19055714SkrisTOP= . 19155714SkrisONEDIRS=out tmp 19255714SkrisEDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS 19355714SkrisWDIRS= windows 19468651SkrisLIBS= libcrypto.a libssl.a 19576866SkrisSHARED_CRYPTO=libcrypto$(SHLIB_EXT) 19676866SkrisSHARED_SSL=libssl$(SHLIB_EXT) 19776866SkrisSHARED_LIBS= 19876866SkrisSHARED_LIBS_LINK_EXTS= 199100928SnectarSHARED_LDFLAGS= 20055714Skris 20155714SkrisGENERAL= Makefile 20255714SkrisBASENAME= openssl 20355714SkrisNAME= $(BASENAME)-$(VERSION) 20455714SkrisTARFILE= $(NAME).tar 20555714SkrisWTARFILE= $(NAME)-win.tar 206109998SmarkmEXHEADER= e_os2.h 20755714SkrisHEADER= e_os.h 20855714Skris 20976866Skris# When we're prepared to use shared libraries in the programs we link here 21076866Skris# we might remove 'clean-shared' from the targets to perform at this stage 21155714Skris 212109998Smarkmall: Makefile.ssl sub_all openssl.pc 21376866Skris 21455714Skrissub_all: 21576866Skris @for i in $(DIRS); \ 21655714Skris do \ 21776866Skris if [ -d "$$i" ]; then \ 21876866Skris (cd $$i && echo "making all in $$i..." && \ 219109998Smarkm $(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}' 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; \ 22068651Skris else \ 22176866Skris $(MAKE) $$i; \ 22268651Skris fi; \ 223109998Smarkm done; 22455714Skris 22576866Skrislibcrypto$(SHLIB_EXT): libcrypto.a 22668651Skris @if [ "$(SHLIB_TARGET)" != "" ]; then \ 22776866Skris $(MAKE) SHLIBDIRS=crypto build-shared; \ 22868651Skris else \ 22968651Skris echo "There's no support for shared libraries on this platform" >&2; \ 23068651Skris fi 231109998Smarkm 23276866Skrislibssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a 23368651Skris @if [ "$(SHLIB_TARGET)" != "" ]; then \ 23476866Skris $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ 23568651Skris else \ 23668651Skris echo "There's no support for shared libraries on this platform" >&2; \ 23768651Skris fi 23868651Skris 23968651Skrisclean-shared: 24076866Skris @for i in $(SHLIBDIRS); do \ 24176866Skris if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ 24276866Skris tmp="$(SHARED_LIBS_LINK_EXTS)"; \ 24376866Skris for j in $${tmp:-x}; do \ 24476866Skris ( set -x; rm -f lib$$i$$j ); \ 24576866Skris done; \ 24676866Skris fi; \ 24776866Skris ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \ 248100928Snectar if [ "$(PLATFORM)" = "Cygwin" ]; then \ 249109998Smarkm ( set -x; rm -f cyg$$i-$(SHLIB_VERSION_NUMBER)$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \ 250100928Snectar fi; \ 25168651Skris done 25268651Skris 25376866Skrislink-shared: 254100928Snectar @if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ 255100928Snectar tmp="$(SHARED_LIBS_LINK_EXTS)"; \ 256100928Snectar for i in $(SHLIBDIRS); do \ 257100928Snectar prev=lib$$i$(SHLIB_EXT); \ 25876866Skris for j in $${tmp:-x}; do \ 259101613Snectar ( set -x; \ 260101613Snectar rm -f lib$$i$$j; ln -s $$prev lib$$i$$j ); \ 26176866Skris prev=lib$$i$$j; \ 26276866Skris done; \ 263100928Snectar done; \ 264100928Snectar fi 26576866Skris 26676866Skrisbuild-shared: clean-shared do_$(SHLIB_TARGET) link-shared 26776866Skris 26876866Skrisdo_bsd-gcc-shared: do_gnu-shared 26976866Skrisdo_linux-shared: do_gnu-shared 27076866Skrisdo_gnu-shared: 27176866Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 272100928Snectar ( set -x; ${CC} ${SHARED_LDFLAGS} \ 273100928Snectar -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 27489837Skris -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 275100928Snectar -Wl,-Bsymbolic \ 27655714Skris -Wl,--whole-archive lib$$i.a \ 27768651Skris -Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \ 27876866Skris libs="$$libs -l$$i"; \ 27968651Skris done 28055714Skris 281109998SmarkmDETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null 28289837Skris 283100928Snectar# For Darwin AKA Mac OS/X (dyld) 284100928Snectardo_darwin-shared: 285100928Snectar libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 286100928Snectar ( set -x ; ${CC} --verbose -dynamiclib -o lib$$i${SHLIB_EXT} \ 287100928Snectar lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \ 288100928Snectar -compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \ 289100928Snectar -install_name ${INSTALLTOP}/lib/lib$$i${SHLIB_EXT} ) || exit 1; \ 290100928Snectar libs="$$libs -l`basename $$i${SHLIB_EXT} .dylib`"; \ 291100928Snectar echo "" ; \ 292100928Snectar done 293100928Snectar 294100928Snectardo_cygwin-shared: 295100928Snectar libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 296109998Smarkm ( set -x; ${CC} -shared -o cyg$$i-$(SHLIB_VERSION_NUMBER).dll \ 297100928Snectar -Wl,-Bsymbolic \ 298100928Snectar -Wl,--whole-archive lib$$i.a \ 299100928Snectar -Wl,--out-implib,lib$$i.dll.a \ 300100928Snectar -Wl,--no-whole-archive $$libs ) || exit 1; \ 301100928Snectar libs="$$libs -l$$i"; \ 302100928Snectar done 303100928Snectar 30468651Skris# This assumes that GNU utilities are *not* used 30589837Skrisdo_alpha-osf1-shared: 30689837Skris if ${DETECT_GNU_LD}; then \ 30789837Skris $(MAKE) do_gnu-shared; \ 30889837Skris else \ 30989837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 310100928Snectar ( set -x; ${CC} ${SHARED_LDFLAGS} \ 311100928Snectar -shared -o lib$$i.so \ 31289837Skris -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 31389837Skris -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ 31489837Skris libs="$$libs -l$$i"; \ 31589837Skris done; \ 31689837Skris fi 31789837Skris 31889837Skris# This assumes that GNU utilities are *not* used 31989837Skris# The difference between alpha-osf1-shared and tru64-shared is the `-msym' 32089837Skris# option passed to the linker. 32176866Skrisdo_tru64-shared: 32289837Skris if ${DETECT_GNU_LD}; then \ 32389837Skris $(MAKE) do_gnu-shared; \ 32489837Skris else \ 32589837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 326100928Snectar ( set -x; ${CC} ${SHARED_LDFLAGS} \ 327100928Snectar -shared -msym -o lib$$i.so \ 32889837Skris -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 32989837Skris -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ 33089837Skris libs="$$libs -l$$i"; \ 33189837Skris done; \ 33289837Skris fi 33389837Skris 33489837Skris# This assumes that GNU utilities are *not* used 33589837Skris# The difference between tru64-shared and tru64-shared-rpath is the 33689837Skris# -rpath ${INSTALLTOP}/lib passed to the linker. 33789837Skrisdo_tru64-shared-rpath: 33889837Skris if ${DETECT_GNU_LD}; then \ 33989837Skris $(MAKE) do_gnu-shared; \ 34089837Skris else \ 34189837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 342100928Snectar ( set -x; ${CC} ${SHARED_LDFLAGS} \ 343100928Snectar -shared -msym -o lib$$i.so \ 34489837Skris -rpath ${INSTALLTOP}/lib \ 34589837Skris -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 34689837Skris -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ 34789837Skris libs="$$libs -l$$i"; \ 34889837Skris done; \ 34989837Skris fi 35089837Skris 35189837Skris 35289837Skris# This assumes that GNU utilities are *not* used 35389837Skrisdo_solaris-shared: 35489837Skris if ${DETECT_GNU_LD}; then \ 35589837Skris $(MAKE) do_gnu-shared; \ 35689837Skris else \ 35789837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 35889837Skris ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 359109998Smarkm MINUSZ='-z '; \ 360109998Smarkm (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ 361109998Smarkm set -x; ${CC} ${SHARED_LDFLAGS} -G -dy -z text \ 362109998Smarkm -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 36389837Skris -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 364109998Smarkm $${MINUSZ}allextract lib$$i.a $${MINUSZ}defaultextract \ 365109998Smarkm $$libs ${EX_LIBS} -lc ) || exit 1; \ 36689837Skris libs="$$libs -l$$i"; \ 36789837Skris done; \ 36889837Skris fi 36989837Skris 370100928Snectar# OpenServer 5 native compilers used 371100928Snectardo_svr3-shared: 372100928Snectar if ${DETECT_GNU_LD}; then \ 373100928Snectar $(MAKE) do_gnu-shared; \ 374100928Snectar else \ 375100928Snectar libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 376100928Snectar ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 377100928Snectar find . -name "*.o" -print > allobjs ; \ 378100928Snectar OBJS= ; export OBJS ; \ 379100928Snectar for obj in `ar t lib$$i.a` ; do \ 380100928Snectar OBJS="$${OBJS} `grep $$obj allobjs`" ; \ 381100928Snectar done ; \ 382100928Snectar set -x; ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 383100928Snectar -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 384100928Snectar $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \ 385100928Snectar libs="$$libs -l$$i"; \ 386100928Snectar done; \ 387100928Snectar fi 388100928Snectar 38989837Skris# UnixWare 7 and OpenUNIX 8 native compilers used 39089837Skrisdo_svr5-shared: 39189837Skris if ${DETECT_GNU_LD}; then \ 39289837Skris $(MAKE) do_gnu-shared; \ 39389837Skris else \ 39489837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 39589837Skris ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 39689837Skris find . -name "*.o" -print > allobjs ; \ 39789837Skris OBJS= ; export OBJS ; \ 39889837Skris for obj in `ar t lib$$i.a` ; do \ 39989837Skris OBJS="$${OBJS} `grep $$obj allobjs`" ; \ 40089837Skris done ; \ 401100928Snectar set -x; ${CC} ${SHARED_LDFLAGS} \ 402100928Snectar -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 40389837Skris -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 40489837Skris $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \ 40589837Skris libs="$$libs -l$$i"; \ 40689837Skris done; \ 40789837Skris fi 40889837Skris 40989837Skris# This assumes that GNU utilities are *not* used 41089837Skrisdo_irix-shared: 41189837Skris if ${DETECT_GNU_LD}; then \ 41289837Skris $(MAKE) do_gnu-shared; \ 41389837Skris else \ 41489837Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 415100928Snectar ( set -x; ${CC} ${SHARED_LDFLAGS} \ 416100928Snectar -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 41789837Skris -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 41889837Skris -all lib$$i.a $$libs ${EX_LIBS} -lc) || exit 1; \ 41989837Skris libs="$$libs -l$$i"; \ 42089837Skris done; \ 42189837Skris fi 42289837Skris 42389837Skris# This assumes that GNU utilities are *not* used 424109998Smarkm# HP-UX includes the full pathname of libs we depend on, so we would get 425109998Smarkm# ./libcrypto (with ./ as path information) compiled into libssl, hence 426109998Smarkm# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto 427109998Smarkm# anyway. 428109998Smarkm# The object modules are loaded from lib$i.a using the undocumented -Fl 429109998Smarkm# option. 430109998Smarkm# 431109998Smarkm# WARNING: Until DSO is fixed to support a search path, we support SHLIB_PATH 432109998Smarkm# by temporarily specifying "+s"! 433109998Smarkm# 43489837Skrisdo_hpux-shared: 435109998Smarkm for i in ${SHLIBDIRS}; do \ 436100928Snectar ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ 437109998Smarkm +vnocompatwarnings \ 438109998Smarkm -b -z +s \ 439109998Smarkm -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 44089837Skris +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 441109998Smarkm -Fl lib$$i.a -ldld -lc ) || exit 1; \ 442109998Smarkm chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 44368651Skris done 44468651Skris 44568651Skris# This assumes that GNU utilities are *not* used 446109998Smarkm# HP-UX includes the full pathname of libs we depend on, so we would get 447109998Smarkm# ./libcrypto (with ./ as path information) compiled into libssl, hence 448109998Smarkm# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto 449109998Smarkm# anyway. 450109998Smarkm# 451109998Smarkm# HP-UX in 64bit mode has "+s" enabled by default; it will search for 452109998Smarkm# shared libraries along LD_LIBRARY_PATH _and_ SHLIB_PATH. 453109998Smarkm# 45489837Skrisdo_hpux64-shared: 455109998Smarkm for i in ${SHLIBDIRS}; do \ 456100928Snectar ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ 457109998Smarkm -b -z \ 458109998Smarkm -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 45989837Skris +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 460109998Smarkm +forceload lib$$i.a -ldl -lc ) || exit 1; \ 461109998Smarkm chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 46289837Skris done 46389837Skris 46489837Skris# The following method is said to work on all platforms. Tests will 46589837Skris# determine if that's how it's gong to be used. 46689837Skris# This assumes that for all but GNU systems, GNU utilities are *not* used. 46789837Skris# ALLSYMSFLAGS would be: 46889837Skris# GNU systems: --whole-archive 46989837Skris# Tru64 Unix: -all 47089837Skris# Solaris: -z allextract 47189837Skris# Irix: -all 47289837Skris# HP/UX-32bit: -Fl 47389837Skris# HP/UX-64bit: +forceload 47489837Skris# AIX: -bnogc 47589837Skris# SHAREDFLAGS would be: 47689837Skris# GNU systems: -shared -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 47789837Skris# Tru64 Unix: -shared \ 47889837Skris# -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" 47989837Skris# Solaris: -G -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 48089837Skris# Irix: -shared -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 48189837Skris# HP/UX-32bit: +vnocompatwarnings -b -z +s \ 48289837Skris# +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} 48389837Skris# HP/UX-64bit: -b -z +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} 48489837Skris# AIX: -G -bE:lib$$i.exp -bM:SRE 48589837Skris# SHAREDCMD would be: 48689837Skris# GNU systems: $(CC) 48789837Skris# Tru64 Unix: $(CC) 48889837Skris# Solaris: $(CC) 48989837Skris# Irix: $(CC) 49089837Skris# HP/UX-32bit: /usr/ccs/bin/ld 49189837Skris# HP/UX-64bit: /usr/ccs/bin/ld 49289837Skris# AIX: $(CC) 49389837SkrisALLSYMSFLAG=-bnogc 494100928SnectarSHAREDFLAGS=${SHARED_LDFLAGS} -G -bE:lib$$i.exp -bM:SRE 49589837SkrisSHAREDCMD=$(CC) 49689837Skrisdo_aix-shared: 49776866Skris libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 49889837Skris ( set -x; \ 49989837Skris ld -r -o $$i.o $(ALLSYMSFLAG) lib$$i.a && \ 50089837Skris ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \ 50189837Skris $(SHAREDCMD) $(SHAREDFLAG) -o lib$$i.so lib$$i.o \ 50289837Skris $$libs ${EX_LIBS} ) ) \ 50389837Skris || exit 1; \ 50476866Skris libs="$$libs -l$$i"; \ 50568651Skris done 50668651Skris 507109998Smarkmdo_reliantunix-shared: 508109998Smarkm libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 509109998Smarkm tmpdir=/tmp/openssl.$$$$ ; rm -rf $$tmpdir ; \ 510109998Smarkm ( set -x; \ 511109998Smarkm ( Opwd=`pwd` ; mkdir $$tmpdir || exit 1; \ 512109998Smarkm cd $$tmpdir || exit 1 ; ar x $$Opwd/lib$$i.a ; \ 513109998Smarkm ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} *.o \ 514109998Smarkm ) || exit 1; \ 515109998Smarkm cp $$tmpdir/lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} . ; \ 516109998Smarkm ) || exit 1; \ 517109998Smarkm rm -rf $$tmpdir ; \ 518109998Smarkm libs="$$libs -l$$i"; \ 519109998Smarkm done 520109998Smarkm 521109998Smarkmopenssl.pc: Makefile.ssl 522109998Smarkm @ ( echo 'prefix=$(INSTALLTOP)'; \ 523109998Smarkm echo 'exec_prefix=$${prefix}'; \ 524109998Smarkm echo 'libdir=$${exec_prefix}/lib'; \ 525109998Smarkm echo 'includedir=$${prefix}/include'; \ 526109998Smarkm echo ''; \ 527109998Smarkm echo 'Name: OpenSSL'; \ 528109998Smarkm echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \ 529109998Smarkm echo 'Version: '$(VERSION); \ 530109998Smarkm echo 'Requires: '; \ 531109998Smarkm echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \ 532109998Smarkm echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc 533109998Smarkm 53455714SkrisMakefile.ssl: Makefile.org 53555714Skris @echo "Makefile.ssl is older than Makefile.org." 53655714Skris @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please." 53755714Skris @false 53855714Skris 53955714Skrislibclean: 54055714Skris rm -f *.a */lib */*/lib 54155714Skris 54255714Skrisclean: 54359191Skris rm -f shlib/*.o *.o core a.out fluff *.map rehash.time testlog make.log cctest cctest.c 54455714Skris @for i in $(DIRS) ;\ 54555714Skris do \ 54676866Skris if [ -d "$$i" ]; then \ 54768651Skris (cd $$i && echo "making clean in $$i..." && \ 54868651Skris $(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \ 54968651Skris rm -f $(LIBS); \ 55068651Skris fi; \ 55155714Skris done; 552109998Smarkm rm -f openssl.pc 55355714Skris rm -f *.a *.o speed.* *.map *.so .pure core 55455714Skris rm -f $(TARFILE) 55555714Skris @for i in $(ONEDIRS) ;\ 55655714Skris do \ 55755714Skris rm -fr $$i/*; \ 55855714Skris done 55955714Skris 56055714Skrismakefile.one: files 56155714Skris $(PERL) util/mk1mf.pl >makefile.one; \ 56255714Skris sh util/do_ms.sh 56355714Skris 56455714Skrisfiles: 56555714Skris $(PERL) $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO 56655714Skris @for i in $(DIRS) ;\ 56755714Skris do \ 56876866Skris if [ -d "$$i" ]; then \ 56968651Skris (cd $$i && echo "making 'files' in $$i..." && \ 57068651Skris $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \ 57168651Skris fi; \ 57255714Skris done; 57355714Skris 57455714Skrislinks: 57555714Skris @$(TOP)/util/point.sh Makefile.ssl Makefile 57655714Skris @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl 57755714Skris @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER) 57855714Skris @for i in $(DIRS); do \ 57976866Skris if [ -d "$$i" ]; then \ 58068651Skris (cd $$i && echo "making links in $$i..." && \ 581109998Smarkm $(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; \ 58268651Skris fi; \ 58355714Skris done; 58455714Skris 585109998Smarkmgentests: 586109998Smarkm @(cd test && echo "generating dummy tests (if needed)..." && \ 587109998Smarkm $(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 ); 588109998Smarkm 58955714Skrisdclean: 59055714Skris rm -f *.bak 59155714Skris @for i in $(DIRS) ;\ 59255714Skris do \ 59376866Skris if [ -d "$$i" ]; then \ 59468651Skris (cd $$i && echo "making dclean in $$i..." && \ 59568651Skris $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \ 59668651Skris fi; \ 59755714Skris done; 59855714Skris 59959191Skrisrehash: rehash.time 60059191Skrisrehash.time: certs 601109998Smarkm @(OPENSSL="`pwd`/apps/openssl"; OPENSSL_DEBUG_MEMORY=on; \ 602109998Smarkm export OPENSSL OPENSSL_DEBUG_MEMORY; \ 603109998Smarkm LD_LIBRARY_PATH="`pwd`"; DYLD_LIBRARY_PATH="`pwd`"; SHLIB_PATH="`pwd`"; LIBPATH="`pwd`"; \ 604109998Smarkm if [ "$(PLATFORM)" = "DJGPP" ]; then PATH="`pwd`\;$$PATH"; \ 605109998Smarkm elif [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \ 606109998Smarkm export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \ 607109998Smarkm $(PERL) tools/c_rehash certs) 60859191Skris touch rehash.time 60955714Skris 61055714Skristest: tests 61155714Skris 61255714Skristests: rehash 61355714Skris @(cd test && echo "testing..." && \ 614109998Smarkm $(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 ); 615109998Smarkm @LD_LIBRARY_PATH="`pwd`"; DYLD_LIBRARY_PATH="`pwd`"; SHLIB_PATH="`pwd`"; LIBPATH="`pwd`"; \ 616109998Smarkm if [ "$(PLATFORM)" = "DJGPP" ]; then PATH="`pwd`\;$$PATH"; \ 617109998Smarkm elif [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \ 618109998Smarkm export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \ 619109998Smarkm apps/openssl version -a 62055714Skris 62159191Skrisreport: 62259191Skris @$(PERL) util/selftest.pl 62359191Skris 62455714Skrisdepend: 62555714Skris @for i in $(DIRS) ;\ 62655714Skris do \ 62776866Skris if [ -d "$$i" ]; then \ 62868651Skris (cd $$i && echo "making dependencies $$i..." && \ 629109998Smarkm $(MAKE) SDIRS='${SDIRS}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ) || exit 1; \ 63068651Skris fi; \ 63155714Skris done; 63255714Skris 63355714Skrislint: 63455714Skris @for i in $(DIRS) ;\ 63555714Skris do \ 63676866Skris if [ -d "$$i" ]; then \ 63768651Skris (cd $$i && echo "making lint $$i..." && \ 63868651Skris $(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \ 63968651Skris fi; \ 64055714Skris done; 64155714Skris 64255714Skristags: 64355714Skris @for i in $(DIRS) ;\ 64455714Skris do \ 64576866Skris if [ -d "$$i" ]; then \ 64668651Skris (cd $$i && echo "making tags $$i..." && \ 64768651Skris $(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \ 64868651Skris fi; \ 64955714Skris done; 65055714Skris 65155714Skriserrors: 65289837Skris $(PERL) util/mkerr.pl -recurse -write 653109998Smarkm (cd crypto/engine; $(MAKE) PERL=$(PERL) errors) 65455714Skris 65568651Skrisstacks: 65689837Skris $(PERL) util/mkstack.pl -write 65768651Skris 65855714Skrisutil/libeay.num:: 65989837Skris $(PERL) util/mkdef.pl crypto update 66055714Skris 66155714Skrisutil/ssleay.num:: 66289837Skris $(PERL) util/mkdef.pl ssl update 66355714Skris 664109998Smarkmcrypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h 66589837Skris $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h 666109998Smarkmcrypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num 66789837Skris $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h 66859191Skris 66955714SkrisTABLE: Configure 67055714Skris (echo 'Output of `Configure TABLE'"':"; \ 67189837Skris $(PERL) Configure TABLE) > TABLE 67255714Skris 67368651Skrisupdate: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h TABLE 67455714Skris 675100936Snectar# Build distribution tar-file. As the list of files returned by "find" is 676100936Snectar# pretty long, on several platforms a "too many arguments" error or similar 677100936Snectar# would occur. Therefore the list of files is temporarily stored into a file 678100936Snectar# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal 679100936Snectar# tar does not support the --files-from option. 68055714Skristar: 681109998Smarkm find . -type d -print | xargs chmod 755 682109998Smarkm find . -type f -print | xargs chmod a+r 683109998Smarkm find . -type f -perm -0100 -print | xargs chmod a+x 684100936Snectar find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \ 685100936Snectar $(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \ 68655714Skris tardy --user_number=0 --user_name=openssl \ 68755714Skris --group_number=0 --group_name=openssl \ 68855714Skris --prefix=openssl-$(VERSION) - |\ 68955714Skris gzip --best >../$(TARFILE).gz; \ 690100936Snectar rm -f ../$(TARFILE).list; \ 69155714Skris ls -l ../$(TARFILE).gz 69255714Skris 693109998Smarkmtar-snap: 694109998Smarkm @$(TAR) $(TARFLAGS) -cvf - \ 695109998Smarkm `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` |\ 696109998Smarkm tardy --user_number=0 --user_name=openssl \ 697109998Smarkm --group_number=0 --group_name=openssl \ 698109998Smarkm --prefix=openssl-$(VERSION) - > ../$(TARFILE);\ 699109998Smarkm ls -l ../$(TARFILE) 700109998Smarkm 70155714Skrisdist: 70255714Skris $(PERL) Configure dist 70355714Skris @$(MAKE) dist_pem_h 70455714Skris @$(MAKE) SDIRS='${SDIRS}' clean 705100936Snectar @$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar 70655714Skris 70755714Skrisdist_pem_h: 70855714Skris (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean) 70955714Skris 71059191Skrisinstall: all install_docs 71155714Skris @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ 71255714Skris $(INSTALL_PREFIX)$(INSTALLTOP)/lib \ 713109998Smarkm $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \ 71455714Skris $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ 71555714Skris $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ 71655714Skris $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ 71755714Skris $(INSTALL_PREFIX)$(OPENSSLDIR)/private \ 71855714Skris $(INSTALL_PREFIX)$(OPENSSLDIR)/lib 71955714Skris @for i in $(EXHEADER) ;\ 72055714Skris do \ 72155714Skris (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ 72255714Skris chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ 72355714Skris done; 72455714Skris @for i in $(DIRS) ;\ 72555714Skris do \ 72676866Skris if [ -d "$$i" ]; then \ 72768651Skris (cd $$i; echo "installing $$i..."; \ 72876866Skris $(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 ); \ 72968651Skris fi; \ 73055714Skris done 73155714Skris @for i in $(LIBS) ;\ 73255714Skris do \ 73368651Skris if [ -f "$$i" ]; then \ 73468651Skris ( echo installing $$i; \ 735109998Smarkm cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 736109998Smarkm $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 737109998Smarkm chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 738109998Smarkm mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ 739100928Snectar fi; \ 740109998Smarkm done; 74176866Skris @if [ -n "$(SHARED_LIBS)" ]; then \ 74276866Skris tmp="$(SHARED_LIBS)"; \ 74376866Skris for i in $${tmp:-x}; \ 74476866Skris do \ 745100928Snectar if [ -f "$$i" -o -f "$$i.a" ]; then \ 74676866Skris ( echo installing $$i; \ 747100928Snectar if [ "$(PLATFORM)" != "Cygwin" ]; then \ 748109998Smarkm cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 749109998Smarkm chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 750109998Smarkm mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \ 751100928Snectar else \ 752109998Smarkm c=`echo $$i | sed 's/^lib\(.*\)/cyg\1-$(SHLIB_VERSION_NUMBER)/'`; \ 753109998Smarkm cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 754109998Smarkm chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 755109998Smarkm mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \ 756109998Smarkm cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ 757109998Smarkm chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ 758109998Smarkm mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \ 759100928Snectar fi ); \ 760100928Snectar fi; \ 76176866Skris done; \ 76276866Skris ( here="`pwd`"; \ 76376866Skris cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ 764101618Snectar set $(MAKE); \ 765101618Snectar $$1 -f $$here/Makefile link-shared ); \ 76676866Skris fi 767109998Smarkm cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig 76855714Skris 76959191Skrisinstall_docs: 77059191Skris @$(PERL) $(TOP)/util/mkdir-p.pl \ 77159191Skris $(INSTALL_PREFIX)$(MANDIR)/man1 \ 77259191Skris $(INSTALL_PREFIX)$(MANDIR)/man3 \ 77359191Skris $(INSTALL_PREFIX)$(MANDIR)/man5 \ 77459191Skris $(INSTALL_PREFIX)$(MANDIR)/man7 775109998Smarkm @pod2man="`cd util; ./pod2mantest $(PERL)`"; \ 776109998Smarkm here="`pwd`"; \ 777109998Smarkm filecase=; \ 778109998Smarkm if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" ]; then \ 779109998Smarkm filecase=-i; \ 780109998Smarkm fi; \ 781101613Snectar for i in doc/apps/*.pod; do \ 78259191Skris fn=`basename $$i .pod`; \ 78379998Skris if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \ 784109998Smarkm echo "installing man$$sec/$$fn.$$sec"; \ 785100936Snectar (cd `$(PERL) util/dirname.pl $$i`; \ 786109998Smarkm sh -c "$$pod2man \ 787100936Snectar --section=$$sec --center=OpenSSL \ 788100936Snectar --release=$(VERSION) `basename $$i`") \ 789109998Smarkm > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$$sec; \ 790109998Smarkm $(PERL) util/extract-names.pl < $$i | \ 791109998Smarkm grep -v $$filecase "^$$fn\$$" | \ 792109998Smarkm (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 793109998Smarkm while read n; do \ 794109998Smarkm $$here/util/point.sh $$fn.$$sec $$n.$$sec; \ 795109998Smarkm done); \ 796101613Snectar done; \ 797101618Snectar for i in doc/crypto/*.pod doc/ssl/*.pod; do \ 79859191Skris fn=`basename $$i .pod`; \ 79979998Skris if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \ 800109998Smarkm echo "installing man$$sec/$$fn.$$sec"; \ 801100936Snectar (cd `$(PERL) util/dirname.pl $$i`; \ 802109998Smarkm sh -c "$$pod2man \ 803100936Snectar --section=$$sec --center=OpenSSL \ 804100936Snectar --release=$(VERSION) `basename $$i`") \ 805109998Smarkm > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$$sec; \ 806109998Smarkm $(PERL) util/extract-names.pl < $$i | \ 807109998Smarkm grep -v $$filecase "^$$fn\$$" | \ 808109998Smarkm (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 809109998Smarkm while read n; do \ 810109998Smarkm $$here/util/point.sh $$fn.$$sec $$n.$$sec; \ 811109998Smarkm done); \ 81259191Skris done 81359191Skris 81455714Skris# DO NOT DELETE THIS LINE -- make depend depends on it. 815