Makefile revision 3651
842ae4bd224140319ae7feec1872b93dfd491143fielding#
842ae4bd224140319ae7feec1872b93dfd491143fielding# CDDL HEADER START
842ae4bd224140319ae7feec1872b93dfd491143fielding#
842ae4bd224140319ae7feec1872b93dfd491143fielding# The contents of this file are subject to the terms of the
842ae4bd224140319ae7feec1872b93dfd491143fielding# Common Development and Distribution License (the "License").
842ae4bd224140319ae7feec1872b93dfd491143fielding# You may not use this file except in compliance with the License.
b0fb330a8581c8bfab5e523084f9f39264a52b12gstein#
71da3cca78eea6010f89b139ecadb79e6d213c4fnd# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
b0fb330a8581c8bfab5e523084f9f39264a52b12gstein# or http://www.opensolaris.org/os/licensing.
71da3cca78eea6010f89b139ecadb79e6d213c4fnd# See the License for the specific language governing permissions
71da3cca78eea6010f89b139ecadb79e6d213c4fnd# and limitations under the License.
71da3cca78eea6010f89b139ecadb79e6d213c4fnd#
71da3cca78eea6010f89b139ecadb79e6d213c4fnd# When distributing Covered Code, include this CDDL HEADER in each
71da3cca78eea6010f89b139ecadb79e6d213c4fnd# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
b0fb330a8581c8bfab5e523084f9f39264a52b12gstein# If applicable, add the following below this CDDL HEADER, with the
f4c310fd2555c6faca1f980f00b161eadb089023gstein# fields enclosed by brackets "[]" replaced with your own identifying
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh# information: Portions Copyright [yyyy] [name of copyright owner]
49cea03e96dc4707bce15d6318eb013cb8668d96minfrin#
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh# CDDL HEADER END
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh#
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh#
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianhinclude ../../make-rules/shared-macros.mk
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_NAME= sendmail
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_VERSION= 8.14.9
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_PROJECT_URL= ftp://ftp.sendmail.org/pub/sendmail/
b980ad7fdc218b4855cde9f75a747527f50c554dwroweCOMPONENT_ARCHIVE= $(COMPONENT_NAME).$(COMPONENT_VERSION).tar.gz
ba8574a7fe6f1c3405982bb856591b5f13fe205agsteinCOMPONENT_ARCHIVE_HASH= \
2acd42d5591f6db91fc3716300ecce1818e6fc14gstein sha256:f5a497151abd8f341cca0736c3f9bd703d574d93146b2989689dff6d7a445d75
f39230a531b23d94f86a087963299bbe2e431a4agsteinCOMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
f39230a531b23d94f86a087963299bbe2e431a4agsteinCOMPONENT_SIG_URL= $(COMPONENT_ARCHIVE_URL).sig
f39230a531b23d94f86a087963299bbe2e431a4agsteinCOMPONENT_BUGDB= utility/sendmail
9a1d0e3184c65f510dbef5e83ba5b9f27f961b44gstein
f39230a531b23d94f86a087963299bbe2e431a4agsteinTPNO= 7435
252e2478cb56afb5ca8585b50bc2ffb780d2efb6gstein
cbc2cc2d42811fc0d836b1cfd0c52121d8359e86gsteininclude ../../make-rules/prep.mk
6582c8e9b0d0d65427b0c55cb48eaac7950dcb8ftrawickinclude ../../make-rules/justmake.mk
f4c310fd2555c6faca1f980f00b161eadb089023gsteininclude ../../make-rules/ips.mk
02fed5190fb8d69dbb70fb2330526fff85af1c41gsteininclude ../../make-rules/lint-libraries.mk
02fed5190fb8d69dbb70fb2330526fff85af1c41gstein
02fed5190fb8d69dbb70fb2330526fff85af1c41gstein# Although we build 32_and_64, everything except libmilter just wants 64,
02fed5190fb8d69dbb70fb2330526fff85af1c41gstein# which is why the macros just below only have values for 64. libmilter
f4c310fd2555c6faca1f980f00b161eadb089023gstein# is dealt with further below.
6f15570e3adc0faf87bf55f70857028276fc9e32wrowePKG_PROTO_DIRS += $(BUILD_DIR_64)
f4c310fd2555c6faca1f980f00b161eadb089023gsteinPKG_PROTO_DIRS += $(BUILD_DIR_64)/obj.SunOS.$(OS_VERSION).$(ARCH)
6f15570e3adc0faf87bf55f70857028276fc9e32wrowePKG_PROTO_DIRS += $(COMPONENT_DIR)/files
6f15570e3adc0faf87bf55f70857028276fc9e32wrowePKG_PROTO_DIRS += $(COMPONENT_DIR)/files/man
f4c310fd2555c6faca1f980f00b161eadb089023gstein
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe# Userland default includes -mt which links with libthread which we don't need.
f4c310fd2555c6faca1f980f00b161eadb089023gsteinstudio_MT =
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe# We set ARCH to match sendmail's configure-like script: on x86, it simply
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe# uses 'uname -m', but on sparc it shortens "sun4*" into "sun4".
6f15570e3adc0faf87bf55f70857028276fc9e32wroweARCH := $(shell uname -m)
6f15570e3adc0faf87bf55f70857028276fc9e32wroweifeq ($(findstring sun4,$(ARCH)),sun4)
f4c310fd2555c6faca1f980f00b161eadb089023gsteinARCH = sun4
6f15570e3adc0faf87bf55f70857028276fc9e32wroweendif
6f15570e3adc0faf87bf55f70857028276fc9e32wroweFILE_DIR=$(COMPONENT_DIR)/files
f4c310fd2555c6faca1f980f00b161eadb089023gsteinM4_ARG=-DSUN_HIDE_INTERNAL_DETAILS
f4c310fd2555c6faca1f980f00b161eadb089023gsteinSM_BUILD_SUB_DIR=obj.SunOS.$(OS_VERSION).$(ARCH)
f4c310fd2555c6faca1f980f00b161eadb089023gsteinSM_BUILD_DIR=$(@D)/$(SM_BUILD_SUB_DIR)
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe# libmilter is built 32- and 64-bit, but its Makefile installs into a common
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe# location, so we use the macro below in its manifest to distinguish between
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe# the different built objects.
6f15570e3adc0faf87bf55f70857028276fc9e32wrowePKG_MACROS += LIBMILTER_BUILD_DIR=$(SM_BUILD_SUB_DIR)
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe
6f15570e3adc0faf87bf55f70857028276fc9e32wroweCLEAN_PATHS += $(FILE_DIR)/aux/mailq
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe
f4c310fd2555c6faca1f980f00b161eadb089023gstein# This appends "+Sun" to the version string, which we do for historical
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe# reasons. If we did this via patch, then we would have to revise the patch
f4c310fd2555c6faca1f980f00b161eadb089023gstein# with every new release, since the version string changes every time.
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_PREP_ACTION = $(GSED) -i -e 's/\(Version\[\] = "8\.[^"]*\)/\1+Sun/' \
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe $(COMPONENT_SRC)/sendmail/version.c
f4c310fd2555c6faca1f980f00b161eadb089023gstein
f4c310fd2555c6faca1f980f00b161eadb089023gstein# libmilter and sendmail must come before include, so appending to the default
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe# value of LINT_FLAGS will not work; we must redefine it here.
f4c310fd2555c6faca1f980f00b161eadb089023gsteinSM_DEFS= -DSOLARIS=21200
49cea03e96dc4707bce15d6318eb013cb8668d96minfrinSM_INCLUDES= -I$(SM_BUILD_DIR)/libmilter -I$(SOURCE_DIR)/sendmail \
98e9c4a310bb623ff788680f88b6bd200ff36a24wrowe -I$(SOURCE_DIR)/include -I$(SOURCE_DIR) -I.
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweLINT_FLAGS = -nsvx $(SM_DEFS) $(SM_INCLUDES)
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweCCOPTS = -erroff=E_STATEMENT_NOT_REACHED $(CC_BITS)
98e9c4a310bb623ff788680f88b6bd200ff36a24wrowe
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweCOMPONENT_BUILD_ARGS += CC="$(CC)"
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweCOMPONENT_BUILD_ARGS += CCOPTS="$(CCOPTS)"
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweCOMPONENT_BUILD_ARGS += CCLINK="$(CC)"
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweCOMPONENT_BUILD_ARGS += CC_PIC="$(CC_PIC)"
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweCOMPONENT_BUILD_ARGS += LDOPTS="$(CC_BITS)"
98e9c4a310bb623ff788680f88b6bd200ff36a24wrowe
98e9c4a310bb623ff788680f88b6bd200ff36a24wrowe# mailq's Makefile doesn't grok the 32- and 64-bit build. We just want 64.
98e9c4a310bb623ff788680f88b6bd200ff36a24wrowe# So we clean before we build, and the last build (64) wins, which is what
98e9c4a310bb623ff788680f88b6bd200ff36a24wrowe# we want.
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweCOMPONENT_POST_BUILD_ACTION = cd $(FILE_DIR)/aux ; \
98e9c4a310bb623ff788680f88b6bd200ff36a24wrowe $(GMAKE) BITS=$(BITS) clean build
98e9c4a310bb623ff788680f88b6bd200ff36a24wrowe
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweCOMPONENT_POST_INSTALL_ACTION += cd $(FILE_DIR)/aux ; $(GMAKE) install ;
98e9c4a310bb623ff788680f88b6bd200ff36a24wroweCOMPONENT_POST_INSTALL_ACTION += \
98e9c4a310bb623ff788680f88b6bd200ff36a24wrowe $(CP) $(FILE_DIR)/cf/domain/solaris-generic.m4 $(@D)/cf/domain/ ;
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_POST_INSTALL_ACTION += \
f4c310fd2555c6faca1f980f00b161eadb089023gstein $(CP) $(FILE_DIR)/cf/cf/sendmail.mc $(@D)/cf/cf/ ;
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_POST_INSTALL_ACTION += \
f4c310fd2555c6faca1f980f00b161eadb089023gstein cd $(@D)/cf/cf ; \
f4c310fd2555c6faca1f980f00b161eadb089023gstein $(RM) submit.cf ; \
f4c310fd2555c6faca1f980f00b161eadb089023gstein m4 $(M4_ARG) ../m4/cf.m4 submit.mc > submit.cf ; \
f4c310fd2555c6faca1f980f00b161eadb089023gstein m4 $(M4_ARG) ../m4/cf.m4 sendmail.mc > sendmail.cf
f4c310fd2555c6faca1f980f00b161eadb089023gstein
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_TEST_ARGS += CC="$(CC)"
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_TEST_ARGS += CCOPTS="$(CCOPTS)"
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_TEST_ARGS += CCLINK="$(CC)"
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_TEST_ARGS += CC_PIC="$(CC_PIC)"
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_TEST_ARGS += LDOPTS="$(CC_BITS)"
f4c310fd2555c6faca1f980f00b161eadb089023gstein
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_TEST_ENV += PATH=/usr/gnu/bin:/usr/bin
f4c310fd2555c6faca1f980f00b161eadb089023gstein
f4c310fd2555c6faca1f980f00b161eadb089023gstein# The transforms below abstract out the 32- or 64-bit specific parts of
f4c310fd2555c6faca1f980f00b161eadb089023gstein# the results, so we can use a common "all" master file.
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
f4c310fd2555c6faca1f980f00b161eadb089023gstein
f4c310fd2555c6faca1f980f00b161eadb089023gsteinCOMPONENT_TEST_TRANSFORMS += \
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe '-e "s|$(SM_BUILD_SUB_DIR)|\\$$(SM_BUILD_SUB_DIR)|g" ' \
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe '-e "s|$(OS_VERSION)|\\$$(OS_VERSION)|g" ' \
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe '-e "s|$(ARCH)|\\$$(ARCH)|g" ' \
f4c310fd2555c6faca1f980f00b161eadb089023gstein '-e "s|$(CC)|\\$$(CC)|g" ' \
99d46a23c6eac800f327b29f8009f7d7da986230trawick '-e "s|$(CC_BITS)|\\$$(CC_BITS)|g" '
f4c310fd2555c6faca1f980f00b161eadb089023gstein
5b03ba47ff7225cacb131f14b019332af27da960gsteinASLR_MODE = $(ASLR_ENABLE)
5b03ba47ff7225cacb131f14b019332af27da960gstein
f4c310fd2555c6faca1f980f00b161eadb089023gsteinINSTALL_64=
6f15570e3adc0faf87bf55f70857028276fc9e32wrowe
f4c310fd2555c6faca1f980f00b161eadb089023gstein# common targets
f4c310fd2555c6faca1f980f00b161eadb089023gsteinbuild: $(BUILD_32_and_64)
f4c310fd2555c6faca1f980f00b161eadb089023gstein
f4c310fd2555c6faca1f980f00b161eadb089023gsteininstall: $(INSTALL_32_and_64)
f4c310fd2555c6faca1f980f00b161eadb089023gstein
f4c310fd2555c6faca1f980f00b161eadb089023gsteintest: $(TEST_32_and_64)
f4c310fd2555c6faca1f980f00b161eadb089023gstein
49cea03e96dc4707bce15d6318eb013cb8668d96minfrinBUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
99d46a23c6eac800f327b29f8009f7d7da986230trawick
99d46a23c6eac800f327b29f8009f7d7da986230trawickinclude ../../make-rules/depend.mk
f4c310fd2555c6faca1f980f00b161eadb089023gstein