Makefile.org revision 296465
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= cc 61CFLAG= -O 62DEPFLAG= 63PEX_LIBS= 64EX_LIBS= 65EXE_EXT= 66ARFLAGS= 67AR=ar $(ARFLAGS) r 68ARD=ar $(ARFLAGS) d 69RANLIB= ranlib 70PERL= perl 71TAR= tar 72TARFLAGS= --no-recursion --record-size=10240 73MAKEDEPPROG=makedepend 74LIBDIR=lib 75 76# We let the C compiler driver to take care of .s files. This is done in 77# order to be excused from maintaining a separate set of architecture 78# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC 79# gcc, then the driver will automatically translate it to -xarch=v8plus 80# and pass it down to assembler. 81AS=$(CC) -c 82ASFLAG=$(CFLAG) 83 84# For x86 assembler: Set PROCESSOR to 386 if you want to support 85# the 80386. 86PROCESSOR= 87 88# CPUID module collects small commonly used assembler snippets 89CPUID_OBJ= 90BN_ASM= bn_asm.o 91DES_ENC= des_enc.o fcrypt_b.o 92AES_ASM_OBJ=aes_core.o aes_cbc.o 93BF_ENC= bf_enc.o 94CAST_ENC= c_enc.o 95RC4_ENC= rc4_enc.o 96RC5_ENC= rc5_enc.o 97MD5_ASM_OBJ= 98SHA1_ASM_OBJ= 99RMD160_ASM_OBJ= 100 101# KRB5 stuff 102KRB5_INCLUDES= 103LIBKRB5= 104 105# Zlib stuff 106ZLIB_INCLUDE= 107LIBZLIB= 108 109# This is the location of fipscanister.o and friends. 110# The FIPS module build will place it $(INSTALLTOP)/lib 111# but since $(INSTALLTOP) can only take the default value 112# when the module is built it will be in /usr/local/ssl/lib 113# $(INSTALLTOP) for this build make be different so hard 114# code the path. 115 116FIPSLIBDIR=/usr/local/ssl/$(LIBDIR)/ 117 118# This is set to "y" if fipscanister.o is compiled internally as 119# opposed to coming from an external validated location. 120 121FIPSCANISTERINTERNAL=n 122 123# The location of the library which contains fipscanister.o 124# normally it will be libcrypto unless fipsdso is set in which 125# case it will be libfips. If not compiling in FIPS mode at all 126# this is empty making it a useful test for a FIPS compile. 127 128FIPSCANLIB= 129 130# Shared library base address. Currently only used on Windows. 131# 132 133BASEADDR= 134 135DIRS= crypto fips ssl engines apps test tools 136SHLIBDIRS= crypto ssl fips 137 138# dirs in crypto to build 139SDIRS= \ 140 objects \ 141 md2 md4 md5 sha mdc2 hmac ripemd \ 142 des aes rc2 rc4 rc5 idea bf cast camellia seed \ 143 bn ec rsa dsa ecdsa dh ecdh dso engine \ 144 buffer bio stack lhash rand err \ 145 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \ 146 store cms pqueue jpake 147# keep in mind that the above list is adjusted by ./Configure 148# according to no-xxx arguments... 149 150# tests to perform. "alltests" is a special word indicating that all tests 151# should be performed. 152TESTS = alltests 153 154MAKEFILE= Makefile 155 156MANDIR=$(OPENSSLDIR)/man 157MAN1=1 158MAN3=3 159MANSUFFIX= 160SHELL=/bin/sh 161 162TOP= . 163ONEDIRS=out tmp 164EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS 165WDIRS= windows 166LIBS= libcrypto.a libssl.a 167SHARED_CRYPTO=libcrypto$(SHLIB_EXT) 168SHARED_SSL=libssl$(SHLIB_EXT) 169SHARED_FIPS= 170SHARED_LIBS= 171SHARED_LIBS_LINK_EXTS= 172SHARED_LDFLAGS= 173 174GENERAL= Makefile 175BASENAME= openssl 176NAME= $(BASENAME)-$(VERSION) 177TARFILE= $(NAME).tar 178WTARFILE= $(NAME)-win.tar 179EXHEADER= e_os2.h 180HEADER= e_os.h 181 182all: Makefile build_all openssl.pc libssl.pc libcrypto.pc 183 184# as we stick to -e, CLEARENV ensures that local variables in lower 185# Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn 186# shell, which [annoyingly enough] terminates unset with error if VAR 187# is not present:-( TOP= && unset TOP is tribute to HP-UX /bin/sh, 188# which terminates unset with error if no variable was present:-( 189CLEARENV= TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS} \ 190 $${INCLUDE+INCLUDE} $${INCLUDES+INCLUDES} \ 191 $${DIR+DIR} $${DIRS+DIRS} $${SRC+SRC} \ 192 $${LIBSRC+LIBSRC} $${LIBOBJ+LIBOBJ} $${ALL+ALL} \ 193 $${EXHEADER+EXHEADER} $${HEADER+HEADER} \ 194 $${GENERAL+GENERAL} $${CFLAGS+CFLAGS} \ 195 $${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS} \ 196 $${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} \ 197 $${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS} \ 198 $${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS} 199 200BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \ 201 CC='${CC}' CFLAG='${CFLAG}' \ 202 AS='${CC}' ASFLAG='${CFLAG} -c' \ 203 AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}' \ 204 SDIRS='${SDIRS}' LIBRPATH='${INSTALLTOP}/$(LIBDIR)' \ 205 INSTALL_PREFIX='${INSTALL_PREFIX}' \ 206 INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' \ 207 LIBDIR='${LIBDIR}' \ 208 MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD ${MAKEDEPPROG}' \ 209 DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}' \ 210 MAKEDEPPROG='${MAKEDEPPROG}' \ 211 SHARED_LDFLAGS='${SHARED_LDFLAGS}' \ 212 KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' \ 213 EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' \ 214 SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' \ 215 PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' \ 216 CPUID_OBJ='${CPUID_OBJ}' \ 217 BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' \ 218 AES_ASM_OBJ='${AES_ASM_OBJ}' \ 219 BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' \ 220 RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' \ 221 SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' \ 222 MD5_ASM_OBJ='${MD5_ASM_OBJ}' \ 223 RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' \ 224 FIPSLIBDIR='${FIPSLIBDIR}' \ 225 FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \ 226 FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' \ 227 FIPS_EX_OBJ='${FIPS_EX_OBJ}' \ 228 THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES= 229# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors, 230# which in turn eliminates ambiguities in variable treatment with -e. 231 232# BUILD_CMD is a generic macro to build a given target in a given 233# subdirectory. The target must be given through the shell variable 234# `target' and the subdirectory to build in must be given through `dir'. 235# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or 236# BUILD_ONE_CMD instead. 237# 238# BUILD_ONE_CMD is a macro to build a given target in a given 239# subdirectory if that subdirectory is part of $(DIRS). It requires 240# exactly the same shell variables as BUILD_CMD. 241# 242# RECURSIVE_BUILD_CMD is a macro to build a given target in all 243# subdirectories defined in $(DIRS). It requires that the target 244# is given through the shell variable `target'. 245BUILD_CMD= if [ -d "$$dir" ]; then \ 246 ( [ $$target != all -a -z "$(FIPSCANLIB)" ] && FIPSCANLIB=/dev/null; \ 247 cd $$dir && echo "making $$target in $$dir..." && \ 248 $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \ 249 ) || exit 1; \ 250 fi 251RECURSIVE_BUILD_CMD=for dir in $(DIRS); do $(BUILD_CMD); done 252BUILD_ONE_CMD=\ 253 if echo " $(DIRS) " | grep " $$dir " >/dev/null 2>/dev/null; then \ 254 $(BUILD_CMD); \ 255 fi 256 257reflect: 258 @[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV) 259 260FIPS_EX_OBJ= ../crypto/aes/aes_cfb.o \ 261 ../crypto/aes/aes_ecb.o \ 262 ../crypto/aes/aes_ofb.o \ 263 ../crypto/bn/bn_add.o \ 264 ../crypto/bn/bn_blind.o \ 265 ../crypto/bn/bn_ctx.o \ 266 ../crypto/bn/bn_div.o \ 267 ../crypto/bn/bn_exp2.o \ 268 ../crypto/bn/bn_exp.o \ 269 ../crypto/bn/bn_gcd.o \ 270 ../crypto/bn/bn_lib.o \ 271 ../crypto/bn/bn_mod.o \ 272 ../crypto/bn/bn_mont.o \ 273 ../crypto/bn/bn_mul.o \ 274 ../crypto/bn/bn_prime.o \ 275 ../crypto/bn/bn_rand.o \ 276 ../crypto/bn/bn_recp.o \ 277 ../crypto/bn/bn_shift.o \ 278 ../crypto/bn/bn_sqr.o \ 279 ../crypto/bn/bn_word.o \ 280 ../crypto/bn/bn_x931p.o \ 281 ../crypto/buffer/buf_str.o \ 282 ../crypto/cryptlib.o \ 283 ../crypto/des/cfb64ede.o \ 284 ../crypto/des/cfb64enc.o \ 285 ../crypto/des/cfb_enc.o \ 286 ../crypto/des/ecb3_enc.o \ 287 ../crypto/des/ecb_enc.o \ 288 ../crypto/des/ofb64ede.o \ 289 ../crypto/des/ofb64enc.o \ 290 ../crypto/des/fcrypt.o \ 291 ../crypto/des/set_key.o \ 292 ../crypto/dsa/dsa_utl.o \ 293 ../crypto/dsa/dsa_sign.o \ 294 ../crypto/dsa/dsa_vrf.o \ 295 ../crypto/err/err.o \ 296 ../crypto/evp/digest.o \ 297 ../crypto/evp/enc_min.o \ 298 ../crypto/evp/e_aes.o \ 299 ../crypto/evp/e_des3.o \ 300 ../crypto/evp/p_sign.o \ 301 ../crypto/evp/p_verify.o \ 302 ../crypto/mem_clr.o \ 303 ../crypto/mem.o \ 304 ../crypto/rand/md_rand.o \ 305 ../crypto/rand/rand_egd.o \ 306 ../crypto/rand/randfile.o \ 307 ../crypto/rand/rand_lib.o \ 308 ../crypto/rand/rand_os2.o \ 309 ../crypto/rand/rand_unix.o \ 310 ../crypto/rand/rand_win.o \ 311 ../crypto/rsa/rsa_lib.o \ 312 ../crypto/rsa/rsa_none.o \ 313 ../crypto/rsa/rsa_oaep.o \ 314 ../crypto/rsa/rsa_pk1.o \ 315 ../crypto/rsa/rsa_pss.o \ 316 ../crypto/rsa/rsa_ssl.o \ 317 ../crypto/rsa/rsa_x931.o \ 318 ../crypto/sha/sha1dgst.o \ 319 ../crypto/sha/sha256.o \ 320 ../crypto/sha/sha512.o \ 321 ../crypto/uid.o 322 323sub_all: build_all 324build_all: build_libs build_apps build_tests build_tools 325 326build_libs: build_crypto build_fips build_ssl build_shared build_engines 327 328build_crypto: 329 if [ -n "$(FIPSCANLIB)" ]; then \ 330 EXCL_OBJ='$(AES_ASM_OBJ) $(BN_ASM) $(DES_ENC) $(CPUID_OBJ) $(SHA1_ASM_OBJ) $(FIPS_EX_OBJ)' ; export EXCL_OBJ ; \ 331 ARX='$(PERL) $${TOP}/util/arx.pl $(AR)' ; \ 332 else \ 333 ARX='${AR}' ; \ 334 fi ; export ARX ; \ 335 dir=crypto; target=all; $(BUILD_ONE_CMD) 336build_fips: 337 @dir=fips; target=all; [ -z "$(FIPSCANLIB)" ] || $(BUILD_ONE_CMD) 338build_ssl: build_crypto 339 @dir=ssl; target=all; $(BUILD_ONE_CMD) 340build_engines: build_crypto 341 @dir=engines; target=all; $(BUILD_ONE_CMD) 342build_apps: build_libs 343 @dir=apps; target=all; $(BUILD_ONE_CMD) 344build_tests: build_libs 345 @dir=test; target=all; $(BUILD_ONE_CMD) 346build_tools: build_libs 347 @dir=tools; target=all; $(BUILD_ONE_CMD) 348 349all_testapps: build_libs build_testapps 350build_testapps: 351 @dir=crypto; target=testapps; $(BUILD_ONE_CMD) 352 353build_shared: $(SHARED_LIBS) 354libcrypto$(SHLIB_EXT): libcrypto.a $(SHARED_FIPS) 355 @if [ "$(SHLIB_TARGET)" != "" ]; then \ 356 if [ "$(FIPSCANLIB)" = "libfips" ]; then \ 357 $(ARD) libcrypto.a fipscanister.o ; \ 358 $(MAKE) SHLIBDIRS='crypto' SHLIBDEPS='-lfips' build-shared; \ 359 $(AR) libcrypto.a fips/fipscanister.o ; \ 360 else \ 361 if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \ 362 FIPSLD_CC="$(CC)"; CC=fips/fipsld; \ 363 export CC FIPSLD_CC; \ 364 fi; \ 365 $(MAKE) -e SHLIBDIRS='crypto' build-shared; \ 366 fi \ 367 else \ 368 echo "There's no support for shared libraries on this platform" >&2; \ 369 exit 1; \ 370 fi 371 372libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a 373 @if [ "$(SHLIB_TARGET)" != "" ]; then \ 374 shlibdeps=-lcrypto; \ 375 [ "$(FIPSCANLIB)" = "libfips" ] && shlibdeps="$$shlibdeps -lfips"; \ 376 $(MAKE) SHLIBDIRS=ssl SHLIBDEPS="$$shlibdeps" build-shared; \ 377 else \ 378 echo "There's no support for shared libraries on this platform" >&2 ; \ 379 exit 1; \ 380 fi 381 382fips/fipscanister.o: build_fips 383libfips$(SHLIB_EXT): fips/fipscanister.o 384 @if [ "$(SHLIB_TARGET)" != "" ]; then \ 385 FIPSLD_CC="$(CC)"; CC=fips/fipsld; export CC FIPSLD_CC; \ 386 $(MAKE) -f Makefile.shared -e $(BUILDENV) \ 387 CC=$${CC} LIBNAME=fips THIS=$@ \ 388 LIBEXTRAS=fips/fipscanister.o \ 389 LIBDEPS="$(EX_LIBS)" \ 390 LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \ 391 link_o.$(SHLIB_TARGET) || { rm -f $@; exit 1; } \ 392 else \ 393 echo "There's no support for shared libraries on this platform" >&2; \ 394 exit 1; \ 395 fi 396 397libfips.a: 398 dir=fips; target=all; $(BUILD_ONE_CMD) 399 400clean-shared: 401 @set -e; for i in $(SHLIBDIRS); do \ 402 if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ 403 tmp="$(SHARED_LIBS_LINK_EXTS)"; \ 404 for j in $${tmp:-x}; do \ 405 ( set -x; rm -f lib$$i$$j ); \ 406 done; \ 407 fi; \ 408 ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \ 409 if [ "$(PLATFORM)" = "Cygwin" ]; then \ 410 ( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \ 411 fi; \ 412 done 413 414link-shared: 415 @ set -e; for i in ${SHLIBDIRS}; do \ 416 $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \ 417 LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \ 418 LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \ 419 symlink.$(SHLIB_TARGET); \ 420 libs="$$libs -l$$i"; \ 421 done 422 423build-shared: do_$(SHLIB_TARGET) link-shared 424 425do_$(SHLIB_TARGET): 426 @ set -e; libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ 427 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 428 libs="$(LIBKRB5) $$libs"; \ 429 fi; \ 430 $(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \ 431 LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \ 432 LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \ 433 LIBDEPS="$$libs $(EX_LIBS)" \ 434 link_a.$(SHLIB_TARGET); \ 435 libs="-l$$i $$libs"; \ 436 done 437 438libcrypto.pc: Makefile 439 @ ( echo 'prefix=$(INSTALLTOP)'; \ 440 echo 'exec_prefix=$${prefix}'; \ 441 echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \ 442 echo 'includedir=$${prefix}/include'; \ 443 echo ''; \ 444 echo 'Name: OpenSSL-libcrypto'; \ 445 echo 'Description: OpenSSL cryptography library'; \ 446 echo 'Version: '$(VERSION); \ 447 echo 'Requires: '; \ 448 echo 'Libs: -L$${libdir} -lcrypto $(EX_LIBS)'; \ 449 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc 450 451libssl.pc: Makefile 452 @ ( echo 'prefix=$(INSTALLTOP)'; \ 453 echo 'exec_prefix=$${prefix}'; \ 454 echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \ 455 echo 'includedir=$${prefix}/include'; \ 456 echo ''; \ 457 echo 'Name: OpenSSL'; \ 458 echo 'Description: Secure Sockets Layer and cryptography libraries'; \ 459 echo 'Version: '$(VERSION); \ 460 echo 'Requires: '; \ 461 echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \ 462 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc 463 464openssl.pc: Makefile 465 @ ( echo 'prefix=$(INSTALLTOP)'; \ 466 echo 'exec_prefix=$${prefix}'; \ 467 echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \ 468 echo 'includedir=$${prefix}/include'; \ 469 echo ''; \ 470 echo 'Name: OpenSSL'; \ 471 echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \ 472 echo 'Version: '$(VERSION); \ 473 echo 'Requires: '; \ 474 echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \ 475 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc 476 477Makefile: Makefile.org Configure config 478 @echo "Makefile is older than Makefile.org, Configure or config." 479 @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please." 480 @false 481 482libclean: 483 rm -f *.map *.so *.so.* *.dll engines/*.so engines/*.dll *.a engines/*.a */lib */*/lib 484 485clean: libclean 486 rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c 487 @set -e; target=clean; $(RECURSIVE_BUILD_CMD) 488 rm -f $(LIBS) 489 rm -f openssl.pc libssl.pc libcrypto.pc 490 rm -f speed.* .pure 491 rm -f $(TARFILE) 492 @set -e; for i in $(ONEDIRS) ;\ 493 do \ 494 rm -fr $$i/*; \ 495 done 496 497makefile.one: files 498 $(PERL) util/mk1mf.pl >makefile.one; \ 499 sh util/do_ms.sh 500 501files: 502 $(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO 503 @set -e; target=files; $(RECURSIVE_BUILD_CMD) 504 505links: 506 @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl 507 @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER) 508 @set -e; target=links; $(RECURSIVE_BUILD_CMD) 509 @if [ -z "$(FIPSCANLIB)" ]; then \ 510 set -e; target=links; dir=fips ; $(BUILD_CMD) ; \ 511 fi 512 513gentests: 514 @(cd test && echo "generating dummy tests (if needed)..." && \ 515 $(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate ); 516 517dclean: 518 rm -f *.bak 519 @set -e; target=dclean; $(RECURSIVE_BUILD_CMD) 520 521rehash: rehash.time 522rehash.time: certs apps 523 @if [ -z "$(CROSS_COMPILE)" ]; then \ 524 (OPENSSL="`pwd`/util/opensslwrap.sh"; \ 525 OPENSSL_DEBUG_MEMORY=on; \ 526 export OPENSSL OPENSSL_DEBUG_MEMORY; \ 527 $(PERL) tools/c_rehash certs) && \ 528 touch rehash.time; \ 529 fi 530 531test: tests 532 533tests: rehash 534 @(cd test && echo "testing..." && \ 535 $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests ); 536 util/opensslwrap.sh version -a 537 538report: 539 @$(PERL) util/selftest.pl 540 541depend: 542 @set -e; target=depend; $(RECURSIVE_BUILD_CMD) 543 544lint: 545 @set -e; target=lint; $(RECURSIVE_BUILD_CMD) 546 547tags: 548 rm -f TAGS 549 find . -name '[^.]*.[ch]' | xargs etags -a 550 551errors: 552 $(PERL) util/mkerr.pl -recurse -write 553 (cd engines; $(MAKE) PERL=$(PERL) errors) 554 $(PERL) util/ck_errf.pl */*.c */*/*.c 555 556stacks: 557 $(PERL) util/mkstack.pl -write 558 559util/libeay.num:: 560 $(PERL) util/mkdef.pl crypto update 561 562util/ssleay.num:: 563 $(PERL) util/mkdef.pl ssl update 564 565crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h 566 $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h 567crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num 568 $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h 569 570apps/openssl-vms.cnf: apps/openssl.cnf 571 $(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf 572 573crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl 574 $(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h 575 576 577TABLE: Configure 578 (echo 'Output of `Configure TABLE'"':"; \ 579 $(PERL) Configure TABLE) > TABLE 580 581update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf crypto/bn/bn_prime.h TABLE depend 582 583# Build distribution tar-file. As the list of files returned by "find" is 584# pretty long, on several platforms a "too many arguments" error or similar 585# would occur. Therefore the list of files is temporarily stored into a file 586# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal 587# tar does not support the --files-from option. 588TAR_COMMAND=$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list \ 589 --owner openssl:0 --group openssl:0 \ 590 --transform 's|^|openssl-$(VERSION)/|' \ 591 -cvf - 592 593../$(TARFILE).list: 594 find * \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \ 595 \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \ 596 \! -name '*test' \! -name '.#*' \! -name '*~' \ 597 | sort > ../$(TARFILE).list 598 599tar: ../$(TARFILE).list 600 find . -type d -print | xargs chmod 755 601 find . -type f -print | xargs chmod a+r 602 find . -type f -perm -0100 -print | xargs chmod a+x 603 $(TAR_COMMAND) | gzip --best >../$(TARFILE).gz 604 rm -f ../$(TARFILE).list 605 ls -l ../$(TARFILE).gz 606 607tar-snap: ../$(TARFILE).list 608 $(TAR_COMMAND) > ../$(TARFILE) 609 rm -f ../$(TARFILE).list 610 ls -l ../$(TARFILE) 611 612dist: 613 $(PERL) Configure dist 614 @$(MAKE) dist_pem_h 615 @$(MAKE) SDIRS='${SDIRS}' clean 616 @$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar 617 618dist_pem_h: 619 (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) 620 621install: all install_docs install_sw 622 623install_sw: 624 @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ 625 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ 626 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \ 627 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \ 628 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ 629 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ 630 $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ 631 $(INSTALL_PREFIX)$(OPENSSLDIR)/private 632 @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\ 633 do \ 634 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ 635 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ 636 done; 637 @set -e; target=install; $(RECURSIVE_BUILD_CMD) 638 @set -e; for i in $(LIBS) ;\ 639 do \ 640 if [ -f "$$i" ]; then \ 641 ( echo installing $$i; \ 642 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ 643 $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ 644 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ 645 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i ); \ 646 fi; \ 647 done; 648 @set -e; if [ -n "$(SHARED_LIBS)" ]; then \ 649 tmp="$(SHARED_LIBS)"; \ 650 for i in $${tmp:-x}; \ 651 do \ 652 if [ -f "$$i" -o -f "$$i.a" ]; then \ 653 ( echo installing $$i; \ 654 if [ "$(PLATFORM)" != "Cygwin" ]; then \ 655 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ 656 chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ 657 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \ 658 else \ 659 c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \ 660 cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 661 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ 662 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \ 663 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ 664 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ 665 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \ 666 fi ); \ 667 fi; \ 668 done; \ 669 ( here="`pwd`"; \ 670 cd $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR); \ 671 $(MAKE) -f $$here/Makefile HERE="$$here" link-shared ); \ 672 if [ "$(INSTALLTOP)" != "/usr" ]; then \ 673 echo 'OpenSSL shared libraries have been installed in:'; \ 674 echo ' $(INSTALLTOP)'; \ 675 echo ''; \ 676 sed -e '1,/^$$/d' doc/openssl-shared.txt; \ 677 fi; \ 678 fi 679 cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig 680 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc 681 cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig 682 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc 683 cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig 684 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc 685 686install_docs: 687 @$(PERL) $(TOP)/util/mkdir-p.pl \ 688 $(INSTALL_PREFIX)$(MANDIR)/man1 \ 689 $(INSTALL_PREFIX)$(MANDIR)/man3 \ 690 $(INSTALL_PREFIX)$(MANDIR)/man5 \ 691 $(INSTALL_PREFIX)$(MANDIR)/man7 692 @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \ 693 here="`pwd`"; \ 694 filecase=; \ 695 if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \ 696 filecase=-i; \ 697 fi; \ 698 set -e; for i in doc/apps/*.pod; do \ 699 fn=`basename $$i .pod`; \ 700 sec=`$(PERL) util/extract-section.pl 1 < $$i`; \ 701 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ 702 (cd `$(PERL) util/dirname.pl $$i`; \ 703 sh -c "$$pod2man \ 704 --section=$$sec --center=OpenSSL \ 705 --release=$(VERSION) `basename $$i`") \ 706 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ 707 $(PERL) util/extract-names.pl < $$i | \ 708 (grep -v $$filecase "^$$fn\$$"; true) | \ 709 (grep -v "[ ]"; true) | \ 710 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 711 while read n; do \ 712 $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ 713 done); \ 714 done; \ 715 set -e; for i in doc/crypto/*.pod doc/ssl/*.pod; do \ 716 fn=`basename $$i .pod`; \ 717 sec=`$(PERL) util/extract-section.pl 3 < $$i`; \ 718 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ 719 (cd `$(PERL) util/dirname.pl $$i`; \ 720 sh -c "$$pod2man \ 721 --section=$$sec --center=OpenSSL \ 722 --release=$(VERSION) `basename $$i`") \ 723 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ 724 $(PERL) util/extract-names.pl < $$i | \ 725 (grep -v $$filecase "^$$fn\$$"; true) | \ 726 (grep -v "[ ]"; true) | \ 727 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ 728 while read n; do \ 729 $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ 730 done); \ 731 done 732 733# DO NOT DELETE THIS LINE -- make depend depends on it. 734