diff --git a/configure.in b/configure.in
index 21f2295ef6a67137609172be095341866309391c..158d451fba4a5a02ced7617848e31086f0cd145a 100644
--- a/configure.in
+++ b/configure.in
@@ -178,9 +178,18 @@ esac
 )
 
 AC_ARG_ENABLE(gccwarnings,
-	AS_HELP_STRING([--enable-gccwarnings], [Enable compiler warnings, default yes]),
+	AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
 	[gcc_warnings=$enableval], [gcc_warnings=yes])
 
+AC_ARG_ENABLE(wextra,
+	AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
+	[gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
+
+AC_ARG_ENABLE(werror,
+	AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
+	[gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
+
+
 AC_ARG_ENABLE(parport,
   AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]), 
   [build_parport=$enableval], [build_parport=no])
@@ -684,6 +693,12 @@ AC_PROG_RANLIB
 
 # set default gcc warnings
 GCC_WARNINGS="-Wall -Wstrict-prototypes"
+if test "${gcc_wextra}" = yes; then
+	GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
+fi
+if test "${gcc_werror}" = yes; then
+	GCC_WARNINGS="${GCC_WARNINGS} -Werror"
+fi
 
 # overide default gcc cflags
 if test $gcc_warnings = yes; then