363N/A#
363N/A# CDDL HEADER START
363N/A#
363N/A# The contents of this file are subject to the terms of the
363N/A# Common Development and Distribution License (the "License").
363N/A# You may not use this file except in compliance with the License.
363N/A#
363N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
363N/A# or http://www.opensolaris.org/os/licensing.
363N/A# See the License for the specific language governing permissions
363N/A# and limitations under the License.
363N/A#
363N/A# When distributing Covered Code, include this CDDL HEADER in each
363N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
363N/A# If applicable, add the following below this CDDL HEADER, with the
363N/A# fields enclosed by brackets "[]" replaced with your own identifying
363N/A# information: Portions Copyright [yyyy] [name of copyright owner]
363N/A#
363N/A# CDDL HEADER END
363N/A#
7161N/A
7161N/A#
5376N/A# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
363N/A#
364N/Ainclude ../../../make-rules/shared-macros.mk
363N/A
797N/ACOMPONENT_NAME = openssl
797N/A# When new version of OpenSSL comes in, you must update both COMPONENT_VERSION
797N/A# and IPS_COMPONENT_VERSION.
797N/A# When upgrading OpenSSL, please, DON'T FORGET TO TEST WANBOOT too.
797N/A# For more information about wanboot-openssl testing, please refer to
797N/A# ../README.
7161N/ACOMPONENT_VERSION = 1.0.2j
797N/A# Version for IPS. It is easier to do it manually than convert the letter to a
797N/A# number while taking into account that there might be no letter at all.
7161N/AIPS_COMPONENT_VERSION = 1.0.2.10
797N/ACOMPONENT_PROJECT_URL= http://www.openssl.org/
797N/ACOMPONENT_SRC = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
797N/ACOMPONENT_ARCHIVE = $(COMPONENT_SRC).tar.gz
827N/ACOMPONENT_ARCHIVE_HASH= \
7161N/A sha256:e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431
797N/ACOMPONENT_ARCHIVE_URL = $(COMPONENT_PROJECT_URL)source/$(COMPONENT_ARCHIVE)
3182N/ACOMPONENT_BUGDB= library/openssl
363N/A
7161N/ATPNO= 31866
7161N/A
7161N/A# Clone the patch files to the patches-all dir.
7161N/A# COPY_COMMON_FILES is there so that rsync is called as soon as
7161N/A# the Makefile is parsed.
7161N/APATCH_DIR=patches-all
7161N/ACLEAN_PATHS += $(PATCH_DIR)
7161N/ACOPY_COMMON_FILES:= $(shell rsync -ac ../common/patches/ patches/ $(PATCH_DIR))
3661N/A
3996N/Ainclude $(WS_MAKE_RULES)/prep.mk
3996N/Ainclude $(WS_MAKE_RULES)/configure.mk
3996N/Ainclude $(WS_MAKE_RULES)/ips.mk
3996N/Ainclude $(WS_MAKE_RULES)/lint-libraries.mk
363N/A
364N/APATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin:/usr/perl5/bin
7161N/Aifeq ($(strip $(PARFAIT_BUILD)),yes)
7161N/APATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:/usr/bin:/usr/perl5/bin
7161N/Aendif
364N/A
797N/A# Variant of OpenSSL for wanboot is built in build/sparcv9-wanboot.
797N/ABUILD_DIR_WANBOOT = $(BUILD_DIR)/$(MACH64)-wanboot
797N/A
363N/A# OpenSSL does not use autoconf but its own configure system.
363N/ACONFIGURE_SCRIPT = $(SOURCE_DIR)/Configure
363N/A
7161N/A# Ignore default CC_FOR_BUILD, CC, and CXX in CONFIGURE_ENV.
7161N/ACONFIGURE_ENV += CC_FOR_BUILD=
7161N/ACONFIGURE_ENV += CC=
7161N/ACONFIGURE_ENV += CXX=
7161N/A
777N/A# This is to force OpenSSL's Configure script to use gmake for 'make links'.
777N/A# Otherwise it fails with:
777N/A# mksh: Fatal error in reader: Unmatched `(' on line
777N/ACONFIGURE_ENV += MAKE="$(GMAKE)"
777N/A
363N/A# Used in the configure options below.
363N/APKCS11_LIB32 = /usr/lib/libpkcs11.so.1
363N/APKCS11_LIB64 = /usr/lib/64/libpkcs11.so.1
363N/AENGINESDIR_32 = /lib/openssl/engines
363N/AENGINESDIR_64 = /lib/openssl/engines/64
363N/A
797N/A# Configure options common to both regular OpenSSL and OpenSSL for wanboot.
363N/ACONFIGURE_OPTIONS = -DSOLARIS_OPENSSL -DNO_WINDOWS_BRAINDEATH
363N/ACONFIGURE_OPTIONS += --openssldir=/etc/openssl
363N/ACONFIGURE_OPTIONS += --prefix=/usr
363N/A# We use OpenSSL install code for installing only manual pages and we do that
363N/A# for 32-bit version only.
363N/ACONFIGURE_OPTIONS += --install_prefix=$(PROTO_DIR)
363N/ACONFIGURE_OPTIONS += no-ec
363N/ACONFIGURE_OPTIONS += no-ecdh
363N/ACONFIGURE_OPTIONS += no-ecdsa
363N/ACONFIGURE_OPTIONS += no-rc3
363N/ACONFIGURE_OPTIONS += no-rc5
363N/ACONFIGURE_OPTIONS += no-mdc2
363N/ACONFIGURE_OPTIONS += no-idea
363N/ACONFIGURE_OPTIONS += no-hw_4758_cca
363N/ACONFIGURE_OPTIONS += no-hw_aep
363N/ACONFIGURE_OPTIONS += no-hw_atalla
363N/ACONFIGURE_OPTIONS += no-hw_chil
363N/ACONFIGURE_OPTIONS += no-hw_gmp
363N/ACONFIGURE_OPTIONS += no-hw_ncipher
363N/ACONFIGURE_OPTIONS += no-hw_nuron
363N/ACONFIGURE_OPTIONS += no-hw_padlock
363N/ACONFIGURE_OPTIONS += no-hw_sureware
363N/ACONFIGURE_OPTIONS += no-hw_ubsec
363N/ACONFIGURE_OPTIONS += no-hw_cswift
7161N/A
363N/A# MD2 is not enabled by default in OpensSSL but some software we have in
363N/A# Userland needs it. One example is nmap.
363N/ACONFIGURE_OPTIONS += enable-md2
363N/ACONFIGURE_OPTIONS += no-seed
4412N/A
7161N/A# We don't ship GOST engine.
7161N/ACONFIGURE_OPTIONS += no-gost
7161N/A
4412N/A# Disable SSLv2 protocol
6979N/ACONFIGURE_OPTIONS += no-ssl2
4412N/A
363N/A# We use both no-whirlpool and no-whrlpool since there is an inconsistency in
363N/A# the OpenSSL code and one needs both to build OpenSSL successfully with
363N/A# Whirlpool implementation removed.
363N/ACONFIGURE_OPTIONS += no-whirlpool
363N/ACONFIGURE_OPTIONS += no-whrlpool
7161N/A
797N/A# Some additional options needed for our engines.
797N/ACONFIGURE_OPTIONS += --pk11-libname=$(PKCS11_LIB$(BITS))
797N/ACONFIGURE_OPTIONS += --enginesdir=$(ENGINESDIR_$(BITS))
363N/A
363N/A# We define our own compiler and linker option sets for Solaris. See Configure
363N/A# for more information.
363N/ACONFIGURE_OPTIONS32_i386 = solaris-x86-cc-sunw
363N/ACONFIGURE_OPTIONS32_sparc = solaris-sparcv9-cc-sunw
363N/ACONFIGURE_OPTIONS64_i386 = solaris64-x86_64-cc-sunw
363N/ACONFIGURE_OPTIONS64_sparc = solaris64-sparcv9-cc-sunw
363N/A
797N/A# Options specific to regular build.
797N/A# They must not be specified as common, as they cannot be overridden.
797N/A$(BUILD_DIR)/$(MACH32)/.configured: CONFIGURE_OPTIONS += threads
797N/A$(BUILD_DIR)/$(MACH64)/.configured: CONFIGURE_OPTIONS += threads
797N/A$(BUILD_DIR)/$(MACH32)/.configured: CONFIGURE_OPTIONS += shared
797N/A$(BUILD_DIR)/$(MACH64)/.configured: CONFIGURE_OPTIONS += shared
797N/A$(BUILD_DIR)/$(MACH32)/.configured: CONFIGURE_OPTIONS += shared
797N/A$(BUILD_DIR)/$(MACH64)/.configured: CONFIGURE_OPTIONS += shared
797N/A$(BUILD_DIR)/$(MACH32)/.configured: CONFIGURE_OPTIONS += \
797N/A $(CONFIGURE_OPTIONS32_$(MACH))
797N/A$(BUILD_DIR)/$(MACH64)/.configured: CONFIGURE_OPTIONS += \
797N/A $(CONFIGURE_OPTIONS64_$(MACH))
797N/A
797N/A# OpenSSL for wanboot specific options
797N/A$(BUILD_DIR_WANBOOT)/.configured: BITS=64
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += -DNO_CHMOD
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += -D_BOOT
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += -DOPENSSL_NO_DTLS1
1655N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += -DOPENSSL_NO_HEARTBEATS
1655N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += -DOPENSSL_NO_SRP
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += no-cast
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += no-dso
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += no-rc4
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += no-ripemd
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += no-hw
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += no-threads
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += no-shared
797N/A$(BUILD_DIR_WANBOOT)/.configured: CONFIGURE_OPTIONS += \
797N/A solaris64-sparcv9-cc-sunw-wanboot
797N/A
363N/A# OpenSSL has its own configure system which must be run from the fully
363N/A# populated source code directory. However, the Userland configuration phase is
363N/A# run from the build directory. So, we must get the full source code into the
363N/A# build directory.
363N/ACOMPONENT_PRE_CONFIGURE_ACTION = \
363N/A ( $(CLONEY) $(SOURCE_DIR) $(BUILD_DIR)/$(MACH$(BITS)); )
363N/A
797N/A$(BUILD_DIR_WANBOOT)/.configured: COMPONENT_PRE_CONFIGURE_ACTION = \
797N/A ( $(CLONEY) $(SOURCE_DIR) $(BUILD_DIR_WANBOOT); )
797N/A
363N/A# We deliver only one opensslconf.h file which must be suitable for both 32 and
363N/A# 64 bits. Depending on the configuration option, OpenSSL's Configure script
363N/A# creates opensslconf.h for either 32 or 64 bits. A patch makes the resulting
363N/A# header file usable on both architectures. The patch was generated against the
363N/A# opensslconf.h version from the 32 bit build.
363N/ACOMPONENT_POST_CONFIGURE_ACTION = \
363N/A ( [ $(BITS) -eq 32 ] && $(GPATCH) -p1 $(@D)/crypto/opensslconf.h \
363N/A patches-post-config/opensslconf.patch; cd $(@D); $(MAKE) depend; )
363N/A
363N/A# We do not ship our engines as patches since it would be more difficult to
363N/A# update the files which have been under continuous development. We rather copy
363N/A# the files to the right directories.
797N/A# Same holds for wanboot-stubs.c, which stubs out several functions, that are
797N/A# not available in the stand-alone environment of wanboot.
7161N/ACOMPONENT_PRE_BUILD_ACTION = \
997N/A ( echo "Cloning engines..."; \
7161N/A $(LN) -fs $(COMPONENT_DIR)/../common/engines/pkcs11/*.[ch] $(@D)/engines; \
7161N/A $(LN) -fs $(COMPONENT_DIR)/wanboot-openssl/wanboot-stubs.c $(@D)/crypto; )
1840N/A
2474N/A# Enable ASLR for this component
2474N/AASLR_MODE = $(ASLR_ENABLE)
797N/A
797N/A# OpenSSL for wanboot is built on sparc only.
797N/Aifeq ($(MACH), sparc)
797N/ABUILD_64 += $(BUILD_DIR_WANBOOT)/.built
797N/Aendif
363N/A
7161N/Aconfigure: $(CONFIGURE_32_and_64)
7161N/A
363N/Abuild: $(BUILD_32_and_64)
363N/A
797N/A# Object files for wanboot-openssl.o have to be listed explicitly.
797N/AWANBOOT_OBJS = \
1655N/A crypto/aes/aes-sparcv9.o crypto/aes/aes_cbc.o crypto/aes/aes_core.o \
1853N/A crypto/aes/aes_misc.o crypto/aes/aes_wrap.o crypto/aes/aest4-sparcv9.o \
1853N/A crypto/asn1/a_bitstr.o \
1655N/A crypto/asn1/a_bool.o crypto/asn1/a_bytes.o crypto/asn1/a_d2i_fp.o \
1655N/A crypto/asn1/a_digest.o crypto/asn1/a_dup.o crypto/asn1/a_enum.o \
1655N/A crypto/asn1/a_gentm.o crypto/asn1/a_i2d_fp.o crypto/asn1/a_int.o \
1655N/A crypto/asn1/a_mbstr.o crypto/asn1/a_object.o crypto/asn1/a_octet.o \
1655N/A crypto/asn1/a_print.o crypto/asn1/a_set.o crypto/asn1/a_sign.o \
1655N/A crypto/asn1/a_strex.o crypto/asn1/a_strnid.o crypto/asn1/a_time.o \
1655N/A crypto/asn1/a_type.o crypto/asn1/a_utctm.o crypto/asn1/a_utf8.o \
1655N/A crypto/asn1/a_verify.o crypto/asn1/ameth_lib.o crypto/asn1/asn1_err.o \
1655N/A crypto/asn1/asn1_gen.o crypto/asn1/asn1_lib.o crypto/asn1/asn1_par.o \
1655N/A crypto/asn1/asn_mime.o crypto/asn1/asn_pack.o crypto/asn1/bio_asn1.o \
1655N/A crypto/asn1/bio_ndef.o crypto/asn1/d2i_pr.o crypto/asn1/evp_asn1.o \
1655N/A crypto/asn1/f_int.o crypto/asn1/f_string.o crypto/asn1/i2d_pr.o \
1655N/A crypto/asn1/nsseq.o crypto/asn1/p5_pbe.o crypto/asn1/p5_pbev2.o \
1655N/A crypto/asn1/p8_pkey.o crypto/asn1/t_pkey.o crypto/asn1/t_x509.o \
1655N/A crypto/asn1/t_x509a.o crypto/asn1/tasn_dec.o crypto/asn1/tasn_enc.o \
1655N/A crypto/asn1/tasn_fre.o crypto/asn1/tasn_new.o crypto/asn1/tasn_prn.o \
1655N/A crypto/asn1/tasn_typ.o crypto/asn1/tasn_utl.o crypto/asn1/x_algor.o \
1655N/A crypto/asn1/x_attrib.o crypto/asn1/x_bignum.o crypto/asn1/x_crl.o \
1655N/A crypto/asn1/x_exten.o crypto/asn1/x_info.o crypto/asn1/x_long.o \
1655N/A crypto/asn1/x_name.o crypto/asn1/x_pkey.o crypto/asn1/x_pubkey.o \
1655N/A crypto/asn1/x_req.o crypto/asn1/x_sig.o crypto/asn1/x_spki.o \
1655N/A crypto/asn1/x_val.o crypto/asn1/x_x509.o crypto/asn1/x_x509a.o \
1655N/A crypto/bf/bf_cfb64.o crypto/bf/bf_ecb.o crypto/bf/bf_enc.o \
1655N/A crypto/bf/bf_ofb64.o crypto/bf/bf_skey.o crypto/bio/b_dump.o \
1655N/A crypto/bio/b_print.o crypto/bio/bf_buff.o crypto/bio/bio_err.o \
1655N/A crypto/bio/bio_lib.o crypto/bio/bss_file.o crypto/bio/bss_mem.o \
1655N/A crypto/bio/bss_null.o crypto/bio/bss_sock.o crypto/bn/bn-sparcv9.o \
1655N/A crypto/bn/bn_add.o crypto/bn/bn_blind.o crypto/bn/bn_ctx.o \
1655N/A crypto/bn/bn_div.o crypto/bn/bn_err.o crypto/bn/bn_exp.o \
1655N/A crypto/bn/bn_exp2.o crypto/bn/bn_gcd.o crypto/bn/bn_lib.o \
1655N/A crypto/bn/bn_mod.o crypto/bn/bn_mont.o crypto/bn/bn_mul.o \
1655N/A crypto/bn/bn_prime.o crypto/bn/bn_print.o crypto/bn/bn_rand.o \
1655N/A crypto/bn/bn_recp.o crypto/bn/bn_shift.o crypto/bn/bn_sqr.o \
1655N/A crypto/bn/bn_word.o crypto/bn/sparcv9-mont.o crypto/bn/sparcv9a-mont.o \
1913N/A crypto/bn/sparct4-mont.o crypto/bn/vis3-mont.o \
1655N/A crypto/buffer/buf_err.o crypto/buffer/buf_str.o crypto/buffer/buffer.o \
1655N/A crypto/camellia/camellia.o crypto/camellia/cmll_cbc.o \
1655N/A crypto/camellia/cmll_cfb.o crypto/camellia/cmll_ecb.o \
1655N/A crypto/camellia/cmll_misc.o crypto/camellia/cmll_ofb.o \
7161N/A crypto/camellia/cmll_utl.o crypto/camellia/cmllt4-sparcv9.o \
7161N/A crypto/cmac/cm_ameth.o crypto/cmac/cm_pmeth.o \
1655N/A crypto/cmac/cmac.o crypto/cms/cms_asn1.o crypto/cms/cms_att.o \
797N/A crypto/cms/cms_dd.o crypto/cms/cms_enc.o crypto/cms/cms_env.o \
797N/A crypto/cms/cms_err.o crypto/cms/cms_io.o crypto/cms/cms_lib.o \
1655N/A crypto/cms/cms_pwri.o crypto/cms/cms_sd.o crypto/comp/c_zlib.o \
1655N/A crypto/comp/comp_err.o crypto/comp/comp_lib.o crypto/conf/conf_api.o \
1655N/A crypto/conf/conf_def.o crypto/conf/conf_err.o crypto/conf/conf_lib.o \
1655N/A crypto/conf/conf_mod.o crypto/cpt_err.o crypto/cryptlib.o \
1655N/A crypto/des/cfb64ede.o crypto/des/cfb64enc.o crypto/des/cfb_enc.o \
1655N/A crypto/des/des_enc-sparc.o crypto/des/ecb3_enc.o crypto/des/ecb_enc.o \
1913N/A crypto/des/ofb64ede.o crypto/des/ofb64enc.o crypto/des/dest4-sparcv9.o \
1913N/A crypto/des/set_key.o \
1655N/A crypto/des/xcbc_enc.o crypto/dh/dh_ameth.o crypto/dh/dh_asn1.o \
1655N/A crypto/dh/dh_check.o crypto/dh/dh_err.o crypto/dh/dh_gen.o \
1655N/A crypto/dh/dh_key.o crypto/dh/dh_lib.o crypto/dh/dh_pmeth.o \
1655N/A crypto/dsa/dsa_ameth.o crypto/dsa/dsa_asn1.o crypto/dsa/dsa_err.o \
1655N/A crypto/dsa/dsa_gen.o crypto/dsa/dsa_key.o crypto/dsa/dsa_lib.o \
1655N/A crypto/dsa/dsa_ossl.o crypto/dsa/dsa_pmeth.o crypto/dsa/dsa_sign.o \
1655N/A crypto/dsa/dsa_vrf.o crypto/dso/dso_lib.o crypto/dso/dso_null.o \
1655N/A crypto/dso/dso_openssl.o crypto/engine/eng_ctrl.o crypto/engine/eng_err.o \
1655N/A crypto/engine/eng_init.o crypto/engine/eng_lib.o crypto/engine/eng_list.o \
1655N/A crypto/engine/eng_pkey.o crypto/engine/eng_table.o \
1655N/A crypto/engine/tb_asnmth.o crypto/engine/tb_cipher.o crypto/engine/tb_dh.o \
1655N/A crypto/engine/tb_digest.o crypto/engine/tb_dsa.o \
1655N/A crypto/engine/tb_pkmeth.o crypto/engine/tb_rand.o crypto/engine/tb_rsa.o \
1655N/A crypto/err/err.o crypto/err/err_all.o crypto/err/err_prn.o \
1655N/A crypto/evp/bio_b64.o crypto/evp/bio_enc.o crypto/evp/bio_md.o \
1655N/A crypto/evp/c_all.o crypto/evp/c_allc.o crypto/evp/c_alld.o \
1655N/A crypto/evp/digest.o crypto/evp/e_aes.o crypto/evp/e_aes_cbc_hmac_sha1.o \
797N/A crypto/evp/e_bf.o crypto/evp/e_camellia.o crypto/evp/e_des.o \
797N/A crypto/evp/e_des3.o crypto/evp/e_null.o crypto/evp/e_rc2.o \
797N/A crypto/evp/e_xcbc_d.o crypto/evp/encode.o crypto/evp/evp_enc.o \
797N/A crypto/evp/evp_err.o crypto/evp/evp_key.o crypto/evp/evp_lib.o \
797N/A crypto/evp/evp_pbe.o crypto/evp/evp_pkey.o crypto/evp/m_dss.o \
797N/A crypto/evp/m_dss1.o crypto/evp/m_md4.o crypto/evp/m_md5.o \
797N/A crypto/evp/m_sha.o crypto/evp/m_sha1.o crypto/evp/m_sigver.o \
797N/A crypto/evp/names.o crypto/evp/p5_crpt.o crypto/evp/p5_crpt2.o \
797N/A crypto/evp/p_lib.o crypto/evp/p_sign.o crypto/evp/p_verify.o \
797N/A crypto/evp/pmeth_fn.o crypto/evp/pmeth_gn.o crypto/evp/pmeth_lib.o \
797N/A crypto/ex_data.o crypto/hmac/hm_ameth.o crypto/hmac/hm_pmeth.o \
797N/A crypto/hmac/hmac.o crypto/lhash/lhash.o crypto/md4/md4_dgst.o \
1840N/A crypto/md5/md5-sparcv9.o \
797N/A crypto/md5/md5_dgst.o crypto/mem.o crypto/mem_dbg.o crypto/modes/cbc128.o \
1655N/A crypto/modes/ccm128.o crypto/modes/cfb128.o crypto/modes/ctr128.o \
1655N/A crypto/modes/gcm128.o crypto/modes/ghash-sparcv9.o crypto/modes/ofb128.o \
7161N/A crypto/modes/wrap128.o crypto/modes/xts128.o crypto/o_dir.o \
7161N/A crypto/o_init.o crypto/o_time.o \
1655N/A crypto/objects/o_names.o crypto/objects/obj_dat.o \
797N/A crypto/objects/obj_err.o crypto/objects/obj_lib.o \
797N/A crypto/objects/obj_xref.o crypto/ocsp/ocsp_asn.o crypto/ocsp/ocsp_err.o \
797N/A crypto/pem/pem_all.o crypto/pem/pem_err.o crypto/pem/pem_info.o \
797N/A crypto/pem/pem_lib.o crypto/pem/pem_oth.o crypto/pem/pem_pk8.o \
797N/A crypto/pem/pem_pkey.o crypto/pem/pem_x509.o crypto/pem/pem_xaux.o \
797N/A crypto/pkcs12/p12_add.o crypto/pkcs12/p12_asn.o crypto/pkcs12/p12_attr.o \
797N/A crypto/pkcs12/p12_crpt.o crypto/pkcs12/p12_decr.o crypto/pkcs12/p12_key.o \
797N/A crypto/pkcs12/p12_mutl.o crypto/pkcs12/p12_p8d.o crypto/pkcs12/p12_p8e.o \
797N/A crypto/pkcs12/p12_utl.o crypto/pkcs12/pk12err.o crypto/pkcs7/pk7_asn1.o \
797N/A crypto/pkcs7/pk7_attr.o crypto/pkcs7/pk7_doit.o crypto/pkcs7/pk7_lib.o \
1655N/A crypto/pkcs7/pkcs7err.o crypto/pqueue/pqueue.o crypto/rand/md_rand.o \
1655N/A crypto/rand/rand_err.o crypto/rand/rand_lib.o crypto/rand/rand_unix.o \
1655N/A crypto/rand/randfile.o crypto/rc2/rc2_cbc.o crypto/rc2/rc2_ecb.o \
1655N/A crypto/rc2/rc2_skey.o crypto/rc2/rc2cfb64.o crypto/rc2/rc2ofb64.o \
1655N/A crypto/rsa/rsa_ameth.o crypto/rsa/rsa_asn1.o crypto/rsa/rsa_crpt.o \
1655N/A crypto/rsa/rsa_eay.o crypto/rsa/rsa_err.o crypto/rsa/rsa_gen.o \
1655N/A crypto/rsa/rsa_lib.o crypto/rsa/rsa_none.o crypto/rsa/rsa_oaep.o \
1655N/A crypto/rsa/rsa_pk1.o crypto/rsa/rsa_pmeth.o crypto/rsa/rsa_pss.o \
1655N/A crypto/rsa/rsa_saos.o crypto/rsa/rsa_sign.o crypto/rsa/rsa_ssl.o \
797N/A crypto/rsa/rsa_x931.o crypto/sha/sha1-sparcv9.o crypto/sha/sha1dgst.o \
797N/A crypto/sha/sha256-sparcv9.o crypto/sha/sha256.o \
797N/A crypto/sha/sha512-sparcv9.o crypto/sha/sha512.o crypto/sha/sha_dgst.o \
1655N/A crypto/sparccpuid.o crypto/sparcv9cap.o crypto/srp/srp_lib.o \
1655N/A crypto/srp/srp_vfy.o crypto/stack/stack.o crypto/ts/ts_err.o \
1655N/A crypto/txt_db/txt_db.o crypto/ui/ui_err.o crypto/wanboot-stubs.o \
1655N/A crypto/x509/by_dir.o crypto/x509/by_file.o crypto/x509/x509_att.o \
1655N/A crypto/x509/x509_cmp.o crypto/x509/x509_d2.o crypto/x509/x509_def.o \
1655N/A crypto/x509/x509_err.o crypto/x509/x509_ext.o crypto/x509/x509_lu.o \
1655N/A crypto/x509/x509_obj.o crypto/x509/x509_req.o crypto/x509/x509_trs.o \
1655N/A crypto/x509/x509_txt.o crypto/x509/x509_v3.o crypto/x509/x509_vfy.o \
7161N/A crypto/x509/x509_vpm.o crypto/x509/x509cset.o \
7161N/A crypto/x509/x509name.o crypto/x509/x509rset.o \
1655N/A crypto/x509/x509type.o crypto/x509/x_all.o crypto/x509v3/pcy_cache.o \
1655N/A crypto/x509v3/pcy_data.o crypto/x509v3/pcy_lib.o crypto/x509v3/pcy_map.o \
1655N/A crypto/x509v3/pcy_node.o crypto/x509v3/pcy_tree.o crypto/x509v3/v3_akey.o \
1655N/A crypto/x509v3/v3_akeya.o crypto/x509v3/v3_alt.o crypto/x509v3/v3_bcons.o \
1655N/A crypto/x509v3/v3_bitst.o crypto/x509v3/v3_conf.o crypto/x509v3/v3_cpols.o \
1655N/A crypto/x509v3/v3_crld.o crypto/x509v3/v3_enum.o crypto/x509v3/v3_extku.o \
1655N/A crypto/x509v3/v3_genn.o crypto/x509v3/v3_ia5.o crypto/x509v3/v3_info.o \
1655N/A crypto/x509v3/v3_int.o crypto/x509v3/v3_lib.o crypto/x509v3/v3_ncons.o \
1655N/A crypto/x509v3/v3_ocsp.o crypto/x509v3/v3_pci.o crypto/x509v3/v3_pcia.o \
1655N/A crypto/x509v3/v3_pcons.o crypto/x509v3/v3_pku.o crypto/x509v3/v3_pmaps.o \
7161N/A crypto/x509v3/v3_prn.o crypto/x509v3/v3_purp.o \
7161N/A crypto/x509v3/v3_scts.o crypto/x509v3/v3_skey.o \
1655N/A crypto/x509v3/v3_sxnet.o crypto/x509v3/v3_utl.o crypto/x509v3/v3err.o \
1655N/A ssl/s3_both.o ssl/s3_clnt.o ssl/s3_enc.o ssl/s3_lib.o ssl/s3_pkt.o \
1655N/A ssl/ssl_algs.o ssl/ssl_asn1.o ssl/ssl_cert.o ssl/ssl_ciph.o ssl/ssl_err.o \
1655N/A ssl/ssl_err2.o ssl/ssl_lib.o ssl/ssl_rsa.o ssl/ssl_sess.o ssl/t1_enc.o \
1829N/A ssl/t1_lib.o ssl/t1_reneg.o ssl/d1_srtp.o ssl/s3_cbc.o ssl/t1_clnt.o
797N/A
797N/A# Linking of openssl bits for wanboot.
797N/A# Interface for wanboot is specified in mapfile.wanboot. Object files are
797N/A# compiled to have functions in separate sections, unused sections get
797N/A# discarded.
797N/ACREATE_BIG_OBJECT_FILE = ( \
797N/A cd $(BUILD_DIR_WANBOOT); \
797N/A $(LD) -o wanboot-openssl.o -r -M../../mapfile.wanboot -Breduce \
797N/A -zdiscard-unused=sections,files -zguidance \
797N/A $(WANBOOT_OBJS); \
797N/A )
797N/A
797N/A$(BUILD_DIR_WANBOOT)/.built: COMPONENT_POST_BUILD_ACTION = \
797N/A ($(CREATE_BIG_OBJECT_FILE); )
797N/A
363N/A# OpenSSL uses sections man[1357] by default so we must create the man
363N/A# directories we use for OpenSSL man pages in Solaris. Note that we patch the
363N/A# OpenSSL man page install script to use the correct directories.
363N/AMANDIR_SECTIONS = $(PROTO_DIR)/usr/share/man/man1openssl
363N/AMANDIR_SECTIONS += $(PROTO_DIR)/usr/share/man/man3openssl
363N/AMANDIR_SECTIONS += $(PROTO_DIR)/usr/share/man/man5openssl
363N/AMANDIR_SECTIONS += $(PROTO_DIR)/usr/share/man/man7openssl
363N/A
363N/A# We must create man page directories manually since we patched OpenSSL install
363N/A# code to install into manXopenssl instead of manX. Also, OpenSSL does not
363N/A# install into <dir>/$(MACH64) for 64-bit install so no such directory is
363N/A# created and Userland install code would fail when installing lint libraries.
363N/ACOMPONENT_PRE_INSTALL_ACTION = ( $(MKDIR) $(MANDIR_SECTIONS); \
363N/A $(MKDIR) $(PROTO_DIR)/usr/lib/$(MACH64); )
363N/A
363N/A# The install_docs target will install man pages into $(PROTO_DIR)/$(MANDIR). We
363N/A# also add /usr/perl5/bin to PATH so that OpenSSL install code can locate the
363N/A# system pod2man. If not set, OpenSSL make would use an internal implementation
363N/A# from the tarball which would corrupt some man pages.
364N/ACOMPONENT_INSTALL_ARGS += PATH=$(PATH) MANDIR=/usr/share/man
363N/A
797N/AWANBOOT_TO = $(PROTO_DIR)/lib/openssl/wanboot/$(MACH64)
797N/A
363N/A# We could run OpenSSL install code for 32 bits only to process header files and
797N/A# manual pages. However, lint libraries depend on install stamps so we run
363N/A# install for 64 bit as well. Note that we must take built binary files from
363N/A# build directories, not from the proto area which contains whatever was
363N/A# installed first.
797N/A# OpenSSL for wanboot is built on sparc only.
797N/Aifeq ($(MACH), sparc)
797N/Ainstall: $(INSTALL_32_and_64) $(BUILD_DIR_WANBOOT)/.built
797N/A $(MKDIR) -p $(WANBOOT_TO);
797N/A $(CP) $(BUILD_DIR_WANBOOT)/wanboot-openssl.o $(WANBOOT_TO);
797N/Aelse
363N/Ainstall: $(INSTALL_32_and_64)
797N/Aendif
363N/A
363N/A# We need to modify the default lint flags to include patched opensslconf.h from
363N/A# the build directory. If we do not do that, lint will complain about md2.h
363N/A# which is not enabled by default but it is in our opensslconf.h.
699N/ALFLAGS_32 := -I$(BUILD_DIR_32)/include $(LINT_FLAGS) -lsoftcrypto
699N/ALFLAGS_64 := -I$(BUILD_DIR_64)/include $(LINT_FLAGS) -lsoftcrypto
363N/A
363N/A# Set modified lint flags for our lint library targets.
7161N/A$(BUILD_DIR_32)/llib-lcrypto.ln: LINT_FLAGS=$(LFLAGS_32) -I$(PROTOUSRINCDIR)
7161N/A$(BUILD_DIR_32)/llib-lssl.ln: LINT_FLAGS=$(LFLAGS_32) -I$(PROTOUSRINCDIR)
7161N/A$(BUILD_DIR_64)/llib-lcrypto.ln: LINT_FLAGS=$(LFLAGS_64) -I$(PROTOUSRINCDIR)
7161N/A$(BUILD_DIR_64)/llib-lssl.ln: LINT_FLAGS=$(LFLAGS_64) -I$(PROTOUSRINCDIR)
363N/A
4282N/A# There are also separate STC test suites 'openssl' and 'openssl-engine'
4282N/A# for regression testing. These internal tests are unit tests only.
4282N/ACOMPONENT_TEST_TARGETS = test
4282N/Atest: $(TEST_32_and_64)
363N/A
7161N/Asystem-test: $(SYSTEM_TESTS_NOT_IMPLEMENTED)
363N/A
7161N/A
7161N/AREQUIRED_PACKAGES += developer/build/makedepend
7161N/AREQUIRED_PACKAGES += network/rsync
3996N/AREQUIRED_PACKAGES += system/library