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