summaryrefslogtreecommitdiff
path: root/Makefile.am
blob: 64fd653513b91ee4a3a2cb19003637bdb90ecbc9 (plain)
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
## Copyright (C) 2008-2011 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software Foundation,
## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

include $(top_srcdir)/gtest.mk

# only build widgets if we have webkit
if BUILD_WIDGETS
widgets=widgets
else
widgets=
endif

if BUILD_GUILE
guile=guile
else
guile=
endif

if BUILD_MU4E
mu4e=mu4e
else
mu4e=
endif

SUBDIRS=m4 man lib $(widgets) $(guile) mu $(mu4e) contrib toys

ACLOCAL_AMFLAGS=-I m4

# so we can say 'make test'
check: test cleanupnote

cleanupnote:
	@echo -e  "\nNote: you can remove the mu-test-<uid> dir in your tempdir"
	@echo "after 'make check' has finished."

tags:
	gtags

# this warns about function that have a cyclomatic complexity of > 10,
# which is a sign that it needs some refactoring. requires the pmccabe
# tool. If all is fine, it outputs nothing
cc10:
	@$(PMCCABE) `find -name '*.c' -o -name '*.cc'`		\
	| grep -v mu-str-normalize.c				\
	| grep -v mu_str_subject_normalize			\
	| grep -v tests						\
	| sort -nr | awk '($$1 > 10)'

# this warns about functions that are over 35 non-comment lines long, which is a
# sign that they need some refactoring. requires the pmccabe tool. if
# all is fine, it outputs nothing
# note, some functions are  exempted from this rule.
line35:
	@$(PMCCABE) -c `find -name '*.c' -o -name '*.cc'`	\
	 | grep -v mu-str-normalize.c				\
	 | grep -v mu_str_subject_normalize			\
	 | grep -v config_options_group_find			\
	 | grep -v SCM_DEFINE_PUBLIC				\
	 | grep -v tests					\
         | awk '($$5 > 35)'

# get all todo/fixme messages
fixme:
	@grep -i 'FIXME\|TODO' `find src -type f`

# check whether we can run make distcheck from the repo version
gitcheck:
	cd `mktemp -d`;				 \
	git clone git://github.com/djcb/mu.git ; \
	cd mu;					 \
	autoreconf -i ;				 \
	./configure ;				 \
	make distcheck

EXTRA_DIST=		\
	TODO		\
	HACKING		\
	gtest.mk	\
	NEWS		\
	autogen.sh