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

Jeremy Huddleston jeremyhu at apple.com
Mon Apr 25 20:55:33 PDT 2011


Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>

On Apr 25, 2011, at 20:35, Alan Coopersmith wrote:

> 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
> 
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
> 



More information about the xorg-devel mailing list