src/crypt_blowfish.cpp src/crypt_blowfish.hpp \
src/passwd.cpp src/passwd.hpp \
src/setpass.cpp
-AM_CXXFLAGS = $(LIBUV_CFLAGS) $(LIBTLS_CFLAGS) $(LUA_CFLAGS)
+AM_CXXFLAGS = $(WARNINGCXXFLAGS) $(LIBUV_CFLAGS) $(LIBTLS_CFLAGS) $(LUA_CFLAGS)
LDADD = $(LIBUV_LIBS) $(LIBTLS_LIBS) $(LUA_LIBS)
-AM_CXXFLAGS += -Wall -Wextra $(WMISSINGVAR)
dist_ircddata_DATA = \
data/help.example.txt
AC_LANG([C++])
AC_PROG_CXX
AX_CXX_COMPILE_STDCXX([20], [noext])
-# TODO: -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes
-# TODO: -Wshorten-64-to-32 -Wimplicit-int-conversion -Wextra-semi-stmt -Wcast-qual
-AX_CHECK_COMPILE_FLAG([-Wmissing-variable-declarations],
- [AC_SUBST([WMISSINGVAR], [-Wmissing-variable-declarations])])
+AC_SUBST([WARNINGCXXFLAGS])
+AC_DEFUN([CHECK_WARN], [
+ AX_CHECK_COMPILE_FLAG([$1], [WARNINGCXXFLAGS="$WARNINGCXXFLAGS $1"], [], m4_if([$2], [], [-Werror]))])
+CHECK_WARN([-Wall])
+CHECK_WARN([-Wextra])
+CHECK_WARN([-Wstrict-prototypes])
+CHECK_WARN([-Wold-style-definition])
+CHECK_WARN([-Wmissing-prototypes])
+CHECK_WARN([-Wmissing-variable-declarations])
+CHECK_WARN([-Wshorten-64-to-32])
+CHECK_WARN([-Wimplicit-int-conversion])
+CHECK_WARN([-Wextra-semi-stmt], [yes])
+CHECK_WARN([-Wcast-qual])
AC_DEFINE([_GNU_SOURCE], [1])
AC_ARG_WITH([ircddatadir],