Blame m4/warnings.m4

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