summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--aclocal.m413
-rw-r--r--configure.in17
2 files changed, 27 insertions, 3 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index c5af7895..e98a4139 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -147,6 +147,19 @@ if test -z "$bird_cv_sys_linux_version" ; then
fi
])])
+AC_DEFUN(BIRD_CHECK_GCC_OPTIONS,
+[AC_CACHE_VAL(bird_cv_c_option_no_pointer_sign, [
+cat >conftest.c <<EOF
+int main(void)
+{ return 0; }
+EOF
+if $CC -Wall -Wno-pointer-sign conftest.c >&AS_MESSAGE_LOG_FD 2>&1 ; then
+ bird_cv_c_option_no_pointer_sign=yes
+else
+ bird_cv_c_option_no_pointer_sign=no
+fi
+])])
+
# BIRD_CHECK_PROG_FLAVOR_GNU(PROGRAM-PATH, IF-SUCCESS, [IF-FAILURE])
# copied autoconf internal _AC_PATH_PROG_FLAVOR_GNU
m4_define([BIRD_CHECK_PROG_FLAVOR_GNU],
diff --git a/configure.in b/configure.in
index c931c183..3c988b16 100644
--- a/configure.in
+++ b/configure.in
@@ -55,17 +55,28 @@ AC_SEARCH_LIBS(clock_gettime,[c rt posix4])
AC_CANONICAL_HOST
-AC_MSG_CHECKING([what CFLAGS should we use])
+# Store this value because ac_test_CFLAGS is overwritten by AC_PROG_CC
if test "$ac_test_CFLAGS" != set ; then
- CFLAGS="$CFLAGS -Wall -Wstrict-prototypes -Wno-pointer-sign -Wno-parentheses"
+ bird_cflags_default=yes
fi
-AC_MSG_RESULT($CFLAGS)
AC_PROG_CC
if test -z "$GCC" ; then
AC_MSG_ERROR([This program requires the GNU C Compiler.])
fi
+AC_MSG_CHECKING([what CFLAGS should we use])
+if test "$bird_cflags_default" == yes ; then
+ BIRD_CHECK_GCC_OPTIONS
+
+ CFLAGS="$CFLAGS -Wall -Wstrict-prototypes -Wno-parentheses"
+ if test "$bird_cv_c_option_no_pointer_sign" == yes ; then
+ CFLAGS="$CFLAGS -Wno-pointer-sign"
+ fi
+fi
+AC_MSG_RESULT($CFLAGS)
+
+
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_RANLIB