Makefile revision 6017
1N/A# The contents of this file are subject to the terms of the 1N/A# Common Development and Distribution License (the "License"). 1N/A# You may not use this file except in compliance with the License. 1N/A# See the License for the specific language governing permissions 1N/A# and limitations under the License. 1N/A# When distributing Covered Code, include this CDDL HEADER in each 1N/A# If applicable, add the following below this CDDL HEADER, with the 1N/A# fields enclosed by brackets "[]" replaced with your own identifying 1N/A# information: Portions Copyright [yyyy] [name of copyright owner] # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. # When new version of OpenSSL comes in, you must update both COMPONENT_VERSION # and IPS_COMPONENT_VERSION. # When upgrading OpenSSL, please, DON'T FORGET TO TEST WANBOOT too. # For more information about wanboot-openssl testing, please refer to # Version for IPS. It is easier to do it manually than convert the letter to a # number while taking into account that there might be no letter at all. # Clone the patch files to the patches-all dir. # COPY_COMMON_FILES is there so that rsync is called as soon as # the Makefile is parsed. # OpenSSL does not use autoconf but its own configure system. # Ignore default CC_FOR_BUILD, CC, and CXX in CONFIGURE_ENV. # This is to force OpenSSL's Configure script to use gmake for 'make links'. # Otherwise it fails with: # mksh: Fatal error in reader: Unmatched `(' on line # Used in the configure options below. # Configure options common to both regular OpenSSL and OpenSSL for wanboot. # We use OpenSSL install code for installing only manual pages and we do that # for 32-bit version only. # Disable SSLv2 and SSLv3 protocols # We use both no-whirlpool and no-whrlpool since there is an inconsistency in # the OpenSSL code and one needs both to build OpenSSL successfully with # Whirlpool implementation removed. # Some additional options needed for our engines. # We define our own compiler and linker option sets for Solaris. See Configure # Options specific to regular build. # They must not be specified as common, as they cannot be overridden. # OpenSSL for wanboot specific options # OpenSSL has its own configure system which must be run from the fully # populated source code directory. However, the Userland configuration phase is # run from the build directory. So, we must get the full source code into the # We deliver only one opensslconf.h file which must be suitable for both 32 and # 64 bits. Depending on the configuration option, OpenSSL's Configure script # creates opensslconf.h for either 32 or 64 bits. A patch makes the resulting # header file usable on both architectures. The patch was generated against the # We do not ship our engines as patches since it would be more difficult to # update the files which have been under continuous development. We rather copy # the files to the right directories. # Same holds for wanboot-stubs.c, which stubs out several functions, that are # not available in the stand-alone environment of wanboot. ( echo "Cloning engines..."; \ # Enable ASLR for this component # OpenSSL for wanboot is built on sparc only. # Linking of openssl bits for wanboot. # compiled to have functions in separate sections, unused sections get # OpenSSL uses sections man[1357] by default so we must create the man # directories we use for OpenSSL man pages in Solaris. Note that we patch the # OpenSSL man page install script to use the correct directories. # We must create man page directories manually since we patched OpenSSL install # code to install into manXopenssl instead of manX. Also, OpenSSL does not # install into <dir>/$(MACH64) for 64-bit install so no such directory is # created and Userland install code would fail when installing lint libraries. # The install_docs target will install man pages into $(PROTO_DIR)/$(MANDIR). We # also add /usr/perl5/bin to PATH so that OpenSSL install code can locate the # system pod2man. If not set, OpenSSL make would use an internal implementation # from the tarball which would corrupt some man pages. # We could run OpenSSL install code for 32 bits only to process header files and # manual pages. However, lint libraries depend on install stamps so we run # install for 64 bit as well. Note that we must take built binary files from # build directories, not from the proto area which contains whatever was # OpenSSL for wanboot is built on sparc only. # Set modified lint flags for our lint library targets. # There are also separate STC test suites 'openssl' and 'openssl-engine' # for regression testing. These internal tests are unit tests only.