Blame acinclude.m4

Packit Service f1aff6
dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR)
Packit Service f1aff6
dnl
Packit Service f1aff6
dnl example
Packit Service f1aff6
dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
Packit Service f1aff6
dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local
Packit Service f1aff6
Packit Service f1aff6
AC_DEFUN([AS_AC_EXPAND],
Packit Service f1aff6
[
Packit Service f1aff6
  EXP_VAR=[$1]
Packit Service f1aff6
  FROM_VAR=[$2]
Packit Service f1aff6
Packit Service f1aff6
  dnl first expand prefix and exec_prefix if necessary
Packit Service f1aff6
  prefix_save=$prefix
Packit Service f1aff6
  exec_prefix_save=$exec_prefix
Packit Service f1aff6
Packit Service f1aff6
  dnl if no prefix given, then use /usr/local, the default prefix
Packit Service f1aff6
  if test "x$prefix" = "xNONE"; then
Packit Service f1aff6
    prefix=$ac_default_prefix
Packit Service f1aff6
  fi
Packit Service f1aff6
  dnl if no exec_prefix given, then use prefix
Packit Service f1aff6
  if test "x$exec_prefix" = "xNONE"; then
Packit Service f1aff6
    exec_prefix=$prefix
Packit Service f1aff6
  fi
Packit Service f1aff6
Packit Service f1aff6
  full_var="$FROM_VAR"
Packit Service f1aff6
  dnl loop until it doesn't change anymore
Packit Service f1aff6
  while true; do
Packit Service f1aff6
    new_full_var="`eval echo $full_var`"
Packit Service f1aff6
    if test "x$new_full_var"="x$full_var"; then break; fi
Packit Service f1aff6
    full_var=$new_full_var
Packit Service f1aff6
  done
Packit Service f1aff6
Packit Service f1aff6
  dnl clean up
Packit Service f1aff6
  full_var=$new_full_var
Packit Service f1aff6
  AC_SUBST([$1], "$full_var")
Packit Service f1aff6
Packit Service f1aff6
  dnl restore prefix and exec_prefix
Packit Service f1aff6
  prefix=$prefix_save
Packit Service f1aff6
  exec_prefix=$exec_prefix_save
Packit Service f1aff6
])
Packit Service f1aff6
Packit Service f1aff6
dnl GNOME_COMPILE_WARNINGS
Packit Service f1aff6
dnl Turn on many useful compiler warnings
Packit Service f1aff6
dnl For now, only works on GCC
Packit Service f1aff6
AC_DEFUN([GNOME_COMPILE_WARNINGS],[
Packit Service f1aff6
    dnl ******************************
Packit Service f1aff6
    dnl More compiler warnings
Packit Service f1aff6
    dnl ******************************
Packit Service f1aff6
Packit Service f1aff6
    AC_ARG_ENABLE(compile-warnings, 
Packit Service f1aff6
                  AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],
Packit Service f1aff6
                                 [Turn on compiler warnings]),,
Packit Service f1aff6
                  [enable_compile_warnings="m4_default([$1],[yes])"])
Packit Service f1aff6
Packit Service f1aff6
    warnCFLAGS=
Packit Service f1aff6
    if test "x$GCC" != xyes; then
Packit Service f1aff6
	enable_compile_warnings=no
Packit Service f1aff6
    fi
Packit Service f1aff6
Packit Service f1aff6
    warning_flags=
Packit Service f1aff6
    realsave_CFLAGS="$CFLAGS"
Packit Service f1aff6
Packit Service f1aff6
    case "$enable_compile_warnings" in
Packit Service f1aff6
    no)
Packit Service f1aff6
	warning_flags=
Packit Service f1aff6
	;;
Packit Service f1aff6
    minimum)
Packit Service f1aff6
	warning_flags="-Wall"
Packit Service f1aff6
	;;
Packit Service f1aff6
    yes)
Packit Service f1aff6
	warning_flags="-Wall -Wmissing-prototypes"
Packit Service f1aff6
	;;
Packit Service f1aff6
    maximum|error)
Packit Service f1aff6
	warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
Packit Service f1aff6
	CFLAGS="$warning_flags $CFLAGS"
Packit Service f1aff6
	for option in -Wno-sign-compare; do
Packit Service f1aff6
		SAVE_CFLAGS="$CFLAGS"
Packit Service f1aff6
		CFLAGS="$CFLAGS $option"
Packit Service f1aff6
		AC_MSG_CHECKING([whether gcc understands $option])
Packit Service f1aff6
		AC_TRY_COMPILE([], [],
Packit Service f1aff6
			has_option=yes,
Packit Service f1aff6
			has_option=no,)
Packit Service f1aff6
		CFLAGS="$SAVE_CFLAGS"
Packit Service f1aff6
		AC_MSG_RESULT($has_option)
Packit Service f1aff6
		if test $has_option = yes; then
Packit Service f1aff6
		  warning_flags="$warning_flags $option"
Packit Service f1aff6
		fi
Packit Service f1aff6
		unset has_option
Packit Service f1aff6
		unset SAVE_CFLAGS
Packit Service f1aff6
	done
Packit Service f1aff6
	unset option
Packit Service f1aff6
	if test "$enable_compile_warnings" = "error" ; then
Packit Service f1aff6
	    warning_flags="$warning_flags -Werror"
Packit Service f1aff6
	fi
Packit Service f1aff6
	;;
Packit Service f1aff6
    *)
Packit Service f1aff6
	AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
