acinclude.m4
author hallski <hallski>
Mon, 19 May 2003 18:27:00 +0000
changeset 1 50e230cf7818
child 32 67728af83706
permissions -rw-r--r--
Initial revision
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     1
dnl Turn on the additional warnings last, so -Werror doesn't affect other tests.
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     2
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     3
AC_DEFUN([LM_COMPILE_WARNINGS],[
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     4
   if test -f $srcdir/autogen.sh; then
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     5
	default_compile_warnings="error"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     6
    else
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     7
	default_compile_warnings="no"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     8
    fi
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     9
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    10
    AC_ARG_WITH(compile-warnings, [  --with-compile-warnings=[no/yes/error] Compiler warnings ], [enable_compile_warnings="$withval"], [enable_compile_warnings="$default_compile_warnings"])
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    11
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    12
    warnCFLAGS=
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    13
    if test "x$GCC" != xyes; then
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    14
	enable_compile_warnings=no
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    15
    fi
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    16
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    17
    warning_flags=
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    18
    realsave_CFLAGS="$CFLAGS"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    19
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    20
    case "$enable_compile_warnings" in
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    21
    no)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    22
	warning_flags=
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    23
	;;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    24
    yes)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    25
	warning_flags="-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    26
	;;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    27
    maximum|error)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    28
	warning_flags="-Wall -Wunused -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    29
	CFLAGS="$warning_flags $CFLAGS"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    30
	for option in -Wsign-promo -Wno-sign-compare; do
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    31
		SAVE_CFLAGS="$CFLAGS"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    32
		CFLAGS="$CFLAGS $option"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    33
		AC_MSG_CHECKING([whether gcc understands $option])
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    34
		AC_TRY_COMPILE([], [],
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    35
			has_option=yes,
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    36
			has_option=no,)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    37
		CFLAGS="$SAVE_CFLAGS"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    38
		AC_MSG_RESULT($has_option)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    39
		if test $has_option = yes; then
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    40
		  warning_flags="$warning_flags $option"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    41
		fi
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    42
		unset has_option
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    43
		unset SAVE_CFLAGS
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    44
	done
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    45
	unset option
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    46
	if test "$enable_compile_warnings" = "error" ; then
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    47
	    warning_flags="$warning_flags -Werror"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    48
	fi
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    49
	;;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    50
    *)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    51
	AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    52
	;;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    53
    esac
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    54
    CFLAGS="$realsave_CFLAGS"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    55
    AC_MSG_CHECKING(what warning flags to pass to the C compiler)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    56
    AC_MSG_RESULT($warning_flags)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    57
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    58
    WARN_CFLAGS="$warning_flags"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    59
    AC_SUBST(WARN_CFLAGS)
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    60
])
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    61