Makefile revision 2899
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# CDDL HEADER START
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# The contents of this file are subject to the terms of the
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# Common Development and Distribution License (the "License").
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# You may not use this file except in compliance with the License.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# or http://www.opensolaris.org/os/licensing.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# See the License for the specific language governing permissions
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# and limitations under the License.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
7b1753e64ab6c8c68e7cd79acbedfdfba12bd7f8John Wren Kennedy# When distributing Covered Code, include this CDDL HEADER in each
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# If applicable, add the following below this CDDL HEADER, with the
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# fields enclosed by brackets "[]" replaced with your own identifying
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# information: Portions Copyright [yyyy] [name of copyright owner]
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# CDDL HEADER END
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
7b1753e64ab6c8c68e7cd79acbedfdfba12bd7f8John Wren Kennedyinclude ../../make-rules/shared-macros.mk
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCOMPONENT_NAME= bind
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCOMPONENT_VERSION= 9.6-ESV-R11
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyIPS_COMPONENT_VERSION= 9.6.3.11.0
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCOMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCOMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCOMPONENT_PROJECT_URL= http://www.isc.org/software/bind/
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# hash from: sha256sum $(COMPONENT_ARCHIVE) | sed 's/\(.[^ ]*\).*/sha256:\1/'
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCOMPONENT_ARCHIVE_HASH= \
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy sha256:4f052195a62218c05a05033774452e6a9e329b865c01e594cc20a6adf11e0d0f
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCOMPONENT_ARCHIVE_URL= \
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy http://ftp.isc.org/isc/bind9/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCOMPONENT_BUGDB= service/dns-server
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyTPNO= 16931
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyinclude ../../make-rules/prep.mk
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyinclude ../../make-rules/configure.mk
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyinclude ../../make-rules/ips.mk
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# Build.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# FYI, The configure options are displayed by 'named -V'. Previously
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# that was overriden by setting CONFIGARGS to hide build server
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# pathnames.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# Traditionally all BIND executables are installed in sbin not bin.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# DNS libraries are in usr/lib/dns - Override settings from configure.mk
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_BINDIR.32 = $(CONFIGURE_PREFIX)/sbin
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_LIBDIR.32 = $(CONFIGURE_PREFIX)/lib/dns
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --with-libtool
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --sbindir=$(CONFIGURE_BINDIR.$(BITS))
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --sysconfdir=/etc
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --localstatedir=/var
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --with-openssl
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --enable-threads=yes
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --enable-devpoll=yes
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --disable-openssl-version-check
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --enable-fixed-rrset
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyCONFIGURE_OPTIONS += --with-pkcs11
# Bind configure will check for libxml2 versions 2.6.x/2.7.x/2.8.x.
# To make it use version 2.9.x we need to skip this check by
# specifying path where libxml2 is installed.
CONFIGURE_OPTIONS += --with-libxml2=/usr
CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
# Configure will add "-mt" to CC which is already set in CFLAGS, so override.
CONFIGURE_OPTIONS += CC="$(CC)"
# Enable ASLR for this component
ASLR_MODE = $(ASLR_ENABLE)
.PHONY: build
build: $(BUILD_32)
include ../../make-rules/shared-targets.mk
# Install.
#
# Currently manual pages are distributed from pkg:/system/manual@.
# While there are some changes in our manuals, for example section
# numbering and additions to named(1M) for SMF - that could be fixed
# by patch.
#
# In addition to BIND deliverables we also deliver SMF files and
# migration notes. There is no need to install these extras into the
# prototype directory, they are simply referenced in relevant manifest
# (p5m) file.
.PHONY: install
install: $(INSTALL_32)
# Testing.
#
# sumarize nawk script; reads ISC output which is of the form:
# /^T:/ = Start of a test.
# /^I:/ = Info from a test; colleced for possible use later.
# /^A:/ = About: summary of the test - not used here.
# /^R:/ = Result: If 'PASS' then continue, else print line and collected info.
# Known issues may then be accounted for by adding tests, for example:
# /^R:UNTESTED/ && name ~ /^T:dst:2:A/ {known++;}\
# /^R:UNRESOLVED/ && name ~ /^T:dst:1:A/ {known++;}\
# @ EOF = Display count of RESULTS: i.e. R:PASS=124 R:UNTESTED=26 Total=150
# if not 100% pass rate and issue is not known the word 'issues!' is appended
# to resulting string.
summarize= '\
/^T:/ {name=$$0;info="";}\
/^I:/ {info=sprintf("%s%s\n", info, $$0);}\
/^R:/ {test++; result[$$1]++;}\
/^R:PASS/ {next;}\
/^R:/ {printf("%s: %s\n%s\n", $$1, name, info);}\
END{for (item in result)\
printf("%s=%d ", item, result[item]);\
printf("(known=%d) Total=%d%s\n", known, test, \
((result["R:PASS"] + known) < test)? \
" issues!" : "");\
}'
isc_ifconfig= ./bin/tests/system/ifconfig.sh
.PHONY: test
test: build $(TEST_32)
# fulltest requires sufficient privileges to configures IP addresses
# 10.53.0.1 through 10.53.0.5 as aliases on the loopback interface.
# Note PATH is being set so that isc_ifconfig can find ifconfig.
FULL_TEST_32= $(TEST_32:%=%_FULL)
.PHONY: fulltest
fulltest: build $(FULL_TEST_32)
$(FULL_TEST_32):
cd $(COMPONENT_SRC) && PATH=/sbin:$(PATH) $(SHELL) $(isc_ifconfig) up
-cd $(@D) && $(MAKE) test 2>&1 | $(TEE) $@
-cd $(COMPONENT_SRC) && PATH=/sbin:$(PATH) $(SHELL) $(isc_ifconfig) down
$(NAWK) $(summarize) $@
$(TEST_32):
-cd $(@D) && $(MAKE) force-test 2>&1 | $(TEE) $@
$(NAWK) $(summarize) $@
# test-summary shows summary for targets test and fulltest. Use target
# test-clean to remove previous tests.
.PHONY: test-summary
test-summary:
@for file in $(TEST_32)*; do \
if [ -f $$file ]; then \
echo 'Summary for' $$file;\
$(NAWK) $(summarize) $$file;\
fi;\
done
.PHONY: test-version
test-version:
@echo;echo 32 bit version
-LD_LIBRARY_PATH=$(PROTO_DIR)$(CONFIGURE_LIBDIR.32) \
$(PROTO_DIR)$(CONFIGURE_BINDIR.32)/named -V
.PHONY: test-clean
test-clean:
$(RM) $(TEST_32) $(FULL_TEST_32)
BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
include ../../make-rules/depend.mk