source: trunk/Makefile.am @ 2980

Last change on this file since 2980 was 2980, checked in by Peter, 9 years ago

add syntax-check rule (included in maintainer-check), add two missing config.h includes, and prefer tests named with suffix '.test'

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.2 KB
Line 
1## Process this file with automake to produce Makefile.in
2##
3
4# $Id: Makefile.am 2980 2013-02-04 07:36:57Z 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 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/$(DX_HTML_OUTPUT) test/yathello test/testSubDir
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: syntax-check mc_installcheck yat-pc-check \
97  mc_without_samtools
98
99mc_installcheck:
100  mkdir _inst
101  @mcl_install=`cd _inst && pwd` \
102  && $(MAKE) $(AM_MAKEFLAGS) clean \
103  && $(MAKE) $(AM_MAKEFLAGS) prefix=$$mcl_install \
104  && $(MAKE) $(AM_MAKEFLAGS) prefix=$$mcl_install doc \
105  && $(MAKE) $(AM_MAKEFLAGS) prefix=$$mcl_install install \
106  && $(MAKE) $(AM_MAKEFLAGS) prefix=$$mcl_install installcheck
107
108# check that yat.pc is correctly generated with different combinations
109# of ./configure; make. This target is typically used within
110# mainatiner-check; if used outside maintainer-check, please note that
111# the target calls configure possibly with other arguments, so it's
112# probably a good a idea to re-configure afterwards.
113yat-pc-check:
114  $(SHELL) $(srcdir)/configure $(DISTCHECK_CONFIGURE_FLAGS) \
115  && rm -f build_support/yat.pc && make \
116  && $(GREP) '^prefix=/usr/local' build_support/yat.pc \
117  && $(GREP) '^exec_prefix=$${prefix}' build_support/yat.pc \
118  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
119  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
120  && rm -f build_support/yat.pc && make prefix=foo \
121  && $(GREP) '^prefix=foo' build_support/yat.pc \
122  && $(GREP) '^exec_prefix=$${prefix}' build_support/yat.pc \
123  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
124  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
125  && rm -f build_support/yat.pc && make prefix=foo exec_prefix=bar \
126  && $(GREP) '^prefix=foo' build_support/yat.pc \
127  && $(GREP) '^exec_prefix=bar' build_support/yat.pc \
128  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
129  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
130  && rm -f build_support/yat.pc \
131  && make prefix=foo exec_prefix=bar libdir=baz includedir=quz \
132  && $(GREP) '^prefix=foo' build_support/yat.pc \
133  && $(GREP) '^exec_prefix=bar' build_support/yat.pc \
134  && $(GREP) '^libdir=baz' build_support/yat.pc \
135  && $(GREP) '^includedir=quz' build_support/yat.pc \
136  && $(SHELL) $(srcdir)/configure $(DISTCHECK_CONFIGURE_FLAGS) exec_prefix=/t \
137  && rm -f build_support/yat.pc && make \
138  && $(GREP) '^prefix=/usr/local' build_support/yat.pc \
139  && $(GREP) '^exec_prefix=/t' build_support/yat.pc \
140  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
141  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
142  && rm -f build_support/yat.pc && make prefix=foo \
143  && $(GREP) '^prefix=foo' build_support/yat.pc \
144  && $(GREP) '^exec_prefix=/t' build_support/yat.pc \
145  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
146  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
147  && rm -f build_support/yat.pc && make prefix=foo exec_prefix=bar \
148  && $(GREP) '^prefix=foo' build_support/yat.pc \
149  && $(GREP) '^exec_prefix=bar' build_support/yat.pc \
150  && $(GREP) '^libdir=$${exec_prefix}/lib' build_support/yat.pc \
151  && $(GREP) '^includedir=$${prefix}/include' build_support/yat.pc \
152  && rm -f build_support/yat.pc \
153  && make prefix=foo exec_prefix=bar libdir=baz includedir=quz \
154  && $(GREP) '^prefix=foo' build_support/yat.pc \
155  && $(GREP) '^exec_prefix=bar' build_support/yat.pc \
156  && $(GREP) '^libdir=baz' build_support/yat.pc \
157  && $(GREP) '^includedir=quz' build_support/yat.pc
158
159SVN = svn
160SVNCOPYRIGHT = svncopyright
161
162copyright:
163  $(SVNCOPYRIGHT) -v -r $(srcdir)
164
165svn-tag: check-version check-svn-diff
166  $(SVN) copy ^/branches/$(YAT_MAJOR_VERSION).$(YAT_MINOR_VERSION)-stable \
167  ^/tags/$(VERSION) -m "tagging version $(VERSION)"
168
169include $(srcdir)/am/maintainer.am
170
171# run within maintainer-check
172# try ./configure --without-samtools; make; make check
173mc_without_samtools:
174  @rm -rf _mc_without_samtools
175  mkdir _mc_without_samtools
176  cd _mc_without_samtools \
177  && ../$(srcdir)/configure $(DISTCHECK_CONFIGURE_FLAGS) --without-samtools \
178  && $(MAKE) $(AM_MAKEFLAGS) && $(MAKE) check $(AM_MAKEFLAGS)
179
180test_sources = $(EXTRA_PROGRAMS:.test=.cc)
181
182syntax-check: sc_config_h
183
184sc_config_h:
185  @for f in $(yat_libyat_la_SOURCES) $(test_sources); do \
186    test -e $$f || f=$(srcdir)/$$f;\
187    grep '^#include' $$f | head -n 1 | grep '<config.h>' > /dev/null || {\
188    echo "missing '#include <config>' in $$f" >&2; exit 1; \
189    } \
190  done
Note: See TracBrowser for help on using the repository browser.