source: trunk/Makefile.am @ 4326

Last change on this file since 4326 was 4326, checked in by Peter, 7 months ago

We had two macros with very similar behaviour: YAT_AC_APPEND in
'yat_svn_release' and private macro _YAT_AC_APPEND_TO_FILE. Replace
with new macro YAT_AC_APPEND_TO_FILE with tested and documented
behaviour. Similarly a macro YAT_AC_WRITE_TO_FILE.

Introduce a new macro YAT_AM_LOCAL, which is recommended to use when
using any of the macros generating automake input.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.8 KB
Line 
1## Process this file with automake to produce Makefile.in
2##
3
4# $Id: Makefile.am 4326 2023-03-12 00:37:24Z peter $
5#
6# Copyright (C) 2003 Daniel Dalevi, Jari Häkkinen
7# Copyright (C) 2005 Peter Johansson
8# Copyright (C) 2006 Jari Häkkinen
9# Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
10# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2020 Peter Johansson
11#
12# This file is part of the yat library, http://dev.thep.lu.se/yat
13#
14# The yat library is free software; you can redistribute it and/or
15# modify it under the terms of the GNU General Public License as
16# published by the Free Software Foundation; either version 3 of the
17# License, or (at your option) any later version.
18#
19# The yat library is distributed in the hope that it will be useful,
20# but WITHOUT ANY WARRANTY; without even the implied warranty of
21# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22# General Public License for more details.
23#
24# You should have received a copy of the GNU General Public License
25# along with yat. If not, see <http://www.gnu.org/licenses/>.
26
27# -I arg should be the same as arg in AC_CONFIG_MACRO_DIR in configure.ac
28ACLOCAL_AMFLAGS = -I m4
29
30CLEANFILES =
31DOXYGEN_INPUT =
32EXTRA_DIST =
33MOSTLYCLEANFILES =
34## append targets to this variable for tests included in 'make installcheck'
35INSTALL_CHECK_TARGETS =
36
37FORCE:
38
39## variable to used to switch between verbose output and silence
40## yat_dev_null expands to empty string in verbose mode and to >
41## /dev/null in silent mode, so 'echo hello $(yat_dev_null)' will
42## display hello in verbose mode and being silent in silent mode.
43yat_dev_null = $(yat_dev_null_$(V))
44yat_dev_null_ = $(yat_dev_null_$(AM_DEFAULT_VERBOSITY))
45yat_dev_null_0 = > /dev/null
46
47include build_support/Makefile.am
48## yat/Makefile.am contains DOXYGEN definitions, so needs to be
49## included before doc/Makefile
50include yat/Makefile.am
51include doc/Makefile.am
52include m4/Makefile.am
53include test/Makefile.am
54
55EXTRA_DIST += doc/Makefile
56EXTRA_DIST += test/Makefile
57EXTRA_DIST += yat/random/Makefile
58EXTRA_DIST += yat/regression/Makefile
59EXTRA_DIST += yat/normalizer/Makefile
60EXTRA_DIST += yat/classifier/Makefile
61EXTRA_DIST += yat/omic/Makefile
62EXTRA_DIST += yat/statistics/Makefile
63EXTRA_DIST += yat/utility/Makefile
64EXTRA_DIST += yat/Makefile
65
66clean-local:
67  rm -rf doc/html test/yathello test/testSubDir test/lib
68
69installcheck-local: $(INSTALL_CHECK_TARGETS)
70
71.PHONY: doc maintainer-check news-check svn-check svn-clean release
72
73# like the normal install target, but does not update header files
74# (and their time stamps) if the content did not change.
75install-modified:
76  $(MAKE) install $(AM_MAKEFLAGS) INSTALL_HEADER="$(install_sh_DATA) -C"
77
78###############################################################
79##
80## Some targets useful for the maintainer
81##
82MAINTAINER_CHECK_LOCAL = maintainer-check-local
83RELEASE_LOCAL = ltversion-check
84
85.PHONY: maintainer-check-local ltversion-check
86
87ltversion-check:
88  @case `sed 200q $(srcdir)/m4/version.m4` in \
89  *yat-$(VERSION)*$(YAT_LT_VERSION)*);; \
90  *) \
91    echo "version.m4: YAT_LT_VERSION not updated;" 1>&2;\
92    echo "  expected to find 'yat-$(VERSION)  $(YAT_LT_VERSION)'" 1>&2;\
93    exit 1;; \
94  esac
95
96maintainer-check-local:
97  $(MAKE) $(AM_MAKEFLAGS) mc_installcheck
98  $(MAKE) $(AM_MAKEFLAGS) mc_without_htslib
99  $(MAKE) $(AM_MAKEFLAGS) yat-pc-check
100
101mc_installcheck:
102  mkdir _inst
103  @mcl_install=`cd _inst && pwd` \
104  && $(MAKE) $(AM_MAKEFLAGS) clean \
105  && $(MAKE) $(AM_MAKEFLAGS) prefix=$$mcl_install \
106  && $(MAKE) $(AM_MAKEFLAGS) prefix=$$mcl_install doc \
107  && $(MAKE) $(AM_MAKEFLAGS) prefix=$$mcl_install install \
108  && $(MAKE) $(AM_MAKEFLAGS) prefix=$$mcl_install installcheck
109
110# check that yat.pc is correctly generated with different combinations
111# of ./configure; make. This target is typically used within
112# mainatiner-check; if used outside maintainer-check, please note that
113# the target calls configure possibly with other arguments, so it's
114# probably a good a idea to re-configure afterwards.
115yat-pc-check:
116  $(SHELL) $(srcdir)/configure $(DISTCHECK_CONFIGURE_FLAGS) \
117  && rm -f build_support/yat.pc && $(MAKE) $(AM_MAKEFLAGS) \
118  && $(GREP) '^prefix=/usr/local' build_support/yat.pc \
119  && $(GREP) '^exec_prefix=$${prefix}' build_support/yat.pc \
120  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
121  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
122  && rm -f build_support/yat.pc && $(MAKE) $(AM_MAKEFLAGS) prefix=foo \
123  && $(GREP) '^prefix=foo' build_support/yat.pc \
124  && $(GREP) '^exec_prefix=$${prefix}' build_support/yat.pc \
125  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
126  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
127  && rm -f build_support/yat.pc \
128  && $(MAKE) $(AM_MAKEFLAGS) prefix=foo exec_prefix=bar \
129  && $(GREP) '^prefix=foo' build_support/yat.pc \
130  && $(GREP) '^exec_prefix=bar' build_support/yat.pc \
131  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
132  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
133  && rm -f build_support/yat.pc \
134  && $(MAKE) $(AM_MAKEFLAGS) prefix=foo exec_prefix=bar libdir=baz includedir=quz \
135  && $(GREP) '^prefix=foo' build_support/yat.pc \
136  && $(GREP) '^exec_prefix=bar' build_support/yat.pc \
137  && $(GREP) '^libdir=baz' build_support/yat.pc \
138  && $(GREP) '^includedir=quz' build_support/yat.pc \
139  && $(SHELL) $(srcdir)/configure $(DISTCHECK_CONFIGURE_FLAGS) exec_prefix=/t \
140  && rm -f build_support/yat.pc && $(MAKE) $(AM_MAKEFLAGS) \
141  && $(GREP) '^prefix=/usr/local' build_support/yat.pc \
142  && $(GREP) '^exec_prefix=/t' build_support/yat.pc \
143  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
144  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
145  && rm -f build_support/yat.pc && $(MAKE) $(AM_MAKEFLAGS) prefix=foo \
146  && $(GREP) '^prefix=foo' build_support/yat.pc \
147  && $(GREP) '^exec_prefix=/t' build_support/yat.pc \
148  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
149  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
150  && rm -f build_support/yat.pc \
151  && $(MAKE) $(AM_MAKEFLAGS) prefix=foo exec_prefix=bar \
152  && $(GREP) '^prefix=foo' build_support/yat.pc \
153  && $(GREP) '^exec_prefix=bar' build_support/yat.pc \
154  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
155  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
156  && rm -f build_support/yat.pc \
157  && $(MAKE) $(AM_MAKEFLAGS) prefix=foo exec_prefix=bar libdir=baz includedir=quz \
158  && $(GREP) '^prefix=foo' build_support/yat.pc \
159  && $(GREP) '^exec_prefix=bar' build_support/yat.pc \
160  && $(GREP) '^libdir=baz' build_support/yat.pc \
161  && $(GREP) '^includedir=quz' build_support/yat.pc
162
163include yat_am_local.am
164
165# run within maintainer-check
166# try ./configure --without-htslib; make; make check
167mc_without_htslib:
168  @rm -rf _mc_without_htslib
169  mkdir _mc_without_htslib
170  cd _mc_without_htslib \
171  && ../$(srcdir)/configure $(DISTCHECK_CONFIGURE_FLAGS) --without-htslib \
172  && $(MAKE) $(AM_MAKEFLAGS) && $(MAKE) check $(AM_MAKEFLAGS)
Note: See TracBrowser for help on using the repository browser.