Makefile revision 5254
0N/A# The contents of this file are subject to the terms of the 0N/A# Common Development and Distribution License (the "License"). 0N/A# You may not use this file except in compliance with the License. 0N/A# See the License for the specific language governing permissions 0N/A# and limitations under the License. 0N/A# When distributing Covered Code, include this CDDL HEADER in each 0N/A# If applicable, add the following below this CDDL HEADER, with the 0N/A# fields enclosed by brackets "[]" replaced with your own identifying 0N/A# information: Portions Copyright [yyyy] [name of copyright owner] 2362N/A# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. 0N/A# When new version of OpenSSL comes in, you must update both COMPONENT_VERSION 0N/A# and IPS_COMPONENT_VERSION. 0N/A# When upgrading OpenSSL, please, DON'T FORGET TO TEST WANBOOT too. 0N/A# For more information about wanboot-openssl testing, please refer to 0N/A# Version for IPS. It is easier to do it manually than convert the letter to a 0N/A# number while taking into account that there might be no letter at all. 0N/A# Clone the patch files to the patches-all dir. 0N/A# COPY_COMMON_FILES is there so that rsync is called as soon as 0N/A# the Makefile is parsed. 0N/A# OpenSSL does not use autoconf but its own configure system. 0N/A# Ignore default CC_FOR_BUILD, CC, and CXX in CONFIGURE_ENV. 0N/A# This is to force OpenSSL's Configure script to use gmake for 'make links'. 0N/A# Otherwise it fails with: 0N/A# mksh: Fatal error in reader: Unmatched `(' on line 0N/A# Used in the configure options below. 0N/A# Configure options common to both regular OpenSSL and OpenSSL for wanboot. 0N/A# We use OpenSSL install code for installing only manual pages and we do that 0N/A# for 32-bit version only. 0N/A# MD2 is not enabled by default in OpensSSL but some software we have in 0N/A# Userland needs it. One example is nmap. 0N/A# Disable SSLv2 and SSLv3 protocols 0N/A# We use both no-whirlpool and no-whrlpool since there is an inconsistency in 0N/A# the OpenSSL code and one needs both to build OpenSSL successfully with 0N/A# Whirlpool implementation removed. 0N/A# Some additional options needed for our engines. 0N/A# We define our own compiler and linker option sets for Solaris. See Configure 0N/A# for more information. 0N/A# Options specific to regular build. 0N/A# 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. # We need to modify the default lint flags to include patched opensslconf.h from # the build directory. If we do not do that, lint will complain about md2.h # which is not enabled by default but it is in our opensslconf.h. # 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.