1## 2## Makefile for OpenSSL 3## 4 5VERSION= 6MAJOR= 7MINOR= 8SHLIB_VERSION_NUMBER= 9SHLIB_VERSION_HISTORY= 10SHLIB_MAJOR= 11SHLIB_MINOR= 12SHLIB_EXT= 13PLATFORM=dist 14OPTIONS= 15CONFIGURE_ARGS= 16SHLIB_TARGET= 17 18# HERE indicates where this Makefile lives. This can be used to indicate 19# where sub-Makefiles are expected to be. Currently has very limited usage, 20# and should probably not be bothered with at all. 21HERE=. 22 23# INSTALL_PREFIX is for package builders so that they can configure 24# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/. 25# Normally it is left empty. 26INSTALL_PREFIX= 27INSTALLTOP=/usr/local/ssl 28 29# Do not edit this manually. Use Configure --openssldir=DIR do change this! 30OPENSSLDIR=/usr/local/ssl 31 32# NO_IDEA - Define to build without the IDEA algorithm 33# NO_RC4 - Define to build without the RC4 algorithm 34# NO_RC2 - Define to build without the RC2 algorithm 35# THREADS - Define when building with threads, you will probably also need any 36# system defines as well, i.e. _REENTERANT for Solaris 2.[34] 37# TERMIO - Define the termio terminal subsystem, needed if sgtty is missing. 38# TERMIOS - Define the termios terminal subsystem, Silicon Graphics. 39# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3). 40# DEVRANDOM - Give this the value of the 'random device' if your OS supports 41# one. 32 bytes will be read from this when the random 42# number generator is initalised. 43# SSL_FORBID_ENULL - define if you want the server to be not able to use the 44# NULL encryption ciphers. 45# 46# LOCK_DEBUG - turns on lots of lock debug output :-) 47# REF_CHECK - turn on some xyz_free() assertions. 48# REF_PRINT - prints some stuff on structure free. 49# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff 50# MFUNC - Make all Malloc/Free/Realloc calls call 51# CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to 52# call application defined callbacks via CRYPTO_set_mem_functions() 53# MD5_ASM needs to be defined to use the x86 assembler for MD5 54# SHA1_ASM needs to be defined to use the x86 assembler for SHA1 55# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160 56# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must 57# equal 4. 58# PKCS1_CHECK - pkcs1 tests. 59 60CC= gcc 61#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM 62CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM 63DEPFLAG= 64PEX_LIBS= 65EX_LIBS= 66EXE_EXT= 67ARFLAGS= 68AR=ar $(ARFLAGS) r 69RANLIB= ranlib 70PERL= perl 71TAR= tar 72TARFLAGS= --no-recursion 73MAKEDEPPROG=makedepend 74 75# We let the C compiler driver to take care of .s files. This is done in 76# order to be excused from maintaining a separate set of architecture 77# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC 78# gcc, then the driver will automatically translate it to -xarch=v8plus 79# and pass it down to assembler. 80AS=$(CC) -c 81ASFLAG=$(CFLAG) 82 83# Set BN_ASM to bn_asm.o if you want to use the C version 84BN_ASM= bn_asm.o 85#BN_ASM= bn_asm.o 86#BN_ASM= asm/bn86-elf.o # elf, linux-elf 87#BN_ASM= asm/bn86-sol.o # solaris 88#BN_ASM= asm/bn86-out.o # a.out, FreeBSD 89#BN_ASM= asm/bn86bsdi.o # bsdi 90#BN_ASM= asm/alpha.o # DEC Alpha 91#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC 92#BN_ASM= asm/r3000.o # SGI MIPS cpu 93#BN_ASM= asm/sparc.o # Sun solaris/SunOS 94#BN_ASM= asm/bn-win32.o # Windows 95/NT 95#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS 96#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1 97 98# For x86 assembler: Set PROCESSOR to 386 if you want to support 99# the 80386. 100PROCESSOR= 101 102# Set DES_ENC to des_enc.o if you want to use the C version 103#There are 4 x86 assember options. 104FIPS_DES_ENC= des_enc.o fcrypt_b.o 105FIPS_AES_ENC= fips_aes_core.o 106DES_ENC= asm/dx86-out.o asm/yx86-out.o 107#DES_ENC= des_enc.o fcrypt_b.o # C 108#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf 109#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris 110#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD 111#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi 112 113# Set BF_ENC to bf_enc.o if you want to use the C version 114#There are 4 x86 assember options. 115BF_ENC= asm/bx86-out.o 116#BF_ENC= bf_enc.o 117#BF_ENC= asm/bx86-elf.o # elf 118#BF_ENC= asm/bx86-sol.o # solaris 119#BF_ENC= asm/bx86-out.o # a.out, FreeBSD 120#BF_ENC= asm/bx86bsdi.o # bsdi 121 122# Set CAST_ENC to c_enc.o if you want to use the C version 123#There are 4 x86 assember options. 124CAST_ENC= asm/cx86-out.o 125#CAST_ENC= c_enc.o 126#CAST_ENC= asm/cx86-elf.o # elf 127#CAST_ENC= asm/cx86-sol.o # solaris 128#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD 129#CAST_ENC= asm/cx86bsdi.o # bsdi 130 131# Set RC4_ENC to rc4_enc.o if you want to use the C version 132#There are 4 x86 assember options. 133RC4_ENC= asm/rx86-out.o 134#RC4_ENC= rc4_enc.o 135#RC4_ENC= asm/rx86-elf.o # elf 136#RC4_ENC= asm/rx86-sol.o # solaris 137#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD 138#RC4_ENC= asm/rx86bsdi.o # bsdi 139 140# Set RC5_ENC to rc5_enc.o if you want to use the C version 141#There are 4 x86 assember options. 142RC5_ENC= asm/r586-out.o 143#RC5_ENC= rc5_enc.o 144#RC5_ENC= asm/r586-elf.o # elf 145#RC5_ENC= asm/r586-sol.o # solaris 146#RC5_ENC= asm/r586-out.o # a.out, FreeBSD 147#RC5_ENC= asm/r586bsdi.o # bsdi 148 149# Also need MD5_ASM defined 150MD5_ASM_OBJ= asm/mx86-out.o 151#MD5_ASM_OBJ= asm/mx86-elf.o # elf 152#MD5_ASM_OBJ= asm/mx86-sol.o # solaris 153#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD 154#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi 155 156# Also need SHA1_ASM defined 157SHA1_ASM_OBJ= asm/sx86-out.o 158FIPS_SHA1_ASM_OBJ= asm/sx86-out.o 159#SHA1_ASM_OBJ= asm/sx86-elf.o # elf 160#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris 161#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD 162#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi 163 164# Also need RMD160_ASM defined 165RMD160_ASM_OBJ= asm/rm86-out.o 166#RMD160_ASM_OBJ= asm/rm86-elf.o # elf 167#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris 168#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD 169#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi 170 171# KRB5 stuff 172KRB5_INCLUDES= 173LIBKRB5= 174 175# Zlib stuff 176ZLIB_INCLUDE= 177LIBZLIB= 178 179# This is the location of fipscanister.o and friends. 180# The FIPS module build will place it $(INSTALLTOP)/lib 181# but since $(INSTALLTOP) can only take the default value 182# when the module is built it will be in /usr/local/ssl/lib 183# $(INSTALLTOP) for this build make be different so hard 184# code the path. 185 186FIPSLIBDIR=/usr/local/ssl/lib/ 187FIPSCANISTERINTERNAL=n 188 189# Shared library base address. Currently only used on Windows. 190# 191 192BASEADDR= 193 194# When we're prepared to use shared libraries in the programs we link here 195# we might set SHLIB_MARK to '$(SHARED_LIBS)'. 196SHLIB_MARK= 197 198DIRS= crypto fips-1.0 ssl $(SHLIB_MARK) apps test tools 199SHLIBDIRS= crypto ssl 200 201# dirs in crypto to build 202SDIRS= objects \ 203 md2 md4 md5 sha mdc2 hmac ripemd \ 204 des rc2 rc4 rc5 idea bf cast \ 205 bn ec rsa dsa dh dso engine aes \ 206 buffer bio stack lhash rand err \ 207 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 208 209FDIRS= sha rand des aes dsa rsa dh hmac 210 211# tests to perform. "alltests" is a special word indicating that all tests 212# should be performed. 213TESTS = alltests 214 215MAKEFILE= Makefile 216 217MANDIR=$(OPENSSLDIR)/man 218MAN1=1 219MAN3=3 220MANSUFFIX= 221SHELL=/bin/sh 222 223TOP= . 224ONEDIRS=out tmp 225EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS 226WDIRS= windows 227LIBS= libcrypto.a libssl.a 228SHARED_CRYPTO=libcrypto$(SHLIB_EXT) 229SHARED_SSL=libssl$(SHLIB_EXT) 230SHARED_LIBS= 231SHARED_LIBS_LINK_EXTS= 232SHARED_LDFLAGS= 233 234GENERAL= Makefile 235BASENAME= openssl 236NAME= $(BASENAME)-$(VERSION) 237TARFILE= $(NAME).tar 238WTARFILE= $(NAME)-win.tar 239EXHEADER= e_os2.h 240HEADER= e_os.h 241 242# When we're prepared to use shared libraries in the programs we link here 243# we might remove 'clean-shared' from the targets to perform at this stage 244 245all: Makefile sub_all openssl.pc 246 247sub_all: 248 @for i in $(DIRS); \ 249 do \ 250 if [ -d "$$i" ]; then \ 251 (cd $$i && echo "making all in $$i..." && \ 252 $(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}' FIPS_AES_ENC='${FIPS_AES_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}' FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' FIPSLIBDIR='${FIPSLIBDIR}' all ) || exit 1; \ 253 else \ 254 $(MAKE) $$i; \ 255 fi; \ 256 done; 257 258sub_target: 259 @for i in $(DIRS); \ 260 do \ 261 if [ -d "$$i" ]; then \ 262 (cd $$i && echo "making $(TARGET) in $$i..." && \ 263 $(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}' FIPS_AES_ENC='${FIPS_AES_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; \ 264 else \ 265 $(MAKE) $$i; \ 266 fi; \ 267 done; 268 269libcrypto$(SHLIB_EXT): libcrypto.a 270 @if [ "$(SHLIB_TARGET)" != "" ]; then \ 271 $(MAKE) SHLIBDIRS=crypto build-shared; \ 272 else \ 273 echo "There's no support for shared libraries on this platform" >&2; \ 274 fi 275 276libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a 277 @if [ "$(SHLIB_TARGET)" != "" ]; then \ 278 $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ 279 else \ 280 echo "There's no support for shared libraries on this platform" >&2; \ 281 fi 282 283clean-shared: 284 @for i in $(SHLIBDIRS); do \ 285 if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ 286 tmp="$(SHARED_LIBS_LINK_EXTS)"; \ 287 for j in $${tmp:-x}; do \ 288 ( set -x; rm -f lib$$i$$j ); \ 289 done; \ 290 fi; \ 291 ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \ 292 if [ "$(PLATFORM)" = "Cygwin" ]; then \ 293 ( set -x; rm -f cyg$$i-$(SHLIB_VERSION_NUMBER)$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \ 294 fi; \ 295 done 296 297link-shared: 298 @if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ 299 tmp="$(SHARED_LIBS_LINK_EXTS)"; \ 300 for i in $(SHLIBDIRS); do \ 301 prev=lib$$i$(SHLIB_EXT); \ 302 for j in $${tmp:-x}; do \ 303 ( set -x; \ 304 rm -f lib$$i$$j; ln -s $$prev lib$$i$$j ); \ 305 prev=lib$$i$$j; \ 306 done; \ 307 done; \ 308 fi 309 310build-shared: clean-shared do_$(SHLIB_TARGET) link-shared 311 312do_bsd-gcc-shared: do_gnu-shared 313do_linux-shared: do_gnu-shared 314do_gnu-shared: 315 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 316 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 317 libs="$(LIBKRB5) $$libs"; \ 318 fi; \ 319 ( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 320 -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 321 -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 322 -Wl,-Bsymbolic \ 323 -Wl,--whole-archive lib$$i.a \ 324 -Wl,--no-whole-archive $$libs ${EX_LIBS} ) || exit 1; \ 325 libs="-l$$i $$libs"; \ 326 done 327 328DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null 329 330# For Darwin AKA Mac OS/X (dyld) 331do_darwin-shared: 332 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 333 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 334 libs="$(LIBKRB5) $$libs"; \ 335 fi; \ 336 ( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 337 --verbose -dynamiclib -o lib$$i${SHLIB_EXT} \ 338 lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \ 339 -compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \ 340 -install_name ${INSTALLTOP}/lib/lib$$i${SHLIB_EXT} ) || exit 1; \ 341 libs="-l`basename $$i${SHLIB_EXT} .dylib` $$libs"; \ 342 echo "" ; \ 343 done 344 345do_cygwin-shared: 346 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 347 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 348 libs="$(LIBKRB5) $$libs"; \ 349 fi; \ 350 shlib=cyg$${i}-$(SHLIB_VERSION_NUMBER).dll; \ 351 [ "$(PLATFORM)" = "mingw" ] && shlib=$${i}eay32.dll; \ 352 [ -f apps/$$shlib ] && rm apps/$$shlib; \ 353 [ -f test/$$shlib ] && rm test/$$shlib; \ 354 base=; [ $$i = "crypto" ] && base=-Wl,--image-base,0x63000000; \ 355 ( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 356 -shared $$base -o $$shlib \ 357 -Wl,-Bsymbolic \ 358 -Wl,--whole-archive lib$$i.a \ 359 -Wl,--out-implib,lib$$i.dll.a \ 360 -Wl,--no-whole-archive $$libs ${EX_LIBS} ) || exit 1; \ 361 cp -p $$shlib apps/; cp -p $$shlib test/; \ 362 touch -c lib$$i.dll.a; \ 363 libs="-l$$i $$libs"; \ 364 done 365 366# This assumes that GNU utilities are *not* used 367do_alpha-osf1-shared: 368 if ${DETECT_GNU_LD}; then \ 369 $(MAKE) do_gnu-shared; \ 370 else \ 371 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 372 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 373 libs="$(LIBKRB5) $$libs"; \ 374 fi; \ 375 ( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 376 -shared -o lib$$i.so \ 377 -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 378 -all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \ 379 libs="-l$$i $$libs"; \ 380 done; \ 381 fi 382 383# This assumes that GNU utilities are *not* used 384# The difference between alpha-osf1-shared and tru64-shared is the `-msym' 385# option passed to the linker. 386do_tru64-shared: 387 if ${DETECT_GNU_LD}; then \ 388 $(MAKE) do_gnu-shared; \ 389 else \ 390 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 391 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 392 libs="$(LIBKRB5) $$libs"; \ 393 fi; \ 394 ( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 395 -shared -msym -o lib$$i.so \ 396 -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 397 -all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \ 398 libs="-l$$i $$libs"; \ 399 done; \ 400 fi 401 402# This assumes that GNU utilities are *not* used 403# The difference between tru64-shared and tru64-shared-rpath is the 404# -rpath ${INSTALLTOP}/lib passed to the linker. 405do_tru64-shared-rpath: 406 if ${DETECT_GNU_LD}; then \ 407 $(MAKE) do_gnu-shared; \ 408 else \ 409 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 410 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 411 libs="$(LIBKRB5) $$libs"; \ 412 fi; \ 413 ( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 414 -shared -msym -o lib$$i.so \ 415 -rpath ${INSTALLTOP}/lib \ 416 -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 417 -all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \ 418 libs="-l$$i $$libs"; \ 419 done; \ 420 fi 421 422 423# This assumes that GNU utilities are *not* used 424do_solaris-shared: 425 if ${DETECT_GNU_LD}; then \ 426 $(MAKE) do_gnu-shared; \ 427 else \ 428 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 429 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 430 libs="$(LIBKRB5) $$libs"; \ 431 fi; \ 432 ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 433 MINUSZ='-z '; \ 434 (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ 435 set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 436 -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 437 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 438 -Wl,-Bsymbolic \ 439 $${MINUSZ}allextract lib$$i.a $${MINUSZ}defaultextract \ 440 $$libs ${EX_LIBS} ) || exit 1; \ 441 libs="-l$$i $$libs"; \ 442 done; \ 443 fi 444 445# OpenServer 5 native compilers used 446do_svr3-shared: 447 if ${DETECT_GNU_LD}; then \ 448 $(MAKE) do_gnu-shared; \ 449 else \ 450 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 451 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 452 libs="$(LIBKRB5) $$libs"; \ 453 fi; \ 454 ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 455 find . -name "*.o" -print > allobjs ; \ 456 OBJS= ; export OBJS ; \ 457 for obj in `ar t lib$$i.a` ; do \ 458 OBJS="$${OBJS} `grep /$$obj allobjs`" ; \ 459 done ; \ 460 set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 461 -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 462 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 463 $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \ 464 libs="-l$$i $$libs"; \ 465 done; \ 466 fi 467 468# UnixWare 7 and OpenUNIX 8 native compilers used 469do_svr5-shared: 470 if ${DETECT_GNU_LD}; then \ 471 $(MAKE) do_gnu-shared; \ 472 else \ 473 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 474 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 475 libs="$(LIBKRB5) $$libs"; \ 476 fi; \ 477 ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 478 SHARE_FLAG='-G'; \ 479 (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \ 480 find . -name "*.o" -print > allobjs ; \ 481 OBJS= ; export OBJS ; \ 482 for obj in `ar t lib$$i.a` ; do \ 483 OBJS="$${OBJS} `grep /$$obj allobjs`" ; \ 484 done ; \ 485 set -x; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \ 486 $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 487 $${SHARE_FLAG} -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 488 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 489 $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \ 490 libs="-l$$i $$libs"; \ 491 done; \ 492 fi 493 494# This assumes that GNU utilities are *not* used 495do_irix-shared: 496 if ${DETECT_GNU_LD}; then \ 497 $(MAKE) do_gnu-shared; \ 498 else \ 499 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 500 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 501 libs="$(LIBKRB5) $$libs"; \ 502 fi; \ 503 ( WHOLELIB="-all lib$$i.a -none"; \ 504 (${CC} -v 2>&1 | grep gcc) > /dev/null && WHOLELIB="-Wl,-all,lib$$i.a,-none"; \ 505 set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 506 -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 507 -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 508 $${WHOLELIB} $$libs ${EX_LIBS}) || exit 1; \ 509 libs="-l$$i $$libs"; \ 510 done; \ 511 fi 512 513# This assumes that GNU utilities are *not* used 514# 515do_hpux-shared: 516 for i in ${SHLIBDIRS}; do \ 517 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 518 libs="$(LIBKRB5) $$libs"; \ 519 fi; \ 520 if expr $(PLATFORM) : '.*ia64' > /dev/null; then \ 521 shlib=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 522 else \ 523 shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 524 fi; \ 525 [ -f $$shlib ] && rm -f $$shlib; \ 526 ALLSYMSFLAGS='-Wl,-Fl'; \ 527 expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \ 528 ( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ 529 -Wl,-B,symbolic,+vnocompatwarnings,-z,+h,$$shlib \ 530 -o $$shlib $$ALLSYMSFLAGS,lib$$i.a -ldld ) || exit 1; \ 531 chmod a=rx $$shlib; \ 532 done 533 534# The following method is said to work on all platforms. Tests will 535# determine if that's how it's gong to be used. 536# This assumes that for all but GNU systems, GNU utilities are *not* used. 537# ALLSYMSFLAGS would be: 538# GNU systems: --whole-archive 539# Tru64 Unix: -all 540# Solaris: -z allextract 541# Irix: -all 542# HP/UX-32bit: -Fl 543# HP/UX-64bit: +forceload 544# AIX: -bnogc 545# SHAREDFLAGS would be: 546# GNU systems: -shared -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 547# Tru64 Unix: -shared \ 548# -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" 549# Solaris: -G -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 550# Irix: -shared -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 551# HP/UX-32bit: +vnocompatwarnings -b -z +s \ 552# +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} 553# HP/UX-64bit: -b -z +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} 554# AIX: -G -bE:lib$$i.exp -bM:SRE 555# SHAREDCMD would be: 556# GNU systems: $(CC) 557# Tru64 Unix: $(CC) 558# Solaris: $(CC) 559# Irix: $(CC) 560# HP/UX-32bit: /usr/ccs/bin/ld 561# HP/UX-64bit: /usr/ccs/bin/ld 562# AIX: $(CC) 563ALLSYMSFLAG=-bnogc 564SHAREDFLAGS=${SHARED_LDFLAGS} -G -bE:lib$$i.exp -bM:SRE 565SHAREDCMD=$(CC) 566do_aix-shared: 567 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 568 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 569 libs="$(LIBKRB5) $$libs"; \ 570 fi; \ 571 ( set -x; \ 572 OBJECT_MODE=`expr x${SHARED_LDFLAGS} : 'x\-[a-z]\([0-9]*\)'`; \ 573 OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \ 574 ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \ 575 ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \ 576 $${FIPSLD:-${CC}} $(SHAREDFLAGS) \ 577 -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} lib$$i.o \ 578 $$libs ${EX_LIBS} ) ) \ 579 || exit 1; \ 580 libs="-l$$i $$libs"; \ 581 done 582 583do_reliantunix-shared: 584 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 585 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 586 libs="$(LIBKRB5) $$libs"; \ 587 fi; \ 588 tmpdir=/tmp/openssl.$$$$ ; rm -rf $$tmpdir ; \ 589 ( set -x; \ 590 ( Opwd=`pwd` ; mkdir $$tmpdir || exit 1; \ 591 cd $$tmpdir || exit 1 ; ar x $$Opwd/lib$$i.a ; \ 592 $${FIPSLD:-${CC}} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} *.o \ 593 ) || exit 1; \ 594 cp $$tmpdir/lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} . ; \ 595 ) || exit 1; \ 596 rm -rf $$tmpdir ; \ 597 libs="-l$$i $$libs"; \ 598 done 599 600openssl.pc: Makefile 601 @ ( echo 'prefix=$(INSTALLTOP)'; \ 602 echo 'exec_prefix=$${prefix}'; \ 603 echo 'libdir=$${exec_prefix}/lib'; \ 604 echo 'includedir=$${prefix}/include'; \ 605 echo ''; \ 606 echo 'Name: OpenSSL'; \ 607 echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \ 608 echo 'Version: '$(VERSION); \ 609 echo 'Requires: '; \ 610 echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \ 611 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc 612 613Makefile: Makefile.org 614 @echo "Makefile is older than Makefile.org." 615 @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please." 616 @false 617 618libclean: 619 rm -f *.map *.so *.so.* engines/*.so *.a */lib */*/lib 620 621clean: libclean 622 rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c 623 @for i in $(DIRS) ;\ 624 do \ 625 if [ -d "$$i" ]; then \ 626 (cd $$i && echo "making clean in $$i..." && \ 627 $(MAKE) EXE_EXT='${EXE_EXT}' SDIRS='${SDIRS}' clean ) || exit 1; \ 628 rm -f $(LIBS); \ 629 fi; \ 630 done; 631 rm -f openssl.pc 632 rm -f speed.* .pure 633 rm -f $(TARFILE) 634 @for i in $(ONEDIRS) ;\ 635 do \ 636 rm -fr $$i/*; \ 637 done 638 639makefile.one: files 640 $(PERL) util/mk1mf.pl >makefile.one; \ 641 sh util/do_ms.sh 642 643files: 644 $(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO 645 @for i in $(DIRS) ;\ 646 do \ 647 if [ -d "$$i" ]; then \ 648 (cd $$i && echo "making 'files' in $$i..." && \ 649 $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \ 650 fi; \ 651 done; 652 653links: 654 @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl 655 @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER) 656 @for i in $(DIRS); do \ 657 if [ -d "$$i" ]; then \ 658 (cd $$i && echo "making links in $$i..." && \ 659 $(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; \ 660 fi; \ 661 done; 662 663gentests: 664 @(cd test && echo "generating dummy tests (if needed)..." && \ 665 $(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 ); 666 667dclean: 668 rm -f *.bak 669 @for i in $(DIRS) ;\ 670 do \ 671 if [ -d "$$i" ]; then \ 672 (cd $$i && echo "making dclean in $$i..." && \ 673 $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \ 674 fi; \ 675 done; 676 677rehash: rehash.time 678rehash.time: certs 679 @(OPENSSL="`pwd`/util/opensslwrap.sh"; \ 680 OPENSSL_DEBUG_MEMORY=on; \ 681 export OPENSSL OPENSSL_DEBUG_MEMORY; \ 682 $(PERL) tools/c_rehash certs) 683 touch rehash.time 684 685test: tests 686 687tests: rehash 688 @(cd test && echo "testing..." && \ 689 $(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 ); 690 util/shlib_wrap.sh apps/openssl version -a 691 692report: 693 @$(PERL) util/selftest.pl 694 695depend: 696 @for i in $(DIRS) ;\ 697 do \ 698 if [ -d "$$i" ]; then \ 699 (cd $$i && echo "making dependencies $$i..." && \ 700 $(MAKE) SDIRS='${SDIRS}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ) || exit 1; \ 701 fi; \ 702 done; 703 704lint: 705 @for i in $(DIRS) ;\ 706 do \ 707 if [ -d "$$i" ]; then \ 708 (cd $$i && echo "making lint $$i..." && \ 709 $(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \ 710 fi; \ 711 done; 712 713tags: 714 rm -f TAGS 715 find . -name '[^.]*.[ch]' | xargs etags -a 716 717errors: 718 $(PERL) util/mkerr.pl -recurse -write 719 (cd crypto/engine; $(MAKE) PERL=$(PERL) errors) 720 721stacks: 722 $(PERL) util/mkstack.pl -write 723 724util/libeay.num:: 725 $(PERL) util/mkdef.pl crypto update 726 727util/ssleay.num:: 728 $(PERL) util/mkdef.pl ssl update 729 730crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h 731 $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h 732crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num 733 $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h 734 735apps/openssl-vms.cnf: apps/openssl.cnf 736 $(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf 737 738crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl 739 $(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h 740 741 742TABLE: Configure 743 (echo 'Output of `Configure TABLE'"':"; \ 744 $(PERL) Configure TABLE) > TABLE 745 746update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf crypto/bn/bn_prime.h TABLE depend 747 748# Build distribution tar-file. As the list of files returned by "find" is 749# pretty long, on several platforms a "too many arguments" error or similar 750# would occur. Therefore the list of files is temporarily stored into a file 751# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal 752# tar does not support the --files-from option. 753tar: 754 find . -type d -print | xargs chmod 755 755 find . -type f -print | xargs chmod a+r 756 find . -type f -perm -0100 -print | xargs chmod a+x 757 find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \ 758 $(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \ 759 tardy --user_number=0 --user_name=openssl \ 760 --group_number=0 --group_name=openssl \ 761 --prefix=openssl-$(VERSION) - |\ 762 gzip --best >../$(TARFILE).gz; \ 763 rm -f ../$(TARFILE).list; \ 764 ls -l ../$(TARFILE).gz 765 766tar-snap: 767 @$(TAR) $(TARFLAGS) -cvf - \ 768 `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` |\ 769 tardy --user_number=0 --user_name=openssl \ 770 --group_number=0 --group_name=openssl \ 771 --prefix=openssl-$(VERSION) - > ../$(TARFILE);\ 772 ls -l ../$(TARFILE) 773 774dist: 775 $(PERL) Configure dist 776 @$(MAKE) dist_pem_h 777 @$(MAKE) SDIRS='${SDIRS}' clean 778 @$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar 779 780dist_pem_h: 781 (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean) 782 783install: all install_docs install_sw 784 785install_sw: 786 @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ 787 $(INSTALL_PREFIX)$(INSTALLTOP)/lib \ 788 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \ 789 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ 790 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ 791 $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ 792 $(INSTALL_PREFIX)$(OPENSSLDIR)/private 793 @headerlist="$(EXHEADER)"; for i in $$headerlist ;\ 794 do \ 795 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ 796 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ 797 done; 798 @for i in $(DIRS) ;\ 799 do \ 800 if [ -d "$$i" ]; then \ 801 (cd $$i; echo "installing $$i..."; \ 802 $(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 ); \ 803 fi; \ 804 done 805 @for i in $(LIBS) ;\ 806 do \ 807 if [ -f "$$i" ]; then \ 808 ( echo installing $$i; \ 809 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 810 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \ 811 : ; \ 812 else \ 813 $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 814 fi; \ 815 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 816 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ 817 fi; \ 818 done; 819 @if [ -n "$(SHARED_LIBS)" ]; then \ 820 tmp="$(SHARED_LIBS)"; \ 821 for i in $${tmp:-x}; \ 822 do \ 823 if [ -f "$$i" -o -f "$$i.a" ]; then \ 824 ( echo installing $$i; \ 825 if [ "$(PLATFORM)" != "Cygwin" ]; then \ 826 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 827 chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 828 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \ 829 else \ 830 c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \ 831 cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 832 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 833 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \ 834 cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ 835 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ 836 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \ 837 fi ); \ 838 fi; \ 839 done; \ 840 ( here="`pwd`"; \ 841 cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ 842 set $(MAKE); \ 843 $$1 -f $$here/Makefile link-shared ); \ 844 if [ "$(INSTALLTOP)" != "/usr" ]; then \ 845 echo 'OpenSSL shared libraries have been installed in:'; \ 846 echo ' $(INSTALLTOP)'; \ 847 echo ''; \ 848 sed -e '1,/^$$/d' doc/openssl-shared.txt; \ 849 fi; \ 850 fi 851 cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig 852 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc 853 854install_docs: 855 @$(PERL) $(TOP)/util/mkdir-p.pl \ 856 $(INSTALL_PREFIX)$(MANDIR)/man1 \ 857 $(INSTALL_PREFIX)$(MANDIR)/man3 \ 858 $(INSTALL_PREFIX)$(MANDIR)/man5 \ 859 $(INSTALL_PREFIX)$(MANDIR)/man7 860 @pod2man="`cd util; ./pod2mantest $(PERL)`"; \ 861 here="`pwd`"; \ 862 filecase=; \ 863 if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \ 864 filecase=-i; \ 865 fi; \ 866 for i in doc/apps/*.pod; do \ 867 fn=`basename $$i .pod`; \ 868 if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \ 869 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ 870 (cd `$(PERL) util/dirname.pl $$i`; \ 871 sh -c "$$pod2man \ 872 --section=$$sec --center=OpenSSL \ 873 --release=$(VERSION) `basename $$i`") \ 874 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ 875 $(PERL) util/extract-names.pl < $$i | \ 876 (grep -v $$filecase "^$$fn\$$"; true) | \ 877 (grep -v "[ ]"; true) | \ 878 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 879 while read n; do \ 880 $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ 881 done); \ 882 done; \ 883 for i in doc/crypto/*.pod doc/ssl/*.pod; do \ 884 fn=`basename $$i .pod`; \ 885 if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \ 886 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ 887 (cd `$(PERL) util/dirname.pl $$i`; \ 888 sh -c "$$pod2man \ 889 --section=$$sec --center=OpenSSL \ 890 --release=$(VERSION) `basename $$i`") \ 891 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ 892 $(PERL) util/extract-names.pl < $$i | \ 893 (grep -v $$filecase "^$$fn\$$"; true) | \ 894 (grep -v "[ ]"; true) | \ 895 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 896 while read n; do \ 897 $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ 898 done); \ 899 done 900 901# DO NOT DELETE THIS LINE -- make depend depends on it. 902