Makefile revision 5566
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder#
25cc5fbba63f84b47e389af749f55abbbde71c8cChristian Maeder# CDDL HEADER START
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
25cc5fbba63f84b47e389af749f55abbbde71c8cChristian Maeder# The contents of this file are subject to the terms of the
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# Common Development and Distribution License (the "License").
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder# You may not use this file except in compliance with the License.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder#
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# or http://www.opensolaris.org/os/licensing.
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder# See the License for the specific language governing permissions
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# and limitations under the License.
d8c71aacc9f1c8cd40a8ad8dcdad9be8854b849fChristian Maeder#
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian Maeder# When distributing Covered Code, include this CDDL HEADER in each
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# If applicable, add the following below this CDDL HEADER, with the
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# fields enclosed by brackets "[]" replaced with your own identifying
d27ad22f77ca7399742b54e9dce2cdceed12d5e0Christian Maeder# information: Portions Copyright [yyyy] [name of copyright owner]
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder#
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder# CDDL HEADER END
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder#
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder#
c9acb8681bcc512245b4f0d1a9f2b189c60e10d4Christian Maeder
ce8b15da31cd181b7e90593cbbca98f47eda29d6Till Mossakowskiinclude ../../make-rules/shared-macros.mk
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCOMPONENT_NAME= sudo
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederSRC_VERSION= 1.8.15
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederSRC_PATCH_VERSION=
ac0bbbcb2774629bb87986e69cf53d3402c5f575Christian Maederifdef SRC_PATCH_VERSION
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCOMPONENT_VERSION= $(SRC_VERSION).$(SRC_PATCH_VERSION)
2e2094a642e3775b0d76b890556407941d3a53b6Christian MaederCOMPONENT_SRC= $(COMPONENT_NAME)-$(SRC_VERSION)p$(SRC_PATCH_VERSION)
2e2094a642e3775b0d76b890556407941d3a53b6Christian Maederelse
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian MaederCOMPONENT_VERSION= $(SRC_VERSION)
2e2094a642e3775b0d76b890556407941d3a53b6Christian MaederCOMPONENT_SRC= $(COMPONENT_NAME)-$(SRC_VERSION)
c0c2380bced8159ff0297ece14eba948bd236471Christian Maederendif
8410667510a76409aca9bb24ff0eda0420088274Christian MaederCOMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian MaederCOMPONENT_ARCHIVE_HASH= \
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder sha256:4316381708324da8b6cb151f655c1a11855207c7c02244d8ffdea5104d7cc308
8410667510a76409aca9bb24ff0eda0420088274Christian MaederCOMPONENT_ARCHIVE_URL= http://www.sudo.ws/sudo/dist/$(COMPONENT_ARCHIVE)
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus LuettichCOMPONENT_PROJECT_URL= http://www.sudo.ws/
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian MaederCOMPONENT_BUGDB= utility/sudo
4d56f2fa72e4aec20eb827c11ed49c8cbb7014bdChristian Maeder
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian MaederTPNO= 26593
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maeder
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maederinclude $(WS_MAKE_RULES)/prep.mk
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maederinclude $(WS_MAKE_RULES)/configure.mk
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maederinclude $(WS_MAKE_RULES)/ips.mk
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maeder
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maeder# Allows zero-sized struct/union declarations and void functions with return
d4892fa7401ceef014ea59d2d900773eaf88fcbdChristian Maeder# statements returning a value to work.
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian MaederCFLAGS += -features=extensions
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maeder
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian MaederCOMPONENT_PREP_ACTION = ( cd $(@D) ; $(AUTORECONF) -f -I m4 )
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maeder
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus LuettichCONFIGURE_ENV += "CC=$(CC)"
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCONFIGURE_ENV += "CFLAGS=$(CFLAGS)"
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCONFIGURE_ENV += "CXX=$(CXX)"
55adfe57a4de1f36adc3e3bfc16f342e44a7d444Christian MaederCONFIGURE_ENV += "MAKE=$(GMAKE)"
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCONFIGURE_ENV += "LDFLAGS=$(LDFLAGS)"
e593b89bfd4952698dc37feced21cefe869d87a2Christian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCONFIGURE_OPTIONS += --with-ldap
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCONFIGURE_OPTIONS += --with-project
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederCONFIGURE_OPTIONS += --with-rundir=/system/volatile/sudo
2e2094a642e3775b0d76b890556407941d3a53b6Christian MaederCONFIGURE_OPTIONS += --with-pam
f13d1e86e58da53680e78043e8df182eed867efbChristian MaederCONFIGURE_OPTIONS += --with-pam-login
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCONFIGURE_OPTIONS += --disable-pam-session
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCONFIGURE_OPTIONS += --with-tty-tickets
a2d6702f18737cc5fff8e8631c08f221f8375c4bChristian MaederCONFIGURE_OPTIONS += --without-insults
c6fcd42c6d6d9dae8c7835c24fcb7ce8531a9050Christian MaederCONFIGURE_OPTIONS += --without-lecture
31c49f2fa23d4ac089f35145d80a224deb6ea7e4Till MossakowskiCONFIGURE_OPTIONS += --with-ignore-dot
c55a0f77be7e88d3620b419ec8961f4379a586e3Klaus LuettichCONFIGURE_OPTIONS += --with-solaris-audit
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian MaederCONFIGURE_OPTIONS += --libexecdir=/usr/lib/sudo
9e748851c150e1022fb952bab3315e869aaf0214Christian MaederCONFIGURE_OPTIONS += "sudo_cv_var_nroff_opt_Tascii=no"
c9acb8681bcc512245b4f0d1a9f2b189c60e10d4Christian Maeder
8cacad2a09782249243b80985f28e9387019fe40Christian MaederCOMPONENT_BUILD_ENV += CC=$(CC) CXX=$(CXX)
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCOMPONENT_BUILD_ENV += "CFLAGS=$(CFLAGS)"
d3ae0072823e2ef0d41d4431fcc768e66489c20eChristian Maeder
9e748851c150e1022fb952bab3315e869aaf0214Christian MaederCOMPONENT_INSTALL_TARGETS = install
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCOMPONENT_INSTALL_ARGS += bindir=$(USRBINDIR)
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederCOMPONENT_INSTALL_ARGS += sbindir=$(USRSBINDIR)
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder# Avoid calling "chown 0" on installed files
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian MaederCOMPONENT_INSTALL_ARGS += INSTALL_OWNER=
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder# Enable aslr for this component
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian MaederASLR_MODE = $(ASLR_ENABLE)
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder# common targets
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder# 64 build corrupts audit logs because of 17561594. Until that is fixed do 32bit build.
c9acb8681bcc512245b4f0d1a9f2b189c60e10d4Christian Maederbuild: $(BUILD_32)
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maederinstall: $(INSTALL_32)
61fa0ac06ede811c7aad54ec4c4202346727368eChristian Maeder
c0c2380bced8159ff0297ece14eba948bd236471Christian MaederVISUDO=$(BUILD_DIR_32)/plugins/sudoers/visudo
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maedertest:
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder # Since linking with libmd.so (which provides sha2 capability on
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder # Solaris) is optional, we have a check here to make sure that the
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder # configure script found it correctly.
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder # http://www.sudo.ws/bugs/show_bug.cgi?id=641
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder # Make sure that sudo is NOT built with it's internal sha2 implementation
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder if [[ -n $$( elfdump -s "$(VISUDO)" | grep SHA256Init | grep -v UNDEF ) ]]; then \
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder echo "SHA256Init is not an undefined symbol in $(VISUDO)"; \
c0c2380bced8159ff0297ece14eba948bd236471Christian Maeder exit 1; \
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder fi
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder # ... but is linked with libmd instead
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder if [[ -z $$( elfdump -d "$(VISUDO)" | grep 'NEEDED .* libmd.so' ) ]]; then \
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder echo "$(VISUDO) is not linked against libmd.so"; \
4017ebc0f692820736d796af3110c3b3018c108aChristian Maeder exit 1; \
4017ebc0f692820736d796af3110c3b3018c108aChristian Maeder fi
4017ebc0f692820736d796af3110c3b3018c108aChristian Maeder
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder
6ff7a91875597d6e4dfaa68c79187d01473e8341Christian Maeder
6ff7a91875597d6e4dfaa68c79187d01473e8341Christian MaederREQUIRED_PACKAGES += library/zlib
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian MaederREQUIRED_PACKAGES += system/library
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian MaederREQUIRED_PACKAGES += system/library/security/crypto
4017ebc0f692820736d796af3110c3b3018c108aChristian Maeder