aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac7
-rw-r--r--lib/Makefile.am3
-rw-r--r--m4/curl-confopts.m432
-rw-r--r--src/Makefile.am3
4 files changed, 45 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index c0d25f3a6..b0530c496 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,6 +40,7 @@ AM_MAINTAINER_MODE
CURL_CHECK_OPTION_DEBUG
CURL_CHECK_OPTION_OPTIMIZE
CURL_CHECK_OPTION_WARNINGS
+CURL_CHECK_OPTION_WERROR
CURL_CHECK_OPTION_CURLDEBUG
CURL_CHECK_OPTION_ARES
@@ -51,6 +52,12 @@ CURL_CHECK_PATH_SEPARATOR_REQUIRED
CONFIGURE_OPTIONS="\"$ac_configure_args\""
AC_SUBST(CONFIGURE_OPTIONS)
+CURL_CFLAG_EXTRAS=""
+if test X"$want_werror" == Xyes; then
+ CURL_CFLAG_EXTRAS="-Werror"
+fi
+AC_SUBST(CURL_CFLAG_EXTRAS)
+
dnl SED is mandatory for configure process and libtool.
dnl Set it now, allowing it to be changed later.
if test -z "$SED"; then
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 53d65dedd..89bc1fd3e 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -44,6 +44,9 @@ CLEANFILES = $(DSP) $(VCPROJ)
lib_LTLIBRARIES = libcurl.la
LIBCURL_LIBS = @LIBCURL_LIBS@
+# This might hold -Werror
+CFLAGS += @CURL_CFLAG_EXTRAS@
+
# Specify our include paths here, and do it relative to $(top_srcdir) and
# $(top_builddir), to ensure that these paths which belong to the library
# being currently built and tested are searched before the library which
diff --git a/m4/curl-confopts.m4 b/m4/curl-confopts.m4
index fb73ef559..12be6847d 100644
--- a/m4/curl-confopts.m4
+++ b/m4/curl-confopts.m4
@@ -339,6 +339,38 @@ AC_HELP_STRING([--disable-warnings],[Disable strict compiler warnings]),
AC_MSG_RESULT([$want_warnings])
])
+dnl CURL_CHECK_OPTION_WERROR
+dnl -------------------------------------------------
+dnl Verify if configure has been invoked with option
+dnl --enable-werror or --disable-werror, and set
+dnl shell variable want_werror as appropriate.
+
+AC_DEFUN([CURL_CHECK_OPTION_WERROR], [
+ AC_REQUIRE([CURL_CHECK_OPTION_WARNINGS])dnl
+ AC_BEFORE([$0],[CURL_CHECK_PROG_CC])dnl
+ AC_MSG_CHECKING([whether to enable compiler warnings as errors])
+ OPT_COMPILER_WERROR="default"
+ AC_ARG_ENABLE(werror,
+AC_HELP_STRING([--enable-werror],[Enable compiler warnings as errors])
+AC_HELP_STRING([--disable-werror],[Disable compiler warnings as errors]),
+ OPT_COMPILER_WERROR=$enableval)
+ case "$OPT_COMPILER_WERROR" in
+ no)
+ dnl --disable-werror option used
+ want_werror="no"
+ ;;
+ default)
+ dnl --disable-werror option not specified, default to off
+ want_werror="no"
+ ;;
+ *)
+ dnl --enable-werror option used
+ want_werror="yes"
+ ;;
+ esac
+ AC_MSG_RESULT([$want_werror])
+])
+
dnl CURL_CHECK_NONBLOCKING_SOCKET
dnl -------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index 3672458ca..f2b4c8c64 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -46,6 +46,9 @@ bin_PROGRAMS = curl
include Makefile.inc
+# This might hold -Werror
+CFLAGS += @CURL_CFLAG_EXTRAS@
+
curl_LDADD = $(top_builddir)/lib/libcurl.la @CURL_LIBS@
curl_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
BUILT_SOURCES = hugehelp.c