Blame m4/warnings.m4

Packit Service ea0369
# warnings.m4 serial 11
Packit Service ea0369
dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
Packit Service ea0369
dnl This file is free software; the Free Software Foundation
Packit Service ea0369
dnl gives unlimited permission to copy and/or distribute it,
Packit Service ea0369
dnl with or without modifications, as long as this notice is preserved.
Packit Service ea0369
Packit Service ea0369
dnl From Simon Josefsson
Packit Service ea0369
Packit Service ea0369
# gl_AS_VAR_APPEND(VAR, VALUE)
Packit Service ea0369
# ----------------------------
Packit Service ea0369
# Provide the functionality of AS_VAR_APPEND if Autoconf does not have it.
Packit Service ea0369
m4_ifdef([AS_VAR_APPEND],
Packit Service ea0369
[m4_copy([AS_VAR_APPEND], [gl_AS_VAR_APPEND])],
Packit Service ea0369
[m4_define([gl_AS_VAR_APPEND],
Packit Service ea0369
[AS_VAR_SET([$1], [AS_VAR_GET([$1])$2])])])
Packit Service ea0369
Packit Service ea0369
Packit Service ea0369
# gl_COMPILER_OPTION_IF(OPTION, [IF-SUPPORTED], [IF-NOT-SUPPORTED],
Packit Service ea0369
#                       [PROGRAM = AC_LANG_PROGRAM()])
Packit Service ea0369
# -----------------------------------------------------------------
Packit Service ea0369
# Check if the compiler supports OPTION when compiling PROGRAM.
Packit Service ea0369
#
Packit Service ea0369
# FIXME: gl_Warn must be used unquoted until we can assume Autoconf
Packit Service ea0369
# 2.64 or newer.
Packit Service ea0369
AC_DEFUN([gl_COMPILER_OPTION_IF],
Packit Service ea0369
[AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl
Packit Service ea0369
AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl
Packit Service ea0369
AS_LITERAL_IF([$1],
Packit Service ea0369
  [m4_pushdef([gl_Positive], m4_bpatsubst([$1], [^-Wno-], [-W]))],
Packit Service ea0369
  [gl_positive="$1"
Packit Service ea0369
case $gl_positive in
Packit Service ea0369
  -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;;
Packit Service ea0369
esac
Packit Service ea0369
m4_pushdef([gl_Positive], [$gl_positive])])dnl
Packit Service ea0369
AC_CACHE_CHECK([whether _AC_LANG compiler handles $1], m4_defn([gl_Warn]), [
Packit Service ea0369
  gl_save_compiler_FLAGS="$gl_Flags"
Packit Service ea0369
  gl_AS_VAR_APPEND(m4_defn([gl_Flags]),
Packit Service ea0369
    [" $gl_unknown_warnings_are_errors ]m4_defn([gl_Positive])["])
Packit Service ea0369
  AC_LINK_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([])])],
Packit Service ea0369
                 [AS_VAR_SET(gl_Warn, [yes])],
Packit Service ea0369
                 [AS_VAR_SET(gl_Warn, [no])])
Packit Service ea0369
  gl_Flags="$gl_save_compiler_FLAGS"
Packit Service ea0369
])
Packit Service ea0369
AS_VAR_IF(gl_Warn, [yes], [$2], [$3])
Packit Service ea0369
m4_popdef([gl_Positive])dnl
Packit Service ea0369
AS_VAR_POPDEF([gl_Flags])dnl
Packit Service ea0369
AS_VAR_POPDEF([gl_Warn])dnl
Packit Service ea0369
])
Packit Service ea0369
Packit Service ea0369
# gl_UNKNOWN_WARNINGS_ARE_ERRORS
Packit Service ea0369
# ------------------------------
Packit Service ea0369
# Clang doesn't complain about unknown warning options unless one also
Packit Service ea0369
# specifies -Wunknown-warning-option -Werror.  Detect this.
Packit Service ea0369
AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS],
Packit Service ea0369
[gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option],
Packit Service ea0369
   [gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'],
Packit Service ea0369
   [gl_unknown_warnings_are_errors=])])
Packit Service ea0369
Packit Service ea0369
# gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS],
Packit Service ea0369
#             [PROGRAM = AC_LANG_PROGRAM()])
Packit Service ea0369
# ---------------------------------------------
Packit Service ea0369
# Adds parameter to WARN_CFLAGS if the compiler supports it when
Packit Service ea0369
# compiling PROGRAM.  For example, gl_WARN_ADD([-Wparentheses]).
Packit Service ea0369
#
Packit Service ea0369
# If VARIABLE is a variable name, AC_SUBST it.
Packit Service ea0369
AC_DEFUN([gl_WARN_ADD],
Packit Service ea0369
[AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS])
Packit Service ea0369
gl_COMPILER_OPTION_IF([$1],
Packit Service ea0369
  [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])],
Packit Service ea0369
  [],
Packit Service ea0369
  [$3])
Packit Service ea0369
m4_ifval([$2],
Packit Service ea0369
         [AS_LITERAL_IF([$2], [AC_SUBST([$2])])],
Packit Service ea0369
         [AC_SUBST([WARN_CFLAGS])])dnl
Packit Service ea0369
])
Packit Service ea0369
Packit Service ea0369
# Local Variables:
Packit Service ea0369
# mode: autoconf
Packit Service ea0369
# End: