aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/m4
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2010-01-18 17:15:30 -0900
committerDavid M. Syzdek <david@syzdek.net>2010-01-18 17:15:30 -0900
commit1d811f1d365a67ba9802f5fcfa3b4509e79cb80e (patch)
tree2362a3e597299ecd9b91fc97d91c7cc18a800dfc /m4
parent1e372e553308cf81adcef40aca59abc615371670 (diff)
downloaddmstools-1d811f1d365a67ba9802f5fcfa3b4509e79cb80e.tar.gz
dmstools-1d811f1d365a67ba9802f5fcfa3b4509e79cb80e.tar.bz2
dmstools-1d811f1d365a67ba9802f5fcfa3b4509e79cb80e.tar.xz
dmstools-1d811f1d365a67ba9802f5fcfa3b4509e79cb80e.zip
Adding compiler warnings.
Diffstat (limited to 'm4')
-rw-r--r--m4/dmstools_gcc.m4156
1 files changed, 156 insertions, 0 deletions
diff --git a/m4/dmstools_gcc.m4 b/m4/dmstools_gcc.m4
new file mode 100644
index 0000000..ae8c13d
--- /dev/null
+++ b/m4/dmstools_gcc.m4
@@ -0,0 +1,156 @@
1#
2# DMS Tools and Utilities
3# Copyright (C) 2010 David M. Syzdek <david@syzdek.net>
4#
5# @SYZDEK_LICENSE_HEADER_START@
6#
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software
19# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20#
21# @SYZDEK_LICENSE_HEADER_END@
22#
23# acinclude.m4 - custom m4 macros used by configure.ac
24#
25
26# AC_DMS_ENABLE_WARNINGS()
27# ______________________________________________________________________________
28AC_DEFUN([AC_DMS_ENABLE_WARNINGS],[dnl
29
30 # prerequists
31 AC_REQUIRE([AC_PROG_CC])
32
33 # sets compiler
34 if test "x${CC}" == "x";then
35 ac_dms_cc=cc;
36 else
37 ac_dms_cc=${CC};
38 fi
39
40 # display options
41 enableval=""
42 AC_ARG_ENABLE(
43 warnings,
44 [AC_HELP_STRING([--disable-warnings], [disable compiler warnings])],
45 [ EWARNINGS=$enableval ],
46 [ EWARNINGS=$enableval ]
47 )
48 enableval=""
49 AC_ARG_ENABLE(
50 strictwarnings,
51 [AC_HELP_STRING([--enable-strictwarnings], [enable strict compiler warnings])],
52 [ ESTRICTWARNINGS=$enableval ],
53 [ ESTRICTWARNINGS=$enableval ]
54 )
55
56 # sets options
57 if test "x${ESTRICTWARNINGS}" != "xyes";then
58 USE_STRICTWARNINGS=no
59 else
60 USE_STRICTWARNINGS=yes
61 fi
62 if test "x${EWARNINGS}" != "xno";then
63 USE_WARNINGS=yes
64 else
65 USE_WARNINGS=no
66 USE_STRICTWARNINGS=no
67 fi
68
69 # list of args
70 ac_dms_warnings_list=""
71 if test "x${USE_WARNINGS}" == "xyes";then
72 ac_dms_warnings_list=" ${ac_dms_warnings_list} -W"
73 ac_dms_warnings_list=" ${ac_dms_warnings_list} -Wall"
74 ac_dms_warnings_list=" ${ac_dms_warnings_list} -Werror"
75 fi
76 if test "x${USE_STRICTWARNINGS}" == "xyes";then
77 ac_dms_warnings_list="${ac_dms_warnings_list} -std=gnu99"
78 ac_dms_warnings_list="${ac_dms_warnings_list} -pedantic"
79 #ac_dms_warnings_list="${ac_dms_warnings_list} -Wtraditional"
80 ac_dms_warnings_list="${ac_dms_warnings_list} -Wpragma-once"
81 ac_dms_warnings_list="${ac_dms_warnings_list} -Wextra-tokens"
82 ac_dms_warnings_list="${ac_dms_warnings_list} -Wnewline-eof"
83 ac_dms_warnings_list="${ac_dms_warnings_list} -Wsequence-point"
84 ac_dms_warnings_list="${ac_dms_warnings_list} -Wdiv-by-zero"
85 ac_dms_warnings_list="${ac_dms_warnings_list} -Wfloat-equal"
86 ac_dms_warnings_list="${ac_dms_warnings_list} -Wdisabled-optimization"
87 ac_dms_warnings_list="${ac_dms_warnings_list} -Wchar-subscripts"
88 ac_dms_warnings_list="${ac_dms_warnings_list} -Wcomment"
89 ac_dms_warnings_list="${ac_dms_warnings_list} -Wformat"
90 ac_dms_warnings_list="${ac_dms_warnings_list} -Wimplicit"
91 ac_dms_warnings_list="${ac_dms_warnings_list} -Wmain"
92 ac_dms_warnings_list="${ac_dms_warnings_list} -Wmissing-braces"
93 ac_dms_warnings_list="${ac_dms_warnings_list} -Wparentheses"
94 ac_dms_warnings_list="${ac_dms_warnings_list} -Wreturn-type"
95 ac_dms_warnings_list="${ac_dms_warnings_list} -Wswitch"
96 ac_dms_warnings_list="${ac_dms_warnings_list} -Wswitch-default" # for some reason any call to memset() fails with this flag
97 ac_dms_warnings_list="${ac_dms_warnings_list} -Wtrigraphs"
98 ac_dms_warnings_list="${ac_dms_warnings_list} -Wunused"
99 ac_dms_warnings_list="${ac_dms_warnings_list} -Wunknown-pragmas"
100 ac_dms_warnings_list="${ac_dms_warnings_list} -Wuninitialized"
101 ac_dms_warnings_list="${ac_dms_warnings_list} -Wmultichar"
102 ac_dms_warnings_list="${ac_dms_warnings_list} -Wundef"
103 ac_dms_warnings_list="${ac_dms_warnings_list} -Wendif-labels"
104 ac_dms_warnings_list="${ac_dms_warnings_list} -Wshadow"
105 ac_dms_warnings_list="${ac_dms_warnings_list} -Wlarger-than-4096"
106 ac_dms_warnings_list="${ac_dms_warnings_list} -Wpointer-arith"
107 ac_dms_warnings_list="${ac_dms_warnings_list} -Wbad-function-cast"
108 ac_dms_warnings_list="${ac_dms_warnings_list} -Wcast-qual"
109 ac_dms_warnings_list="${ac_dms_warnings_list} -Wcast-align"
110 ac_dms_warnings_list="${ac_dms_warnings_list} -Wwrite-strings"
111 ac_dms_warnings_list="${ac_dms_warnings_list} -Wconversion"
112 ac_dms_warnings_list="${ac_dms_warnings_list} -Wsign-compare"
113 ac_dms_warnings_list="${ac_dms_warnings_list} -Waggregate-return"
114 ac_dms_warnings_list="${ac_dms_warnings_list} -Wstrict-prototypes"
115 ac_dms_warnings_list="${ac_dms_warnings_list} -Wstrict-aliasing"
116 ac_dms_warnings_list="${ac_dms_warnings_list} -Wmissing-prototypes"
117 ac_dms_warnings_list="${ac_dms_warnings_list} -Wmissing-declarations"
118 ac_dms_warnings_list="${ac_dms_warnings_list} -Wmissing-noreturn"
119 ac_dms_warnings_list="${ac_dms_warnings_list} -Wmissing-format-attribute" # vprintf is failing this warning
120 ac_dms_warnings_list="${ac_dms_warnings_list} -Wredundant-decls"
121 ac_dms_warnings_list="${ac_dms_warnings_list} -Wunreachable-code"
122 ac_dms_warnings_list="${ac_dms_warnings_list} -Winvalid-pch"
123 ac_dms_warnings_list="${ac_dms_warnings_list} -Wpacked"
124 ac_dms_warnings_list="${ac_dms_warnings_list} -Wpadded"
125 ac_dms_warnings_list="${ac_dms_warnings_list} -Wnested-externs"
126 ac_dms_warnings_list="${ac_dms_warnings_list} -Wenum-clash"
127 ac_dms_warnings_list="${ac_dms_warnings_list} -Winline"
128 ac_dms_warnings_list="${ac_dms_warnings_list} -Wlong-long"
129 fi
130
131 # creates test source code
132 AC_LANG_CONFTEST(
133 [AC_LANG_PROGRAM(
134 [[int main(void);]],
135 [[return(0);]]
136 )])
137
138 # loops throough options
139 CFLAGS_WARNINGS=""
140 for ac_dms_warning in ${ac_dms_warnings_list};do
141 AC_MSG_CHECKING(for gcc flag ${ac_dms_warning})
142 ${ac_dms_cc} ${CFLAGS_WARNINGS} ${ac_dms_warning} conftest.c -o conftest.o > /dev/null 2>&1
143 if test "x$?" == "x0";then
144 CFLAGS_WARNINGS="${CFLAGS_WARNINGS} ${ac_dms_warning}"
145 AC_MSG_RESULT(yes)
146 else
147 AC_MSG_RESULT(no)
148 fi
149 done
150
151 # export variables
152 AC_SUBST(CFLAGS_WARNINGS, "$CFLAGS_WARNINGS")
153])dnl
154
155
156# end of M4 file