~ari-tczew/ubuntu/utopic/gtk-vnc/merge

« back to all changes in this revision

Viewing changes to m4/manywarnings.m4

  • Committer: Package Import Robot
  • Author(s): Laurent Léonard
  • Date: 2012-07-24 00:49:55 UTC
  • mfrom: (1.2.5)
  • Revision ID: package-import@ubuntu.com-20120724004955-6711f7ontxvn9yzy
Tags: 0.5.1-1
* [e2591bf] Imported Upstream version 0.5.1
* [a0f6408] Drop patch
  - Allow-Unix-domain-sockets-in-gvncviewer.patch - fixed upstream
* [c031b94] Bump Standards-Version to 3.9.3
* [61e5796] Set build directories for dh_auto_clean
* [7fde78d] Drop patch
  - Look-for-generated-enums-in-srcdir.patch
* [fada5be] Add dh_auto_test override
* [d7567f1] Update symbols
* [6189676] Enable dpkg-buildflags

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# manywarnings.m4 serial 3
 
2
dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
 
3
dnl This file is free software; the Free Software Foundation
 
4
dnl gives unlimited permission to copy and/or distribute it,
 
5
dnl with or without modifications, as long as this notice is preserved.
 
6
 
 
7
dnl From Simon Josefsson
 
8
 
 
9
# gl_MANYWARN_COMPLEMENT(OUTVAR, LISTVAR, REMOVEVAR)
 
10
# --------------------------------------------------
 
11
# Copy LISTVAR to OUTVAR except for the entries in REMOVEVAR.
 
12
# Elements separated by whitespace.  In set logic terms, the function
 
13
# does OUTVAR = LISTVAR \ REMOVEVAR.
 
14
AC_DEFUN([gl_MANYWARN_COMPLEMENT],
 
15
[
 
16
  gl_warn_set=
 
17
  set x $2; shift
 
18
  for gl_warn_item
 
19
  do
 
20
    case " $3 " in
 
21
      *" $gl_warn_item "*)
 
22
        ;;
 
23
      *)
 
24
        gl_warn_set="$gl_warn_set $gl_warn_item"
 
25
        ;;
 
26
    esac
 
27
  done
 
28
  $1=$gl_warn_set
 
29
])
 
30
 
 
31
# gl_MANYWARN_ALL_GCC(VARIABLE)
 
32
# -----------------------------
 
33
# Add all documented GCC warning parameters to variable VARIABLE.
 
34
# Note that you need to test them using gl_WARN_ADD if you want to
 
35
# make sure your gcc understands it.
 
