Files
freebsd/Makefile.am
T
Enji Cooper 0c9bf043d6 vendor/atf: import atf-0.24-rc1
This release candidate will likely serve as the actual upstream
release tag for version 0.24, but for now it should be considered a
release-candidate worthy tag as this code has not gone through a full
FreeBSD test suite run or been built with `make tinderbox` yet on all
supported architectures.

Obtained from:		https://github.com/freebsd/atf/releases/tag/atf-0.24-rc1
2026-08-17 02:41:49 -07:00

164 lines
4.9 KiB
Makefile

# Copyright (c) 2007 The NetBSD Foundation, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
atf_aclocal_DATA =
BUILT_SOURCES =
CLEANFILES =
CODE_COVERAGE_DIRS =
EXTRA_DIST =
bin_PROGRAMS =
dist_man_MANS =
include_HEADERS =
lib_LTLIBRARIES =
libexec_PROGRAMS =
man_MANS =
noinst_DATA =
noinst_LTLIBRARIES =
INSTALLCHECK_TARGETS =
PHONY_TARGETS =
ACLOCAL_AMFLAGS = -I m4
include admin/Makefile.am.inc
include atf-c/Makefile.am.inc
include atf-c++/Makefile.am.inc
include atf-sh/Makefile.am.inc
include bootstrap/Makefile.am.inc
include doc/Makefile.am.inc
include test-programs/Makefile.am.inc
#
# Top-level distfile documents.
#
doc_DATA = AUTHORS COPYING NEWS README.md
noinst_DATA += INSTALL.md README.md
EXTRA_DIST += $(doc_DATA) INSTALL.md README.md
#
# Supporting logic to run our custom testsuite.
#
TESTS_ENVIRONMENT = PATH=$(prefix)/bin:$${PATH} \
PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig
if HAVE_ASAN
# NB: the trailing comma is intentional. I hate automake not allowing `:=` use on subsequent lines.
if HAVE_LSAN
LSAN_OPTIONS = detect_leaks=1,
else
LSAN_OPTIONS =
endif
# Some of the testcases trigger false positives as they pass
# `SIZE_MAX - 1`, etc, to malloc(3).
ASAN_OPTIONS = ${LSAN_OPTIONS}allocator_may_return_null=1
TESTS_ENVIRONMENT+= ASAN_OPTIONS=${ASAN_OPTIONS}
endif
if HAVE_UBSAN
TESTS_ENVIRONMENT+= UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1
endif
# Allow the caller to override the configuration file to passed to our
# test runs below.
KYUA_TEST_CONFIG_FILE = none
testsdir = $(exec_prefix)/tests
pkgtestsdir = $(testsdir)/$(PACKAGE)
PHONY_TARGETS += installcheck-kyua
if HAVE_KYUA
INSTALLCHECK_TARGETS += installcheck-kyua
installcheck-kyua:
set +e; cd $(pkgtestsdir) && $(TESTS_ENVIRONMENT) \
$(KYUA) --config='$(KYUA_TEST_CONFIG_FILE)' test; \
ret=$$?; \
echo $$ret; \
if [ -n "$$JUNIT_OUTPUT" ]; then \
cd $(pkgtestsdir) && $(TESTS_ENVIRONMENT) \
$(KYUA) --config='$(KYUA_TEST_CONFIG_FILE)' \
report-junit --output="$$JUNIT_OUTPUT"; \
sed -i '.orig' 's/encoding="iso-8859-1"/encoding="utf-8"/' "$$JUNIT_OUTPUT"; \
rm -f "$$JUNIT_OUTPUT.orig"; \
fi; \
cd $(pkgtestsdir) && $(TESTS_ENVIRONMENT) \
$(KYUA) --config='$(KYUA_TEST_CONFIG_FILE)' report --verbose; \
exit $$ret
if CODE_COVERAGE
CODE_COVERAGE_EXCLUDES = '/usr/include/*' '/usr/local/include/*'
CODE_COVERAGE_OUTPUT_DIR ?= code_coverage
EXTRA_GENHTML_ARGS ?=
INSTALLCHECK_TARGETS+= installcheck-kyua-lcov
installcheck-kyua-lcov: installcheck-kyua
mkdir -p $(CODE_COVERAGE_OUTPUT_DIR)/html
$(LCOV) --capture --directory $(srcdir) \
--output-file $(CODE_COVERAGE_OUTPUT_DIR)/lcov.info
$(LCOV) --remove $(CODE_COVERAGE_OUTPUT_DIR)/lcov.info \
$(CODE_COVERAGE_EXCLUDES) \
--output-file $(CODE_COVERAGE_OUTPUT_DIR)/lcov-filtered.info
$(GENHTML) -o $(CODE_COVERAGE_OUTPUT_DIR)/html $(EXTRA_GENHTML_ARGS) \
$(CODE_COVERAGE_OUTPUT_DIR)/lcov-filtered.info
endif
endif
if CODE_COVERAGE
PHONY_TARGETS += mostlyclean-code-coverage
mostlyclean-local: mostlyclean-code-coverage
mostlyclean-code-coverage:
-for dir in $(CODE_COVERAGE_DIRS); do \
find $$dir \( -name \*.gcda -or -name \*.gcno \) -delete -print; \
done
endif
installcheck-local: $(INSTALLCHECK_TARGETS)
pkgtests_DATA = Kyuafile
EXTRA_DIST += $(pkgtests_DATA)
BUILD_SH_TP = \
test -d "$$(dirname "$${dst}")" || mkdir -p "$$(dirname "$${dst}")"; \
echo "\#! $(bindir)/atf-sh" >"$${dst}"; \
if [ -n "$${substs}" ]; then \
cat $${src} | sed $${substs} >>"$${dst}"; \
else \
cat $${src} >>"$${dst}"; \
fi; \
chmod +x "$${dst}"
#
# Custom targets.
#
PHONY_TARGETS += clean-all
clean-all:
GIT="$(GIT)" $(SH) $(srcdir)/admin/clean-all.sh
.PHONY: $(PHONY_TARGETS)
# vim: syntax=make:noexpandtab:shiftwidth=8:softtabstop=8