Packit Service f1aff6
	;;
Packit Service f1aff6
    esac
Packit Service f1aff6
    CFLAGS="$realsave_CFLAGS"
Packit Service f1aff6
    AC_MSG_CHECKING(what warning flags to pass to the C compiler)
Packit Service f1aff6
    AC_MSG_RESULT($warning_flags)
Packit Service f1aff6
Packit Service f1aff6
    AC_ARG_ENABLE(iso-c,
Packit Service f1aff6
                  AC_HELP_STRING([--enable-iso-c],
Packit Service f1aff6
                                 [Try to warn if code is not ISO C ]),,
Packit Service f1aff6
                  [enable_iso_c=no])
Packit Service f1aff6
Packit Service f1aff6
    AC_MSG_CHECKING(what language compliance flags to pass to the C compiler)
Packit Service f1aff6
    complCFLAGS=
Packit Service f1aff6
    if test "x$enable_iso_c" != "xno"; then
Packit Service f1aff6
	if test "x$GCC" = "xyes"; then
Packit Service f1aff6
	case " $CFLAGS " in
Packit Service f1aff6
	    *[\ \	]-ansi[\ \	]*) ;;
Packit Service f1aff6
	    *) complCFLAGS="$complCFLAGS -ansi" ;;
Packit Service f1aff6
	esac
Packit Service f1aff6
	case " $CFLAGS " in
Packit Service f1aff6
	    *[\ \	]-pedantic[\ \	]*) ;;
Packit Service f1aff6
	    *) complCFLAGS="$complCFLAGS -pedantic" ;;
Packit Service f1aff6
	esac
Packit Service f1aff6
	fi
Packit Service f1aff6
    fi
Packit Service f1aff6
    AC_MSG_RESULT($complCFLAGS)
Packit Service f1aff6
Packit Service f1aff6
    WARN_CFLAGS="$warning_flags $complCFLAGS"
Packit Service f1aff6
    AC_SUBST(WARN_CFLAGS)
Packit Service f1aff6
])
Packit Service f1aff6
Packit Service f1aff6
dnl For C++, do basically the same thing.
Packit Service f1aff6
Packit Service f1aff6
AC_DEFUN([GNOME_CXX_WARNINGS],[
Packit Service f1aff6
  AC_ARG_ENABLE(cxx-warnings,
Packit Service f1aff6
                AC_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@]
Packit Service f1aff6
                               [Turn on compiler warnings.]),,
Packit Service f1aff6
                [enable_cxx_warnings="m4_default([$1],[minimum])"])
Packit Service f1aff6
Packit Service f1aff6
  AC_MSG_CHECKING(what warning flags to pass to the C++ compiler)
Packit Service f1aff6
  warnCXXFLAGS=
Packit Service f1aff6
  if test "x$GXX" != xyes; then
Packit Service f1aff6
    enable_cxx_warnings=no
Packit Service f1aff6
  fi
Packit Service f1aff6
  if test "x$enable_cxx_warnings" != "xno"; then
Packit Service f1aff6
    if test "x$GXX" = "xyes"; then
Packit Service f1aff6
      case " $CXXFLAGS " in
Packit Service f1aff6
      *[\ \	]-Wall[\ \	]*) ;;
Packit Service f1aff6
      *) warnCXXFLAGS="-Wall -Wno-unused" ;;
Packit Service f1aff6
      esac
Packit Service f1aff6
Packit Service f1aff6
      ## -W is not all that useful.  And it cannot be controlled
Packit Service f1aff6
      ## with individual -Wno-xxx flags, unlike -Wall
Packit Service f1aff6
      if test "x$enable_cxx_warnings" = "xyes"; then
Packit Service f1aff6
	warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual"
Packit Service f1aff6
      fi
Packit Service f1aff6
    fi
Packit Service f1aff6
  fi
Packit Service f1aff6
  AC_MSG_RESULT($warnCXXFLAGS)
Packit Service f1aff6
Packit Service f1aff6
   AC_ARG_ENABLE(iso-cxx,
Packit Service f1aff6
                 AC_HELP_STRING([--enable-iso-cxx],
Packit Service f1aff6
                                [Try to warn if code is not ISO C++ ]),,
Packit Service f1aff6
                 [enable_iso_cxx=no])
Packit Service f1aff6
Packit Service f1aff6
   AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler)
Packit Service f1aff6
   complCXXFLAGS=
Packit Service f1aff6
   if test "x$enable_iso_cxx" != "xno"; then
Packit Service f1aff6
     if test "x$GXX" = "xyes"; then
Packit Service f1aff6
      case " $CXXFLAGS " in
Packit Service f1aff6
      *[\ \	]-ansi[\ \	]*) ;;
Packit Service f1aff6
      *) complCXXFLAGS="$complCXXFLAGS -ansi" ;;
Packit Service f1aff6
      esac
Packit Service f1aff6
Packit Service f1aff6
      case " $CXXFLAGS " in
Packit Service f1aff6
      *[\ \	]-pedantic[\ \	]*) ;;
Packit Service f1aff6
      *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;;
Packit Service f1aff6
      esac
Packit Service f1aff6
     fi
Packit Service f1aff6
   fi
Packit Service f1aff6
  AC_MSG_RESULT($complCXXFLAGS)
Packit Service f1aff6
Packit Service f1aff6
  WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS"
Packit Service f1aff6
  AC_SUBST(WARN_CXXFLAGS)
Packit Service f1aff6
])