36
AC_DEFUN([gl_MANYWARN_ALL_GCC],
 
37
[
 
38
  dnl First, check if -Wno-missing-field-initializers is needed.
 
39
  dnl -Wmissing-field-initializers is implied by -W, but that issues
 
40
  dnl warnings with GCC version before 4.7, for the common idiom
 
41
  dnl of initializing types on the stack to zero, using { 0, }
 
42
  AC_REQUIRE([AC_PROG_CC])
 
43
  if test -n "$GCC"; then
 
44
 
 
45
    dnl First, check -W -Werror -Wno-missing-field-initializers is supported
 
46
    dnl with the current $CC $CFLAGS $CPPFLAGS.
 
47
    AC_MSG_CHECKING([whether -Wno-missing-field-initializers is supported])
 
48
    AC_CACHE_VAL([gl_cv_cc_nomfi_supported], [
 
49
      gl_save_CFLAGS="$CFLAGS"
 
50
      CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers"
 
51
      AC_COMPILE_IFELSE(
 
52
        [AC_LANG_PROGRAM([[]], [[]])],
 
53
        [gl_cv_cc_nomfi_supported=yes],
 
54
        [gl_cv_cc_nomfi_supported=no])
 
55
      CFLAGS="$gl_save_CFLAGS"])
 
56
    AC_MSG_RESULT([$gl_cv_cc_nomfi_supported])
 
57
 
 
58
    if test "$gl_cv_cc_nomfi_supported" = yes; then
 
59
      dnl Now check whether -Wno-missing-field-initializers is needed
 
60
      dnl for the { 0, } construct.
 
61
      AC_MSG_CHECKING([whether -Wno-missing-field-initializers is needed])
 
62
      AC_CACHE_VAL([gl_cv_cc_nomfi_needed], [
 
63
        gl_save_CFLAGS="$CFLAGS"
 
64
        CFLAGS="$CFLAGS -W -Werror"
 
65
        AC_COMPILE_IFELSE(
 
66
          [AC_LANG_PROGRAM(
 
67
             [[void f (void)
 
68
               {
 
69
                 typedef struct { int a; int b; } s_t;
 
70
                 s_t s1 = { 0, };
 
71
               }
 
72
             ]],
 
73
             [[]])],
 
74
          [gl_cv_cc_nomfi_needed=no],
 
75
          [gl_cv_cc_nomfi_needed=yes])
 
76
        CFLAGS="$gl_save_CFLAGS"
 
77
      ])
 
78
      AC_MSG_RESULT([$gl_cv_cc_nomfi_needed])
 
79
    fi
 
80
  fi
 
81
 
 
82
  gl_manywarn_set=
 
83
  for gl_manywarn_item in \
 
84
    -Wall \
 
85
    -W \
 
86
    -Wformat-y2k \
 
87
    -Wformat-nonliteral \
 
88
    -Wformat-security \
 
89
    -Winit-self \
 
90
    -Wmissing-include-dirs \
 
91
    -Wswitch-default \
 
92
    -Wswitch-enum \
 
93
    -Wunused \
 
94
    -Wunknown-pragmas \
 
95
    -Wstrict-aliasing \
 
96
    -Wstrict-overflow \
 
97
    -Wsystem-headers \
 
98
    -Wfloat-equal \
 
99
    -Wtraditional \
 
100
    -Wtraditional-conversion \
 
101
    -Wdeclaration-after-statement \
 
102
    -Wundef \
 
103
    -Wshadow \
 
104
    -Wunsafe-loop-optimizations \
 
105
    -Wpointer-arith \
 
106
    -Wbad-function-cast \
 
107
    -Wc++-compat \
 
108
    -Wcast-qual \
 
109
    -Wcast-align \
 
110
    -Wwrite-strings \
 
111
    -Wconversion \
 
112
    -Wsign-conversion \
 
113
    -Wlogical-op \
 
114
    -Waggregate-return \
 
115
    -Wstrict-prototypes \
 
116
    -Wold-style-definition \
 
117
    -Wmissing-prototypes \
 
118
    -Wmissing-declarations \
 
119
    -Wmissing-noreturn \
 
120
    -Wmissing-format-attribute \
 
121
    -Wpacked \
 
122
    -Wpadded \
 
123
    -Wredundant-decls \
 
124
    -Wnested-externs \
 
125
    -Wunreachable-code \
 
126
    -Winline \
 
127
    -Winvalid-pch \
 
128
    -Wlong-long \
 
129
    -Wvla \
 
130
    -Wvolatile-register-var \
 
131
    -Wdisabled-optimization \
 
132
    -Wstack-protector \
 
133
    -Woverlength-strings \
 
134
    -Wbuiltin-macro-redefined \
 
135
    -Wmudflap \
 
136
    -Wpacked-bitfield-compat \
 
137
    -Wsync-nand \
 
138
    ; do
 
139
    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
 
140
  done
 
141
  # The following are not documented in the manual but are included in
 
142
  # output from gcc --help=warnings.
 
143
  for gl_manywarn_item in \
 
144
    -Wattributes \
 
145
    -Wcoverage-mismatch \
 
146
    -Wmultichar \
 
147
    -Wunused-macros \
 
148
    ; do
 
149
    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
 
150
  done
 
151
  # More warnings from gcc 4.6.2 --help=warnings.
 
152
  for gl_manywarn_item in \
 
153
    -Wabi \
 
154
    -Wcpp \
 
155
    -Wdeprecated \
 
156
    -Wdeprecated-declarations \
 
157
    -Wdiv-by-zero \
 
158
    -Wdouble-promotion \
 
159
    -Wendif-labels \
 
160
    -Wextra \
 
161
    -Wformat-contains-nul \
 
162
    -Wformat-extra-args \
 
163
    -Wformat-zero-length \
 
164
    -Wformat=2 \
 
165
    -Wmultichar \
 
166
    -Wnormalized=nfc \
 
167
    -Woverflow \
 
168
    -Wpointer-to-int-cast \
 
169
    -Wpragmas \
 
170
    -Wsuggest-attribute=const \
 
171
    -Wsuggest-attribute=noreturn \
 
172
    -Wsuggest-attribute=pure \
 
173
    -Wtrampolines \
 
174
    ; do
 
175
    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
 
176
  done
 
177
 
 
178
  # Disable the missing-field-initializers warning if needed
 
179
  if test "$gl_cv_cc_nomfi_needed" = yes; then
 
180
    gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"
 
181
  fi
 
182
 
 
183
  $1=$gl_manywarn_set
 
184
])