Makefile.am 4.28 KB
Newer Older
Evan Hunt's avatar
Evan Hunt committed
1
# Copyright (c) 2007 The NetBSD Foundation, Inc.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
# 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.

Evan Hunt's avatar
Evan Hunt committed
26
atf_aclocal_DATA =
27 28
BUILT_SOURCES =
CLEANFILES =
29
DIST_HOOKS =
30 31 32 33 34 35 36 37 38
EXTRA_DIST =
bin_PROGRAMS =
dist_man_MANS =
include_HEADERS =
lib_LTLIBRARIES =
libexec_PROGRAMS =
man_MANS =
noinst_DATA =
noinst_LTLIBRARIES =
Evan Hunt's avatar
Evan Hunt committed
39 40
INSTALLCHECK_TARGETS =
PHONY_TARGETS =
41 42

ACLOCAL_AMFLAGS = -I m4
Evan Hunt's avatar
Evan Hunt committed
43
AM_DISTCHECK_CONFIGURE_FLAGS = --enable-tools
44 45 46 47 48 49 50 51 52

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

Evan Hunt's avatar
Evan Hunt committed
53
if ENABLE_TOOLS
54
include tools/Makefile.am.inc
Evan Hunt's avatar
Evan Hunt committed
55 56
endif

57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
#
# Top-level distfile documents.
#

doc_DATA = AUTHORS COPYING NEWS README
noinst_DATA += INSTALL README
EXTRA_DIST += $(doc_DATA) INSTALL README

#
# Supporting logic to run our custom testsuite.
#

TESTS_ENVIRONMENT = PATH=$(prefix)/bin:$${PATH} \
                    PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig

72 73 74 75
# Allow the caller to override the configuration file to passed to our
# test runs below.
KYUA_TEST_CONFIG_FILE = none

76
testsdir = $(exec_prefix)/tests
Evan Hunt's avatar
Evan Hunt committed
77
pkgtestsdir = $(testsdir)/$(PACKAGE)
78

Evan Hunt's avatar
Evan Hunt committed
79 80 81
if ENABLE_TOOLS
INSTALLCHECK_TARGETS += installcheck-atf
PHONY_TARGETS += installcheck-atf
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
installcheck-atf:
	logfile=$$(pwd)/installcheck.log; \
	fifofile=$$(pwd)/installcheck.fifo; \
	cd $(pkgtestsdir); \
	rm -f $${fifofile}; \
	mkfifo $${fifofile}; \
	cat $${fifofile} | tee $${logfile} | $(TESTS_ENVIRONMENT) atf-report & \
	$(TESTS_ENVIRONMENT) atf-run >>$${fifofile}; \
	res=$${?}; \
	wait; \
	rm $${fifofile}; \
	echo; \
	echo "The verbatim output of atf-run has been saved to" \
	     "installcheck.log; exit was $${res}"; \
	test $${res} -eq 0
CLEANFILES += installcheck.fifo installcheck.log
Evan Hunt's avatar
Evan Hunt committed
98 99 100 101 102 103 104 105
endif

PHONY_TARGETS += installcheck-kyua
if HAVE_KYUA
if !ENABLE_TOOLS
INSTALLCHECK_TARGETS += installcheck-kyua
endif
installcheck-kyua:
106 107
	cd $(pkgtestsdir) && $(TESTS_ENVIRONMENT) \
	    $(KYUA) --config='$(KYUA_TEST_CONFIG_FILE)' test
Evan Hunt's avatar
Evan Hunt committed
108 109 110 111 112 113 114 115
endif

installcheck-local: $(INSTALLCHECK_TARGETS)

pkgtests_DATA = Kyuafile
if ENABLE_TOOLS
pkgtests_DATA += Atffile
endif
116 117 118
EXTRA_DIST += $(pkgtests_DATA)

BUILD_SH_TP = \
119 120 121 122 123 124 125 126
	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}"
127 128 129 130 131

#
# Custom targets.
#

132
DIST_HOOKS += forbid-dist
Evan Hunt's avatar
Evan Hunt committed
133 134 135 136 137 138 139 140 141 142 143
if ENABLE_TOOLS
forbid-dist:
	@true
else
forbid-dist:
	@echo "Sorry; cannot make dist without the tools enabled."
	@echo "Please reconfigure with --enable-tools."
	@false
endif

PHONY_TARGETS += clean-all
144
clean-all:
Evan Hunt's avatar
Evan Hunt committed
145
	GIT="$(GIT)" $(SH) $(srcdir)/admin/clean-all.sh
146

147
.PHONY: $(PHONY_TARGETS)
148

149 150 151 152 153 154 155
# TODO(jmmv): Remove after atf 0.22.
install-data-hook:
	cd $(DESTDIR)$(man3dir) && \
	for binding in c c++ sh; do \
	    rm -f "atf-$${binding}-api.3"; \
	    $(LN_S) "atf-$${binding}.3" "atf-$${binding}-api.3"; \
	done
156

157
dist-hook: $(DIST_HOOKS)
Evan Hunt's avatar
Evan Hunt committed
158

159
# vim: syntax=make:noexpandtab:shiftwidth=8:softtabstop=8