[PATCH:macros 1/2] Create XORG_COMPILER_BRAND macro to centralize compiler checks

Alan Coopersmith alan.coopersmith at oracle.com
Mon Apr 25 20:35:39 PDT 2011


Check for gcc vs. intel vs. sun in one place, instead of
continuing to grow more places the check is replicated.

Add clang check here too, as it's now seeing a lot of use to build X.

Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 xorg-macros.m4.in |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/xorg-macros.m4.in b/xorg-macros.m4.in
index 76462b5..bdf734e 100644
--- a/xorg-macros.m4.in
+++ b/xorg-macros.m4.in
@@ -1290,6 +1290,23 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
 
 ]) # XORG_LINT_LIBRARY
 
+# XORG_COMPILER_BRAND
+# -------------------
+# Minimum version: 1.14.0
+#
+# Checks for various brands of compilers and sets flags as appropriate:
+#   GNU gcc - relies on AC_PROG_CC (via AC_PROG_CC_C99) to set GCC to "yes"
+#   clang compiler - sets CLANGCC to "yes"
+#   Intel compiler - sets INTELCC to "yes"
+#   Sun/Oracle Solaris Studio cc - sets SUNCC to "yes"
+#
+AC_DEFUN([XORG_COMPILER_BRAND], [
+AC_REQUIRE([AC_PROG_CC_C99])
+AC_CHECK_DECL([__clang__], [CLANGCC="yes"], [CLANGCC="no"])
+AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"])
+AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
+]) # XORG_COMPILER_BRAND
+
 # XORG_CWARNFLAGS
 # ---------------
 # Minimum version: 1.2.0
@@ -1298,6 +1315,7 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
 #
 AC_DEFUN([XORG_CWARNFLAGS], [
 AC_REQUIRE([AC_PROG_CC_C99])
+AC_REQUIRE([XORG_COMPILER_BRAND])
 if  test "x$GCC" = xyes ; then
     CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \
 -Wmissing-declarations -Wnested-externs -fno-strict-aliasing \
@@ -1308,7 +1326,6 @@ if  test "x$GCC" = xyes ; then
 	;;
     esac
 else
-    AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
     if test "x$SUNCC" = "xyes"; then
 	CWARNFLAGS="-v"
     fi
@@ -1324,6 +1341,7 @@ AC_SUBST(CWARNFLAGS)
 AC_DEFUN([XORG_STRICT_OPTION], [
 # If the module's configure.ac calls AC_PROG_CC later on, CC gets set to C89
 AC_REQUIRE([AC_PROG_CC_C99])
+AC_REQUIRE([XORG_COMPILER_BRAND])
 AC_REQUIRE([XORG_CWARNFLAGS])
 
 AC_ARG_ENABLE(strict-compilation,
@@ -1331,13 +1349,11 @@ AC_ARG_ENABLE(strict-compilation,
 			  [Enable all warnings from compiler and make them errors (default: disabled)]),
 			  [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no])
 if test "x$STRICT_COMPILE" = "xyes"; then
-	AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
-	AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"])
 	if test "x$GCC" = xyes ; then
 		STRICT_CFLAGS="-pedantic -Werror"
 	elif test "x$SUNCC" = "xyes"; then
 		STRICT_CFLAGS="-errwarn"
-    elif test "x$INTELCC" = "xyes"; then
+	elif test "x$INTELCC" = "xyes"; then
 		STRICT_CFLAGS="-Werror"
 	fi
 fi
-- 
1.7.3.2



More information about the xorg-devel mailing list