Makefile.org revision 120631
1130812Smarcel## 2130812Smarcel## Makefile for OpenSSL 3130812Smarcel## 4130812Smarcel 5130812SmarcelVERSION= 6130812SmarcelMAJOR= 7130812SmarcelMINOR= 8130812SmarcelSHLIB_VERSION_NUMBER= 9130812SmarcelSHLIB_VERSION_HISTORY= 10130812SmarcelSHLIB_MAJOR= 11130812SmarcelSHLIB_MINOR= 12130812SmarcelSHLIB_EXT= 13130812SmarcelPLATFORM=dist 14130812SmarcelOPTIONS= 15130812SmarcelCONFIGURE_ARGS= 16130812SmarcelSHLIB_TARGET= 17130812Smarcel 18130812Smarcel# HERE indicates where this Makefile lives. This can be used to indicate 19130812Smarcel# where sub-Makefiles are expected to be. Currently has very limited usage, 20130812Smarcel# and should probably not be bothered with at all. 21130812SmarcelHERE=. 22130812Smarcel 23130812Smarcel# INSTALL_PREFIX is for package builders so that they can configure 24130812Smarcel# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/. 25130812Smarcel# Normally it is left empty. 26130812SmarcelINSTALL_PREFIX= 27130812SmarcelINSTALLTOP=/usr/local/ssl 28130812Smarcel 29130812Smarcel# Do not edit this manually. Use Configure --openssldir=DIR do change this! 30130812SmarcelOPENSSLDIR=/usr/local/ssl 31130812Smarcel 32130812Smarcel# NO_IDEA - Define to build without the IDEA algorithm 33130812Smarcel# NO_RC4 - Define to build without the RC4 algorithm 34130812Smarcel# NO_RC2 - Define to build without the RC2 algorithm 35130812Smarcel# THREADS - Define when building with threads, you will probably also need any 36130812Smarcel# system defines as well, i.e. _REENTERANT for Solaris 2.[34] 37130812Smarcel# 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. 104DES_ENC= asm/dx86-out.o asm/yx86-out.o 105#DES_ENC= des_enc.o fcrypt_b.o # C 106#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf 107#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris 108#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD 109#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi 110 111# Set BF_ENC to bf_enc.o if you want to use the C version 112#There are 4 x86 assember options. 113BF_ENC= asm/bx86-out.o 114#BF_ENC= bf_enc.o 115#BF_ENC= asm/bx86-elf.o # elf 116#BF_ENC= asm/bx86-sol.o # solaris 117#BF_ENC= asm/bx86-out.o # a.out, FreeBSD 118#BF_ENC= asm/bx86bsdi.o # bsdi 119 120# Set CAST_ENC to c_enc.o if you want to use the C version 121#There are 4 x86 assember options. 122CAST_ENC= asm/cx86-out.o 123#CAST_ENC= c_enc.o 124#CAST_ENC= asm/cx86-elf.o # elf 125#CAST_ENC= asm/cx86-sol.o # solaris 126#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD 127#CAST_ENC= asm/cx86bsdi.o # bsdi 128 129# Set RC4_ENC to rc4_enc.o if you want to use the C version 130#There are 4 x86 assember options. 131RC4_ENC= asm/rx86-out.o 132#RC4_ENC= rc4_enc.o 133#RC4_ENC= asm/rx86-elf.o # elf 134#RC4_ENC= asm/rx86-sol.o # solaris 135#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD 136#RC4_ENC= asm/rx86bsdi.o # bsdi 137 138# Set RC5_ENC to rc5_enc.o if you want to use the C version 139#There are 4 x86 assember options. 140RC5_ENC= asm/r586-out.o 141#RC5_ENC= rc5_enc.o 142#RC5_ENC= asm/r586-elf.o # elf 143#RC5_ENC= asm/r586-sol.o # solaris 144#RC5_ENC= asm/r586-out.o # a.out, FreeBSD 145#RC5_ENC= asm/r586bsdi.o # bsdi 146 147# Also need MD5_ASM defined 148MD5_ASM_OBJ= asm/mx86-out.o 149#MD5_ASM_OBJ= asm/mx86-elf.o # elf 150#MD5_ASM_OBJ= asm/mx86-sol.o # solaris 151#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD 152#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi 153 154# Also need SHA1_ASM defined 155SHA1_ASM_OBJ= asm/sx86-out.o 156#SHA1_ASM_OBJ= asm/sx86-elf.o # elf 157#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris 158#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD 159#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi 160 161# Also need RMD160_ASM defined 162RMD160_ASM_OBJ= asm/rm86-out.o 163#RMD160_ASM_OBJ= asm/rm86-elf.o # elf 164#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris 165#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD 166#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi 167 168# KRB5 stuff 169KRB5_INCLUDES= 170LIBKRB5= 171 172# When we're prepared to use shared libraries in the programs we link here 173# we might set SHLIB_MARK to '$(SHARED_LIBS)'. 174SHLIB_MARK= 175 176DIRS= crypto ssl $(SHLIB_MARK) apps test tools 177SHLIBDIRS= crypto ssl 178 179# dirs in crypto to build 180SDIRS= \ 181 md2 md4 md5 sha mdc2 hmac ripemd \ 182 des rc2 rc4 rc5 idea bf cast \ 183 bn ec rsa dsa dh dso engine aes \ 184 buffer bio stack lhash rand err objects \ 185 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 186 187# tests to perform. "alltests" is a special word indicating that all tests 188# should be performed. 189TESTS = alltests 190 191MAKEFILE= Makefile.ssl 192MAKE= make -f Makefile.ssl 193 194MANDIR=$(OPENSSLDIR)/man 195MAN1=1 196MAN3=3 197MANSUFFIX= 198SHELL=/bin/sh 199 200TOP= . 201ONEDIRS=out tmp 202EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS 203WDIRS= windows 204LIBS= libcrypto.a libssl.a 205SHARED_CRYPTO=libcrypto$(SHLIB_EXT) 206SHARED_SSL=libssl$(SHLIB_EXT) 207SHARED_LIBS= 208SHARED_LIBS_LINK_EXTS= 209SHARED_LDFLAGS= 210 211GENERAL= Makefile 212BASENAME= openssl 213NAME= $(BASENAME)-$(VERSION) 214TARFILE= $(NAME).tar 215WTARFILE= $(NAME)-win.tar 216EXHEADER= e_os2.h 217HEADER= e_os.h 218 219# When we're prepared to use shared libraries in the programs we link here 220# we might remove 'clean-shared' from the targets to perform at this stage 221 222all: Makefile.ssl sub_all openssl.pc 223 224sub_all: 225 @for i in $(DIRS); \ 226 do \ 227 if [ -d "$$i" ]; then \ 228 (cd $$i && echo "making all in $$i..." && \ 229 $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' 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; \ 230 else \ 231 $(MAKE) $$i; \ 232 fi; \ 233 done; 234 235libcrypto$(SHLIB_EXT): libcrypto.a 236 @if [ "$(SHLIB_TARGET)" != "" ]; then \ 237 $(MAKE) SHLIBDIRS=crypto build-shared; \ 238 else \ 239 echo "There's no support for shared libraries on this platform" >&2; \ 240 fi 241 242libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a 243 @if [ "$(SHLIB_TARGET)" != "" ]; then \ 244 $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ 245 else \ 246 echo "There's no support for shared libraries on this platform" >&2; \ 247 fi 248 249clean-shared: 250 @for i in $(SHLIBDIRS); do \ 251 if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ 252 tmp="$(SHARED_LIBS_LINK_EXTS)"; \ 253 for j in $${tmp:-x}; do \ 254 ( set -x; rm -f lib$$i$$j ); \ 255 done; \ 256 fi; \ 257 ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \ 258 if [ "$(PLATFORM)" = "Cygwin" ]; then \ 259 ( set -x; rm -f cyg$$i-$(SHLIB_VERSION_NUMBER)$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \ 260 fi; \ 261 done 262 263link-shared: 264 @if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ 265 tmp="$(SHARED_LIBS_LINK_EXTS)"; \ 266 for i in $(SHLIBDIRS); do \ 267 prev=lib$$i$(SHLIB_EXT); \ 268 for j in $${tmp:-x}; do \ 269 ( set -x; \ 270 rm -f lib$$i$$j; ln -s $$prev lib$$i$$j ); \ 271 prev=lib$$i$$j; \ 272 done; \ 273 done; \ 274 fi 275 276build-shared: clean-shared do_$(SHLIB_TARGET) link-shared 277 278do_bsd-gcc-shared: do_gnu-shared 279do_linux-shared: do_gnu-shared 280do_gnu-shared: 281 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 282 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 283 libs="$(LIBKRB5) $$libs"; \ 284 fi; \ 285 ( set -x; ${CC} ${SHARED_LDFLAGS} \ 286 -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 287 -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 288 -Wl,-Bsymbolic \ 289 -Wl,--whole-archive lib$$i.a \ 290 -Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \ 291 libs="-l$$i $$libs"; \ 292 done 293 294DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null 295 296# For Darwin AKA Mac OS/X (dyld) 297do_darwin-shared: 298 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 299 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 300 libs="$(LIBKRB5) $$libs"; \ 301 fi; \ 302 ( set -x; ${CC} --verbose -dynamiclib -o lib$$i${SHLIB_EXT} \ 303 lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \ 304 -compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \ 305 -install_name ${INSTALLTOP}/lib/lib$$i${SHLIB_EXT} ) || exit 1; \ 306 libs="-l`basename $$i${SHLIB_EXT} .dylib` $$libs"; \ 307 echo "" ; \ 308 done 309 310do_cygwin-shared: 311 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 312 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 313 libs="$(LIBKRB5) $$libs"; \ 314 fi; \ 315 ( set -x; ${CC} -shared -o cyg$$i-$(SHLIB_VERSION_NUMBER).dll \ 316 -Wl,-Bsymbolic \ 317 -Wl,--whole-archive lib$$i.a \ 318 -Wl,--out-implib,lib$$i.dll.a \ 319 -Wl,--no-whole-archive $$libs ) || exit 1; \ 320 libs="-l$$i $$libs"; \ 321 done 322 323# This assumes that GNU utilities are *not* used 324do_alpha-osf1-shared: 325 if ${DETECT_GNU_LD}; then \ 326 $(MAKE) do_gnu-shared; \ 327 else \ 328 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 329 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 330 libs="$(LIBKRB5) $$libs"; \ 331 fi; \ 332 ( set -x; ${CC} ${SHARED_LDFLAGS} \ 333 -shared -o lib$$i.so \ 334 -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 335 -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ 336 libs="-l$$i $$libs"; \ 337 done; \ 338 fi 339 340# This assumes that GNU utilities are *not* used 341# The difference between alpha-osf1-shared and tru64-shared is the `-msym' 342# option passed to the linker. 343do_tru64-shared: 344 if ${DETECT_GNU_LD}; then \ 345 $(MAKE) do_gnu-shared; \ 346 else \ 347 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 348 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 349 libs="$(LIBKRB5) $$libs"; \ 350 fi; \ 351 ( set -x; ${CC} ${SHARED_LDFLAGS} \ 352 -shared -msym -o lib$$i.so \ 353 -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 354 -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ 355 libs="-l$$i $$libs"; \ 356 done; \ 357 fi 358 359# This assumes that GNU utilities are *not* used 360# The difference between tru64-shared and tru64-shared-rpath is the 361# -rpath ${INSTALLTOP}/lib passed to the linker. 362do_tru64-shared-rpath: 363 if ${DETECT_GNU_LD}; then \ 364 $(MAKE) do_gnu-shared; \ 365 else \ 366 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 367 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 368 libs="$(LIBKRB5) $$libs"; \ 369 fi; \ 370 ( set -x; ${CC} ${SHARED_LDFLAGS} \ 371 -shared -msym -o lib$$i.so \ 372 -rpath ${INSTALLTOP}/lib \ 373 -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ 374 -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ 375 libs="-l$$i $$libs"; \ 376 done; \ 377 fi 378 379 380# This assumes that GNU utilities are *not* used 381do_solaris-shared: 382 if ${DETECT_GNU_LD}; then \ 383 $(MAKE) do_gnu-shared; \ 384 else \ 385 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 386 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 387 libs="$(LIBKRB5) $$libs"; \ 388 fi; \ 389 ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 390 MINUSZ='-z '; \ 391 (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ 392 set -x; ${CC} ${SHARED_LDFLAGS} -G -dy -z text \ 393 -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 394 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 395 $${MINUSZ}allextract lib$$i.a $${MINUSZ}defaultextract \ 396 $$libs ${EX_LIBS} -lc ) || exit 1; \ 397 libs="-l$$i $$libs"; \ 398 done; \ 399 fi 400 401# OpenServer 5 native compilers used 402do_svr3-shared: 403 if ${DETECT_GNU_LD}; then \ 404 $(MAKE) do_gnu-shared; \ 405 else \ 406 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 407 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 408 libs="$(LIBKRB5) $$libs"; \ 409 fi; \ 410 ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 411 find . -name "*.o" -print > allobjs ; \ 412 OBJS= ; export OBJS ; \ 413 for obj in `ar t lib$$i.a` ; do \ 414 OBJS="$${OBJS} `grep /$$obj allobjs`" ; \ 415 done ; \ 416 set -x; ${CC} ${SHARED_LDFLAGS} \ 417 -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 418 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 419 $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \ 420 libs="-l$$i $$libs"; \ 421 done; \ 422 fi 423 424# UnixWare 7 and OpenUNIX 8 native compilers used 425do_svr5-shared: 426 if ${DETECT_GNU_LD}; then \ 427 $(MAKE) do_gnu-shared; \ 428 else \ 429 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 430 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 431 libs="$(LIBKRB5) $$libs"; \ 432 fi; \ 433 ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \ 434 SHARE_FLAG='-G'; \ 435 (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \ 436 find . -name "*.o" -print > allobjs ; \ 437 OBJS= ; export OBJS ; \ 438 for obj in `ar t lib$$i.a` ; do \ 439 OBJS="$${OBJS} `grep /$$obj allobjs`" ; \ 440 done ; \ 441 set -x; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \ 442 ${CC} ${SHARED_LDFLAGS} \ 443 $${SHARE_FLAG} -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 444 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 445 $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \ 446 libs="-l$$i $$libs"; \ 447 done; \ 448 fi 449 450# This assumes that GNU utilities are *not* used 451do_irix-shared: 452 if ${DETECT_GNU_LD}; then \ 453 $(MAKE) do_gnu-shared; \ 454 else \ 455 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 456 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 457 libs="$(LIBKRB5) $$libs"; \ 458 fi; \ 459 ( set -x; ${CC} ${SHARED_LDFLAGS} \ 460 -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 461 -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 462 -all lib$$i.a $$libs ${EX_LIBS} -lc) || exit 1; \ 463 libs="-l$$i $$libs"; \ 464 done; \ 465 fi 466 467# This assumes that GNU utilities are *not* used 468# HP-UX includes the full pathname of libs we depend on, so we would get 469# ./libcrypto (with ./ as path information) compiled into libssl, hence 470# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto 471# anyway. 472# The object modules are loaded from lib$i.a using the undocumented -Fl 473# option. 474# 475# WARNING: Until DSO is fixed to support a search path, we support SHLIB_PATH 476# by temporarily specifying "+s"! 477# 478do_hpux-shared: 479 for i in ${SHLIBDIRS}; do \ 480 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 481 libs="$(LIBKRB5) $$libs"; \ 482 fi; \ 483 ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ 484 +vnocompatwarnings \ 485 -b -z +s \ 486 -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 487 +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 488 -Fl lib$$i.a -ldld -lc ) || exit 1; \ 489 chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 490 done 491 492# This assumes that GNU utilities are *not* used 493# HP-UX includes the full pathname of libs we depend on, so we would get 494# ./libcrypto (with ./ as path information) compiled into libssl, hence 495# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto 496# anyway. 497# 498# HP-UX in 64bit mode has "+s" enabled by default; it will search for 499# shared libraries along LD_LIBRARY_PATH _and_ SHLIB_PATH. 500# 501do_hpux64-shared: 502 for i in ${SHLIBDIRS}; do \ 503 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 504 libs="$(LIBKRB5) $$libs"; \ 505 fi; \ 506 ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ 507 -b -z \ 508 -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 509 +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 510 +forceload lib$$i.a -ldl -lc ) || exit 1; \ 511 chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 512 done 513 514# The following method is said to work on all platforms. Tests will 515# determine if that's how it's gong to be used. 516# This assumes that for all but GNU systems, GNU utilities are *not* used. 517# ALLSYMSFLAGS would be: 518# GNU systems: --whole-archive 519# Tru64 Unix: -all 520# Solaris: -z allextract 521# Irix: -all 522# HP/UX-32bit: -Fl 523# HP/UX-64bit: +forceload 524# AIX: -bnogc 525# SHAREDFLAGS would be: 526# GNU systems: -shared -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 527# Tru64 Unix: -shared \ 528# -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" 529# Solaris: -G -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 530# Irix: -shared -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 531# HP/UX-32bit: +vnocompatwarnings -b -z +s \ 532# +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} 533# HP/UX-64bit: -b -z +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} 534# AIX: -G -bE:lib$$i.exp -bM:SRE 535# SHAREDCMD would be: 536# GNU systems: $(CC) 537# Tru64 Unix: $(CC) 538# Solaris: $(CC) 539# Irix: $(CC) 540# HP/UX-32bit: /usr/ccs/bin/ld 541# HP/UX-64bit: /usr/ccs/bin/ld 542# AIX: $(CC) 543ALLSYMSFLAG=-bnogc 544SHAREDFLAGS=${SHARED_LDFLAGS} -G -bE:lib$$i.exp -bM:SRE 545SHAREDCMD=$(CC) 546do_aix-shared: 547 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 548 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 549 libs="$(LIBKRB5) $$libs"; \ 550 fi; \ 551 ( set -x; \ 552 ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \ 553 ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \ 554 $(SHAREDCMD) $(SHAREDFLAGS) \ 555 -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} lib$$i.o \ 556 $$libs ${EX_LIBS} ) ) \ 557 || exit 1; \ 558 libs="-l$$i $$libs"; \ 559 done 560 561do_reliantunix-shared: 562 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 563 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 564 libs="$(LIBKRB5) $$libs"; \ 565 fi; \ 566 tmpdir=/tmp/openssl.$$$$ ; rm -rf $$tmpdir ; \ 567 ( set -x; \ 568 ( Opwd=`pwd` ; mkdir $$tmpdir || exit 1; \ 569 cd $$tmpdir || exit 1 ; ar x $$Opwd/lib$$i.a ; \ 570 ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} *.o \ 571 ) || exit 1; \ 572 cp $$tmpdir/lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} . ; \ 573 ) || exit 1; \ 574 rm -rf $$tmpdir ; \ 575 libs="-l$$i $$libs"; \ 576 done 577 578openssl.pc: Makefile.ssl 579 @ ( echo 'prefix=$(INSTALLTOP)'; \ 580 echo 'exec_prefix=$${prefix}'; \ 581 echo 'libdir=$${exec_prefix}/lib'; \ 582 echo 'includedir=$${prefix}/include'; \ 583 echo ''; \ 584 echo 'Name: OpenSSL'; \ 585 echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \ 586 echo 'Version: '$(VERSION); \ 587 echo 'Requires: '; \ 588 echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \ 589 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc 590 591Makefile.ssl: Makefile.org 592 @echo "Makefile.ssl is older than Makefile.org." 593 @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please." 594 @false 595 596libclean: 597 rm -f *.map *.so *.so.* engines/*.so *.a */lib */*/lib 598 599clean: libclean 600 rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c 601 @for i in $(DIRS) ;\ 602 do \ 603 if [ -d "$$i" ]; then \ 604 (cd $$i && echo "making clean in $$i..." && \ 605 $(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \ 606 rm -f $(LIBS); \ 607 fi; \ 608 done; 609 rm -f openssl.pc 610 rm -f speed.* .pure 611 rm -f $(TARFILE) 612 @for i in $(ONEDIRS) ;\ 613 do \ 614 rm -fr $$i/*; \ 615 done 616 617makefile.one: files 618 $(PERL) util/mk1mf.pl >makefile.one; \ 619 sh util/do_ms.sh 620 621files: 622 $(PERL) $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO 623 @for i in $(DIRS) ;\ 624 do \ 625 if [ -d "$$i" ]; then \ 626 (cd $$i && echo "making 'files' in $$i..." && \ 627 $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \ 628 fi; \ 629 done; 630 631links: 632 @$(TOP)/util/point.sh Makefile.ssl Makefile 633 @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl 634 @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER) 635 @for i in $(DIRS); do \ 636 if [ -d "$$i" ]; then \ 637 (cd $$i && echo "making links in $$i..." && \ 638 $(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; \ 639 fi; \ 640 done; 641 642gentests: 643 @(cd test && echo "generating dummy tests (if needed)..." && \ 644 $(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 ); 645 646dclean: 647 rm -f *.bak 648 @for i in $(DIRS) ;\ 649 do \ 650 if [ -d "$$i" ]; then \ 651 (cd $$i && echo "making dclean in $$i..." && \ 652 $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \ 653 fi; \ 654 done; 655 656rehash: rehash.time 657rehash.time: certs 658 @(OPENSSL="`pwd`/apps/openssl"; OPENSSL_DEBUG_MEMORY=on; \ 659 export OPENSSL OPENSSL_DEBUG_MEMORY; \ 660 LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \ 661 DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \ 662 SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \ 663 LIBPATH="`pwd`:$$LIBPATH"; \ 664 if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \ 665 export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \ 666 $(PERL) tools/c_rehash certs) 667 touch rehash.time 668 669test: tests 670 671tests: rehash 672 @(cd test && echo "testing..." && \ 673 $(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 ); 674 @LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \ 675 DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \ 676 SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \ 677 LIBPATH="`pwd`:$$LIBPATH"; \ 678 if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \ 679 export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \ 680 apps/openssl version -a 681 682report: 683 @$(PERL) util/selftest.pl 684 685depend: 686 @for i in $(DIRS) ;\ 687 do \ 688 if [ -d "$$i" ]; then \ 689 (cd $$i && echo "making dependencies $$i..." && \ 690 $(MAKE) SDIRS='${SDIRS}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ) || exit 1; \ 691 fi; \ 692 done; 693 694lint: 695 @for i in $(DIRS) ;\ 696 do \ 697 if [ -d "$$i" ]; then \ 698 (cd $$i && echo "making lint $$i..." && \ 699 $(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \ 700 fi; \ 701 done; 702 703tags: 704 @for i in $(DIRS) ;\ 705 do \ 706 if [ -d "$$i" ]; then \ 707 (cd $$i && echo "making tags $$i..." && \ 708 $(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \ 709 fi; \ 710 done; 711 712errors: 713 $(PERL) util/mkerr.pl -recurse -write 714 (cd crypto/engine; $(MAKE) PERL=$(PERL) errors) 715 716stacks: 717 $(PERL) util/mkstack.pl -write 718 719util/libeay.num:: 720 $(PERL) util/mkdef.pl crypto update 721 722util/ssleay.num:: 723 $(PERL) util/mkdef.pl ssl update 724 725crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h 726 $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h 727crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num 728 $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h 729 730TABLE: Configure 731 (echo 'Output of `Configure TABLE'"':"; \ 732 $(PERL) Configure TABLE) > TABLE 733 734update: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h TABLE 735 736# Build distribution tar-file. As the list of files returned by "find" is 737# pretty long, on several platforms a "too many arguments" error or similar 738# would occur. Therefore the list of files is temporarily stored into a file 739# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal 740# tar does not support the --files-from option. 741tar: 742 find . -type d -print | xargs chmod 755 743 find . -type f -print | xargs chmod a+r 744 find . -type f -perm -0100 -print | xargs chmod a+x 745 find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \ 746 $(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \ 747 tardy --user_number=0 --user_name=openssl \ 748 --group_number=0 --group_name=openssl \ 749 --prefix=openssl-$(VERSION) - |\ 750 gzip --best >../$(TARFILE).gz; \ 751 rm -f ../$(TARFILE).list; \ 752 ls -l ../$(TARFILE).gz 753 754tar-snap: 755 @$(TAR) $(TARFLAGS) -cvf - \ 756 `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` |\ 757 tardy --user_number=0 --user_name=openssl \ 758 --group_number=0 --group_name=openssl \ 759 --prefix=openssl-$(VERSION) - > ../$(TARFILE);\ 760 ls -l ../$(TARFILE) 761 762dist: 763 $(PERL) Configure dist 764 @$(MAKE) dist_pem_h 765 @$(MAKE) SDIRS='${SDIRS}' clean 766 @$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar 767 768dist_pem_h: 769 (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean) 770 771install: all install_docs 772 @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ 773 $(INSTALL_PREFIX)$(INSTALLTOP)/lib \ 774 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \ 775 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ 776 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ 777 $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ 778 $(INSTALL_PREFIX)$(OPENSSLDIR)/private \ 779 $(INSTALL_PREFIX)$(OPENSSLDIR)/lib 780 @for i in $(EXHEADER) ;\ 781 do \ 782 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ 783 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ 784 done; 785 @for i in $(DIRS) ;\ 786 do \ 787 if [ -d "$$i" ]; then \ 788 (cd $$i; echo "installing $$i..."; \ 789 $(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 ); \ 790 fi; \ 791 done 792 @for i in $(LIBS) ;\ 793 do \ 794 if [ -f "$$i" ]; then \ 795 ( echo installing $$i; \ 796 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 797 $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 798 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 799 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ 800 fi; \ 801 done; 802 @if [ -n "$(SHARED_LIBS)" ]; then \ 803 tmp="$(SHARED_LIBS)"; \ 804 for i in $${tmp:-x}; \ 805 do \ 806 if [ -f "$$i" -o -f "$$i.a" ]; then \ 807 ( echo installing $$i; \ 808 if [ "$(PLATFORM)" != "Cygwin" ]; then \ 809 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 810 chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 811 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \ 812 else \ 813 c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \ 814 cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 815 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 816 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \ 817 cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ 818 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ 819 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \ 820 fi ); \ 821 fi; \ 822 done; \ 823 ( here="`pwd`"; \ 824 cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ 825 set $(MAKE); \ 826 $$1 -f $$here/Makefile link-shared ); \ 827 if [ "$(INSTALLTOP)" != "/usr" ]; then \ 828 echo 'OpenSSL shared libraries have been installed in:'; \ 829 echo ' $(INSTALLTOP)'; \ 830 echo ''; \ 831 sed -e '1,/^$$/d' doc/openssl-shared.txt; \ 832 fi; \ 833 fi 834 cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig 835 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig 836 837install_docs: 838 @$(PERL) $(TOP)/util/mkdir-p.pl \ 839 $(INSTALL_PREFIX)$(MANDIR)/man1 \ 840 $(INSTALL_PREFIX)$(MANDIR)/man3 \ 841 $(INSTALL_PREFIX)$(MANDIR)/man5 \ 842 $(INSTALL_PREFIX)$(MANDIR)/man7 843 @pod2man="`cd util; ./pod2mantest $(PERL)`"; \ 844 here="`pwd`"; \ 845 filecase=; \ 846 if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" ]; then \ 847 filecase=-i; \ 848 fi; \ 849 for i in doc/apps/*.pod; do \ 850 fn=`basename $$i .pod`; \ 851 if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \ 852 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ 853 (cd `$(PERL) util/dirname.pl $$i`; \ 854 sh -c "$$pod2man \ 855 --section=$$sec --center=OpenSSL \ 856 --release=$(VERSION) `basename $$i`") \ 857 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ 858 $(PERL) util/extract-names.pl < $$i | \ 859 grep -v $$filecase "^$$fn\$$" | \ 860 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 861 while read n; do \ 862 $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ 863 done); \ 864 done; \ 865 for i in doc/crypto/*.pod doc/ssl/*.pod; do \ 866 fn=`basename $$i .pod`; \ 867 if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \ 868 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ 869 (cd `$(PERL) util/dirname.pl $$i`; \ 870 sh -c "$$pod2man \ 871 --section=$$sec --center=OpenSSL \ 872 --release=$(VERSION) `basename $$i`") \ 873 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ 874 $(PERL) util/extract-names.pl < $$i | \ 875 grep -v $$filecase "^$$fn\$$" | \ 876 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 877 while read n; do \ 878 $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ 879 done); \ 880 done 881 882# DO NOT DELETE THIS LINE -- make depend depends on it. 883