aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2017-08-30 17:25:00 +0200
committerMarcel Holtmann <marcel@holtmann.org>2017-08-30 17:25:00 +0200
commit8d29d48ab0c75468d912d0dacdd02cf57739af13 (patch)
treea47bf981bea6f726bf97bebd4322d23667631600
parent94ee6eed81386ba9de624ef3b977d49c75e3e6b5 (diff)
downloadpacrunner-8d29d48ab0c75468d912d0dacdd02cf57739af13.tar.gz
build: Handle missing support for -Wimplicit-fallthrough=2
-rw-r--r--Makefile.am6
-rw-r--r--acinclude.m413
-rw-r--r--configure.ac3
3 files changed, 20 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index 363b218..21642e1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -62,8 +62,10 @@ noinst_LIBRARIES += duktape/libduktape.a
duktape_libduktape_a_SOURCES = duktape/duk_config.h \
duktape/duktape.h \
duktape/duktape.c
-duktape_libduktape_a_CFLAGS = -Wno-format-truncation \
- -Wimplicit-fallthrough=2
+duktape_libduktape_a_CFLAGS = -Wno-format-truncation
+if GCC7
+duktape_libduktape_a_CFLAGS += -Wimplicit-fallthrough=2
+endif
endif
duktape_libduktape_a_SHORTNAME = libduktape
diff --git a/acinclude.m4 b/acinclude.m4
index 51630a8..55d440c 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -25,3 +25,16 @@ AC_DEFUN([COMPILER_FLAGS], [
CFLAGS+=" -DG_DISABLE_DEPRECATED"
fi
])
+
+AC_DEFUN([AX_CHECK_COMPILE_FLAG], [
+ AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])
+ AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
+ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
+ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
+ AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
+ [AS_VAR_SET(CACHEVAR,[yes])],
+ [AS_VAR_SET(CACHEVAR,[no])])
+ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
+ AS_VAR_IF(CACHEVAR,yes, [m4_default([$2], :)], [m4_default([$3], :)])
+ AS_VAR_POPDEF([CACHEVAR])
+])
diff --git a/configure.ac b/configure.ac
index 1577c86..12990a5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,6 +20,9 @@ PKG_PROG_PKG_CONFIG
COMPILER_FLAGS
+AX_CHECK_COMPILE_FLAG([-Wimplicit-fallthrough=2], have_gcc7=yes)
+AM_CONDITIONAL(GCC7, test "${have_gcc7}" = "yes")
+
AC_LANG_C
AC_PROG_CC