summaryrefslogtreecommitdiff
path: root/m4/dpkg-compiler.m4
diff options
context:
space:
mode:
authorGuillem Jover <guillem@debian.org>2014-06-09 02:05:38 +0200
committerGuillem Jover <guillem@debian.org>2014-08-09 22:03:58 +0200
commit5a7ed8dcb798baec356e48466ec4c5fa4754103e (patch)
tree9828cd7ff28d9e1b8738140d08f97827c5a074fa /m4/dpkg-compiler.m4
parenta499612664a4047ecb0dca533038701f7691f489 (diff)
downloaddpkg-5a7ed8dcb798baec356e48466ec4c5fa4754103e.tar.gz
build: Refactor compiler option checks into a new function
Diffstat (limited to 'm4/dpkg-compiler.m4')
-rw-r--r--m4/dpkg-compiler.m4155
1 files changed, 77 insertions, 78 deletions
diff --git a/m4/dpkg-compiler.m4 b/m4/dpkg-compiler.m4
index 7f0f48f46..6d636d07c 100644
--- a/m4/dpkg-compiler.m4
+++ b/m4/dpkg-compiler.m4
@@ -1,98 +1,97 @@
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>
# Copyright © 2006,2009-2011,2013-2014 Guillem Jover <guillem@debian.org>
-# DPKG_WARNING_CC
-# ---------------
-AC_DEFUN([DPKG_WARNING_CC], [
- AS_VAR_PUSHDEF([cache_var_name], [dpkg_cv_cflag_$1])
- AC_CACHE_CHECK([whether $CC accepts $1], [cache_var_name], [
- dpkg_save_CFLAGS="$CFLAGS"
- CFLAGS="$1"
- AC_LANG_PUSH([C])
- AC_COMPILE_IFELSE([
- AC_LANG_SOURCE([[]])
- ], [
- AS_VAR_SET([cache_var_name], [yes])
- ],[
- AS_VAR_SET([cache_var_name], [no])
- ])
- AC_LANG_POP([C])
- CFLAGS="$dpkg_save_CFLAGS"
+# DPKG_CHECK_COMPILER_FLAG
+# ------------------------
+AC_DEFUN([DPKG_CHECK_COMPILER_FLAG], [
+ AC_LANG_CASE(
+ [C], [
+ m4_define([dpkg_compiler], [$CC])
+ m4_define([dpkg_varname], [CFLAGS])
+ m4_define([dpkg_varname_save], [dpkg_save_CFLAGS])
+ m4_define([dpkg_varname_export], [COMPILER_CFLAGS])
+ AS_VAR_PUSHDEF([dpkg_varname_cache], [dpkg_cv_cflags_$1])
+ ],
+ [C++], [
+ m4_define([dpkg_compiler], [$CXX])
+ m4_define([dpkg_varname], [CXXFLAGS])
+ m4_define([dpkg_varname_save], [dpkg_save_CXXFLAGS])
+ m4_define([dpkg_varname_export], [COMPILER_CXXFLAGS])
+ AS_VAR_PUSHDEF([dpkg_varname_cache], [dpkg_cv_cxxflags_$1])
])
- AS_VAR_IF([cache_var_name], [yes], [CWARNFLAGS="$CWARNFLAGS $1"])
- AS_VAR_POPDEF([cache_var_name])
-])
-
-# DPKG_WARNING_CXX
-# ----------------
-AC_DEFUN([DPKG_WARNING_CXX], [
- AS_VAR_PUSHDEF([cache_var_name], [dpkg_cv_cxxflag_$1])
- AC_CACHE_CHECK([whether $CXX accepts $1], [cache_var_name], [
- dpkg_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$1"
- AC_LANG_PUSH([C++])
+ AC_CACHE_CHECK([whether ]dpkg_compiler[ accepts $1], [dpkg_varname_cache], [
+ AS_VAR_COPY([dpkg_varname_save], [dpkg_varname])
+ AS_VAR_SET([dpkg_varname], [$1])
AC_COMPILE_IFELSE([
AC_LANG_SOURCE([[]])
], [
- AS_VAR_SET([cache_var_name], [yes])
+ AS_VAR_SET([dpkg_varname_cache], [yes])
], [
- AS_VAR_SET([cache_var_name], [no])
+ AS_VAR_SET([dpkg_varname_cache], [no])
])
- AC_LANG_POP([C++])
- CXXFLAGS="$dpkg_save_CXXFLAGS"
+ AS_VAR_COPY([dpkg_varname], [dpkg_varname_save])
])
- AS_VAR_IF([cache_var_name], [yes], [CXXWARNFLAGS="$CXXWARNFLAGS $1"])
- AS_VAR_POPDEF([cache_var_name])
+ AS_VAR_IF([dpkg_varname_cache], [yes],
+ [AS_VAR_APPEND([dpkg_varname_export], [" $1"])])
+ AS_VAR_POPDEF([dpkg_varname_cache])
])
-# DPKG_WARNING_ALL
-# ----------------
-AC_DEFUN([DPKG_WARNING_ALL], [
- DPKG_WARNING_CC([$1])
- DPKG_WARNING_CXX([$1])
+# DPKG_CHECK_COMPILER_WARNINGS
+# ----------------------------
+# Add configure option to disable additional compiler warnings.
+AC_DEFUN([DPKG_CHECK_COMPILER_WARNINGS], [
+ DPKG_CHECK_COMPILER_FLAG([-Wall])
+ DPKG_CHECK_COMPILER_FLAG([-Wextra])
+ DPKG_CHECK_COMPILER_FLAG([-Wno-unused-parameter])
+ DPKG_CHECK_COMPILER_FLAG([-Wno-missing-field-initializers])
+ DPKG_CHECK_COMPILER_FLAG([-Wmissing-declarations])
+ DPKG_CHECK_COMPILER_FLAG([-Wmissing-format-attribute])
+ DPKG_CHECK_COMPILER_FLAG([-Wformat-security])
+ DPKG_CHECK_COMPILER_FLAG([-Wpointer-arith])
+ DPKG_CHECK_COMPILER_FLAG([-Wlogical-op])
+ DPKG_CHECK_COMPILER_FLAG([-Wvla])
+ DPKG_CHECK_COMPILER_FLAG([-Winit-self])
+ DPKG_CHECK_COMPILER_FLAG([-Wwrite-strings])
+ DPKG_CHECK_COMPILER_FLAG([-Wcast-align])
+ DPKG_CHECK_COMPILER_FLAG([-Wshadow])
+
+ AC_LANG_CASE(
+ [C], [
+ DPKG_CHECK_COMPILER_FLAG([-Wdeclaration-after-statement])
+ DPKG_CHECK_COMPILER_FLAG([-Wnested-externs])
+ DPKG_CHECK_COMPILER_FLAG([-Wbad-function-cast])
+ DPKG_CHECK_COMPILER_FLAG([-Wstrict-prototypes])
+ DPKG_CHECK_COMPILER_FLAG([-Wmissing-prototypes])
+ DPKG_CHECK_COMPILER_FLAG([-Wold-style-definition])
+ ],
+ [C++], [
+ DPKG_CHECK_COMPILER_FLAG([-Wc++11-compat])
+ AS_IF([test "x$dpkg_cv_cxx11" = "xyes"], [
+ DPKG_CHECK_COMPILER_FLAG([-Wzero-as-null-pointer-constant])
+ ])
+ ])
])
# DPKG_COMPILER_WARNINGS
-# ---------------------
+# ----------------------
# Add configure option to disable additional compiler warnings.
-AC_DEFUN([DPKG_COMPILER_WARNINGS],
-[AC_ARG_ENABLE(compiler-warnings,
- AS_HELP_STRING([--disable-compiler-warnings],
- [Disable additional compiler warnings]),
- [],
- [enable_compiler_warnings=yes])
-
-if test "x$enable_compiler_warnings" = "xyes"; then
- DPKG_WARNING_ALL([-Wall])
- DPKG_WARNING_ALL([-Wextra])
- DPKG_WARNING_ALL([-Wno-unused-parameter])
- DPKG_WARNING_ALL([-Wno-missing-field-initializers])
- DPKG_WARNING_ALL([-Wmissing-declarations])
- DPKG_WARNING_ALL([-Wmissing-format-attribute])
- DPKG_WARNING_ALL([-Wformat-security])
- DPKG_WARNING_ALL([-Wpointer-arith])
- DPKG_WARNING_ALL([-Wlogical-op])
- DPKG_WARNING_ALL([-Wvla])
- DPKG_WARNING_ALL([-Winit-self])
- DPKG_WARNING_ALL([-Wwrite-strings])
- DPKG_WARNING_ALL([-Wcast-align])
- DPKG_WARNING_ALL([-Wshadow])
-
- DPKG_WARNING_CC([-Wdeclaration-after-statement])
- DPKG_WARNING_CC([-Wnested-externs])
- DPKG_WARNING_CC([-Wbad-function-cast])
- DPKG_WARNING_CC([-Wstrict-prototypes])
- DPKG_WARNING_CC([-Wmissing-prototypes])
- DPKG_WARNING_CC([-Wold-style-definition])
-
- DPKG_WARNING_CXX([-Wc++11-compat])
- AS_IF([test "x$dpkg_cv_cxx11" = "xyes"], [
- DPKG_WARNING_CXX([-Wzero-as-null-pointer-constant])
- ])
+AC_DEFUN([DPKG_COMPILER_WARNINGS], [
+ AC_ARG_ENABLE([compiler-warnings],
+ AS_HELP_STRING([--disable-compiler-warnings],
+ [Disable additional compiler warnings]),
+ [],
+ [enable_compiler_warnings=yes]
+ )
+
+ if test "x$enable_compiler_warnings" = "xyes"; then
+ DPKG_CHECK_COMPILER_WARNINGS
+ AC_LANG_PUSH([C++])
+ DPKG_CHECK_COMPILER_WARNINGS
+ AC_LANG_POP([C++])
- CFLAGS="$CWARNFLAGS $CFLAGS"
- CXXFLAGS="$CXXWARNFLAGS $CXXFLAGS"
-fi
+ CFLAGS="$COMPILER_CFLAGS $CFLAGS"
+ CXXFLAGS="$COMPILER_CXXFLAGS $CXXFLAGS"
+ fi
])
# DPKG_COMPILER_OPTIMISATIONS