-
Notifications
You must be signed in to change notification settings - Fork 2
/
Makefile.am
114 lines (90 loc) · 3.45 KB
/
Makefile.am
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
## Process this file with automake to produce Makefile.in
ACLOCAL_AMFLAGS = -I m4
AUTOMAKE_OPTIONS = foreign
# Build in these directories:
SUBDIRS = gnulib esio examples apps tests doxygen
# Distribute these items:
DIST_SUBDIRS = gnulib esio examples tests apps doxygen
EXTRA_DIST = # bootstrap not to be distributed in tarballs
EXTRA_DIST += $(DX_CONFIG)
EXTRA_DIST += build-aux/sfmakedepend.pl
EXTRA_DIST += build-aux/update_license.pl
EXTRA_DIST += m4/gnulib-cache.m4
dist-hook: docs
: # Include generated documentation in the dist tarball
cp -r $(top_builddir)/docs $(top_distdir)
: # Eliminate .git and .svn directories in dist tarball
find $(distdir)/ -name '.svn' -type d -exec rm {} \;
find $(distdir)/ -name '.git' -type d -exec rm {} \;
# Tools in the auxillary directory
AUX_DIST = build-aux/install-sh
AUX_DIST += build-aux/mkinstalldirs
AUX_DIST += build-aux/missing
# Support for pkgconfig
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = esio.pc esio-hdf5.pc
# Install selected manual pages when Doxygen man output is enabled
if DX_COND_man
BUILT_SOURCES = @DX_DOCDIR@/man/man3/esio.h.3
@DX_DOCDIR@/man/man3/esio.h.3: esio/esio.h
$(MAKE) $(AM_MAKEFLAGS) doxygen-doc
man3_MANS = @DX_DOCDIR@/man/man3/esio.h.3
endif DX_COND_man
# Files to be deleted by make clean variants
MOSTLYCLEANFILES = $(DX_CLEANFILES)
DISTCLEANFILES = \
aminclude.am \
_configs.sed \
esio/esio-config.h \
*__genmod.*
MAINTAINERCLEANFILES = \
aclocal.m4 \
autom4te.cache/* \
$(AUX_DIST) \
config.log \
config.status \
config.sub \
configure \
Makefile.in \
src/config.h.in \
src/Makefile.in \
src/stamp.h.in
# Additional tasks run with the 'all' target
all-local: libtool
# Documentation hooks in with the 'html' target
html-local: doxygen-run
# Target for all documentation
docs: doxygen-run
# Target to build test-related programs within tests subdirectory
check-programs: all
cd tests && $(MAKE) $(AM_MAKEFLAGS) check-programs
# -------------------------------------------
# Optional support for code coverage analysis
# -------------------------------------------
if CODE_COVERAGE_ENABLED
lcov_dir=$(top_builddir)/docs/html/lcov
# General philosophy is to maintain code coverage for the
# base library as generated by "make check" tests.
lcov-report:
@mkdir -p $(lcov_dir)
$(top_srcdir)/lcov/lcov --compat-libtool --directory . --capture --output-file $(lcov_dir)/lcov.info
$(top_srcdir)/lcov/lcov --list-full-path -l $(lcov_dir)/lcov.info | grep -v "`cd -P $(top_srcdir)/esio && pwd`" | cut -d\| -f1 > $(lcov_dir)/remove
$(top_srcdir)/lcov/lcov -q -r $(lcov_dir)/lcov.info `cat $(lcov_dir)/remove` > $(lcov_dir)/lcov.cleaned.info
@rm $(lcov_dir)/remove
@mv $(lcov_dir)/lcov.cleaned.info $(lcov_dir)/lcov.info
$(top_srcdir)/lcov/genhtml -t "ESIO" -o $(lcov_dir) $(lcov_dir)/lcov.info
lcov-reset:
@rm -rf $(lcov_dir)
@find . -name "*.gcda" -exec rm {} \;
$(top_srcdir)/lcov/lcov --directory . --zerocounters
coverage: docs lcov-reset check lcov-report
endif
# Push license updates into appropriate subdirectories
.license.stamp:
cd esio && $(MAKE) $(AM_MAKEFLAGS) .license.stamp
cd tests && $(MAKE) $(AM_MAKEFLAGS) .license.stamp
cd apps && $(MAKE) $(AM_MAKEFLAGS) .license.stamp
# Required for AX_PROG_DOXYGEN
include doxygen/doxygen.am
# Required for AX_AM_MACROS
@INC_AMINCLUDE@