summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2012-12-23 17:10:38 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2012-12-23 17:11:05 -0800
commit53358983ebbdb88c20d1a0121398534ec03aa485 (patch)
tree33d2546df5b93b2a312fb24d001b5749aade0077 /configure.ac
parent7c43775f4f667c435c9f67cbaf4738b3bcd59c03 (diff)
downloadtar-53358983ebbdb88c20d1a0121398534ec03aa485.tar.gz
maint: don't enable warnings by default unless GCC 4.6 or later
* configure.ac (gl_GCC_VERSION_IFELSE): New macro, from coreutils. (gl_gcc_warnings): By default, disable warnings for GCC versions before 4.6. This works around a failure when building from git on Ubuntu 10, reported privately by Nathan Stratton Treadway.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac25
1 files changed, 21 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index 23106006..fbf41e64 100644
--- a/configure.ac
+++ b/configure.ac
@@ -112,6 +112,24 @@ gl_INIT
# paxutils modules
tar_PAXUTILS
+# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
+# ------------------------------------------------
+# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
+# Otherwise, run RUN-IF-NOT-FOUND.
+AC_DEFUN([gl_GCC_VERSION_IFELSE],
+ [AC_PREPROC_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__)
+/* ok */
+#else
+# error "your version of gcc is older than $1.$2"
+#endif
+ ]]),
+ ], [$3], [$4])
+ ]
+)
+
AC_ARG_ENABLE([gcc-warnings],
[AS_HELP_STRING([--enable-gcc-warnings],
[turn on many GCC warnings (for developers; best with GNU make)])],
@@ -120,10 +138,9 @@ AC_ARG_ENABLE([gcc-warnings],
*) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
esac
gl_gcc_warnings=$enableval],
- [if test -d "$srcdir"/.git; then
- gl_gcc_warnings=yes
- else
- gl_gcc_warnings=no
+ [gl_gcc_warnings=no
+ if test -d "$srcdir"/.git; then
+ gl_GCC_VERSION_IFELSE([4], [6], [gl_gcc_warnings=yes])
fi]
)