source: trunk/Makefile.am @ 1452

Last change on this file since 1452 was 1452, checked in by Peter Johansson, 10 years ago

include syntax-check in maintainer-check and thereby in release procedure

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 4.5 KB
Line 
1## Process this file with automake to produce Makefile.in
2##
3## $Id: Makefile.am 1452 2011-12-23 02:30:00Z peter $
4
5# Copyright (C) 2005, 2006 Jari Häkkinen
6# Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
7# Copyright (C) 2009, 2010, 2011 Peter Johansson
8#
9# This file is part of svndigest, http://dev.thep.lu.se/svndigest
10#
11# svndigest is free software; you can redistribute it and/or modify it
12# under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 3 of the License, or
14# (at your option) any later version.
15#
16# svndigest is distributed in the hope that it will be useful, but
17# WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19# General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with svndigest. If not, see <http://www.gnu.org/licenses/>.
23
24# -I arg should be the same as arg in AC_CONFIG_MACRO_DIR in configure.ac
25ACLOCAL_AMFLAGS = -I m4
26
27SUBDIRS = yat lib bin man test
28
29
30lazycheck recheck: all
31  cd test && $(MAKE) $(AM_MAKEFLAGS) $@
32
33clean-local:
34  rm -rf svndigest *~
35
36.PHONY: recheck
37
38## need to declare these variables here so they can be appended below
39BUILT_SOURCES =
40CLEANFILES =
41CONFIG_STATUS_DEPENDENCIES =
42DISTCLEANFILES =
43EXTRA_DIST =
44
45include $(top_srcdir)/svn_revision.am
46include $(top_srcdir)/svn_revision_header.am
47
48include $(top_srcdir)/svn_release_year.am
49
50##############################################################
51##
52## Some rules useful for maintainer
53##
54
55include $(srcdir)/maintainer.am
56
57# called within maintainer-check
58## We do wanna run all tests here since test repository is not
59## included in tarball, and thus some tests are skipped in distcheck.
60MAINTAINER_CHECK_LOCAL = check
61## syntax-check called within maintainer-check
62MAINTAINER_CHECK_LOCAL += syntax-check
63# extra check in release rule
64RELEASE_LOCAL = check-svn_revision check-readme
65
66.PHONY: check-svn_revision
67
68FORCE:
69
70check-svn_revision:
71  @$(SVNVERSION) | $(EGREP) '^[0-9]+$$' || \
72  { echo incorrect svn revision - expected single unmodified revision 1>&2; \
73    exit 1; }
74
75check-readme:
76  (ver_am=1.11\
77  && $(GREP) "AM_INIT_AUTOMAKE.*$$ver_am" $(srcdir)/configure.ac \
78  && $(GREP) "Automake $$ver_am" $(srcdir)/README.developer)>/dev/null || exit 1
79  (ver_ac=2.63\
80  && $(GREP) "AC_PREREQ.*$$ver_ac" $(srcdir)/configure.ac \
81  && $(GREP) "Autoconf $$ver_ac" $(srcdir)/README.developer)>/dev/null || exit 1
82
83
84
85# run in end of release target
86RELEASE_HOOK = build_support/Portfile.diff
87
88macport_url = http://svn.macports.org/repository/macports/trunk/dports/devel/svndigest
89
90build_support/Portfile.diff: build_support/Portfile FORCE
91  test -e build_support/macport \
92  || svn co $(macport_url) build_support/macport
93  svn revert -R build_support/macport
94  svn update build_support/macport
95  cp build_support/Portfile build_support/macport/Portfile
96  svn diff build_support/macport/Portfile > $@
97  svn revert build_support/macport/Portfile
98
99edit = $(SED) \
100  -e 's|@PACKAGE_URL[@]|$(PACKAGE_URL)|g' \
101  -e 's|@VERSION[@]|$(VERSION)|g'
102
103build_support/Portfile: $(distdir).tar.gz Makefile build_support/Portfile.in
104  @rm -f $@ $@.t
105  @openssl version > /dev/null || exit 1
106  @openssl sha1 $(distdir).tar.gz > $(distdir).tar.gz.sha1
107  @openssl rmd160 $(distdir).tar.gz > $(distdir).tar.gz.rmd160
108  @sha1=`cut -f 2 -d ' ' $(distdir).tar.gz.sha1`;\
109  rmd160=`cut -f 2 -d ' ' $(distdir).tar.gz.rmd160`;\
110  $(edit) -e "s|@SHA1SUM[@]|$$sha1|g" -e "s|@RMD160SUM[@]|$$rmd160|g" \
111  '$(srcdir)/build_support/Portfile.in' > $@.t
112  @chmod a-w $@.t
113  @mv $@.t $@
114  @echo "creating $@"
115
116# create a tag from current stable branch; depends on check-version to
117# ensure that version is macro.minor.micro (no pre suffix), that wc is
118# pristine and updated.
119svn-tag: check-version check-svn-diff
120  svn copy \
121  ^/branches/$(SVNDIGEST_MAJOR_VERSION).$(SVNDIGEST_MINOR_VERSION)-stable\
122  ^/tags/$(VERSION) -m "tagging version $(VERSION)"
123
124syntax-check: assert-header-without-use \
125  assert-without-header \
126  errno-header-without-use
127
128assert-header-without-use:
129  @files=`grep -l "^#include *<cassert>" $(srcdir)/*/*.cc`;\
130  grep -L "assert *(" $$files | grep $(srcdir) && \
131  { echo "$@: in files listed above"; exit 1; } || :;
132
133assert-without-header:
134  @files=`grep -l "assert *(" $(srcdir)/*/*.cc`;\
135  grep -L "^#include *<cassert>" $$files | grep $(srcdir) && \
136  { echo "$@: in files listed above"; exit 1; } || :;
137
138errno-header-without-use:
139  @files=`grep -l "^#include *<cerrno>" $(srcdir)/*/*.cc`;\
140  test -n "$$files" || exit 0;\
141  grep -LE "[^ \t\(=]errno" $$files | grep $(srcdir) && \
142  { echo "$@: in files listed above"; exit 1; } || :;
143
Note: See TracBrowser for help on using the repository browser.