aboutsummaryrefslogtreecommitdiff
path: root/m4/odp_check_flag.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/odp_check_flag.m4')
-rw-r--r--m4/odp_check_flag.m436
1 files changed, 36 insertions, 0 deletions
diff --git a/m4/odp_check_flag.m4 b/m4/odp_check_flag.m4
new file mode 100644
index 000000000..012997ff2
--- /dev/null
+++ b/m4/odp_check_flag.m4
@@ -0,0 +1,36 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (c) 2018 Linaro Limited
+#
+
+dnl Use -Werror in the checks below since Clang emits a warning instead of
+dnl an error when it encounters an unknown warning option.
+
+# ODP_CHECK_CFLAG(FLAG)
+# ---------------------
+# Add FLAG to ODP_CFLAGS if compiler supports that option
+AC_DEFUN([ODP_CHECK_CFLAG],
+[
+ AC_MSG_CHECKING([if $CC supports $1])
+ AC_LANG_PUSH([C])
+ saved_cflags="$CFLAGS"
+ CFLAGS="-W -Wall -Werror $ODP_CFLAGS $1"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
+ [AC_MSG_RESULT([yes])
+ ODP_CFLAGS="$ODP_CFLAGS $1"],
+ [AC_MSG_RESULT([no])])
+ CFLAGS="$saved_cflags"
+ AC_LANG_POP([C])])
+
+# ODP_CHECK_CXXFLAG(FLAG)
+# ---------------------
+AC_DEFUN([ODP_CHECK_CXXFLAG],
+[ AC_MSG_CHECKING([if $CXX supports $1])
+ AC_LANG_PUSH([C++])
+ saved_cxxflags="$CXXFLAGS"
+ CXXFLAGS="-W -Wall -Werror $ODP_CXXFLAGS $1"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
+ [AC_MSG_RESULT([yes])
+ ODP_CXXFLAGS="$ODP_CXXFLAGS $1"],
+ [AC_MSG_RESULT([no])])
+ CXXFLAGS="$saved_cxxflags"
+ AC_LANG_POP([C++])])