xref: /aosp_15_r20/external/elfutils/Makefile.am (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1## Process this file with automake to create Makefile.in
2## Configure input file for elfutils.
3##
4## Copyright (C) 1996-2006, 2008, 2009, 2015 Red Hat, Inc.
5##
6## This file is part of elfutils.
7##
8## This file is free software; you can redistribute it and/or modify
9## it under the terms of the GNU General Public License as published by
10## the Free Software Foundation; either version 3 of the License, or
11## (at your option) any later version.
12##
13## elfutils is distributed in the hope that it will be useful, but
14## WITHOUT ANY WARRANTY; without even the implied warranty of
15## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16## GNU General Public License for more details.
17##
18## You should have received a copy of the GNU General Public License
19## along with this program.  If not, see <http://www.gnu.org/licenses/>.
20##
21ACLOCAL_AMFLAGS = -I m4
22
23# automake already tells which subdir is being entered.
24# Don't make make repeat.
25AM_MAKEFLAGS = --no-print-directory
26
27pkginclude_HEADERS = version.h
28
29SUBDIRS = config lib libelf libcpu backends libebl libdwelf libdwfl libdw \
30	  libasm debuginfod src po doc tests
31
32EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING SECURITY \
33	     COPYING COPYING-GPLV2 COPYING-LGPLV3
34
35# Make sure the test install uses lib64 when $LIB will yield lib64.
36# Make sure the test build uses the same compiler, which on e.g. ppc64
37# determines which platform we are actually testing.
38# Run all tests under valgrind.
39AM_DISTCHECK_CONFIGURE_FLAGS = \
40	--libdir=`echo $(libdir) | sed "s,^$(exec_prefix),$$dc_install_base,"`\
41	CC="$(CC)"
42
43distcheck-hook:
44	chmod -R u+w $(distdir)
45
46rpm: dist
47	rpmbuild -ts elfutils-@PACKAGE_VERSION@.tar.bz2
48
49rpmbuild: dist
50	mkdir -p rpmbuild
51	rpmbuild -ta elfutils-@PACKAGE_VERSION@.tar.bz2 \
52		--define "_topdir $(shell pwd)/rpmbuild"
53
54if GCOV
55
56COVERAGE_OUTPUT_FILE = $(PACKAGE_NAME).lcov
57COVERAGE_OUTPUT_DIRECTORY = coverage
58COVERAGE_OUTPUT_INDEX_HTML = $(COVERAGE_OUTPUT_DIRECTORY)/index.html
59COVERAGE_TITLE = $(PACKAGE_NAME)-$(PACKAGE_VERSION)
60
61COVERAGE_DIRS = $(filter-out tests,$(SUBDIRS))
62src_COVERAGE_DIRS = $(patsubst %,$(srcdir)/%,$(COVERAGE_DIRS))
63build_COVERAGE_DIRS = $(patsubst %,$(builddir)/%,$(COVERAGE_DIRS))
64all_COVERAGE_DIRS = $(sort $(src_COVERAGE_DIRS) $(build_COVERAGE_DIRS))
65LCOV_DIRS_ARGS = $(patsubst %,--directory=%,$(all_COVERAGE_DIRS))
66
67CLEANFILES = $(COVERAGE_OUTPUT_FILE)
68
69.PHONY: coverage coverage-clean
70
71clean-local: coverage-clean
72distclean-local: coverage-clean
73
74coverage-clean:
75	-rm -rf $(COVERAGE_OUTPUT_DIRECTORY)
76
77coverage: $(COVERAGE_OUTPUT_INDEX_HTML)
78	@echo 'file://$(abs_builddir)/$(COVERAGE_OUTPUT_INDEX_HTML)'
79
80$(COVERAGE_OUTPUT_INDEX_HTML): $(COVERAGE_OUTPUT_FILE)
81	LC_ALL=C $(GENHTML) \
82		--legend \
83		--show-details \
84		--rc=genhtml_branch_coverage=1 \
85		--title='$(COVERAGE_TITLE)' \
86		--prefix='$(abspath $(abs_srcdir))' \
87		--prefix='$(realpath $(abs_srcdir))' \
88		--prefix='$(abspath $(abs_builddir)/..)' \
89		--prefix='$(realpath $(abs_builddir)/..)' \
90		--output-directory='$(COVERAGE_OUTPUT_DIRECTORY)' \
91		$<
92
93$(COVERAGE_OUTPUT_FILE):
94	$(LCOV) \
95		--capture \
96		--no-external \
97		--no-checksum \
98		--rc=lcov_branch_coverage=1 \
99		--gcov-tool='$(GCOV)' \
100		--output-file='$@' \
101		$(LCOV_DIRS_ARGS)
102
103endif
104
105# Tell version 3.79 and up of GNU make to not build goals in this
106# directory in parallel.
107.NOTPARALLEL:
108