summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2013-02-24 21:29:17 +0100
committerJay Berkenbilt <ejb@ql.org>2013-03-04 22:45:15 +0100
commit7276ab934d192627c72720ae1378de93edd9e8c7 (patch)
tree6a2771ec38bdca36cdadfc4b89fb23b3f006bace
parenta11081085b9db8ee40236d47849276db71ba0801 (diff)
downloadqpdf-7276ab934d192627c72720ae1378de93edd9e8c7.tar.zst
Use -Wold-style-cast for C++ if supported
Also separate C and C++ warning flags.
-rw-r--r--autoconf.mk.in3
-rw-r--r--configure.ac17
-rw-r--r--make/libtool.mk2
3 files changed, 20 insertions, 2 deletions
diff --git a/autoconf.mk.in b/autoconf.mk.in
index b85faa23..9d7a65e8 100644
--- a/autoconf.mk.in
+++ b/autoconf.mk.in
@@ -13,12 +13,13 @@ htmldir=@htmldir@
pdfdir=@pdfdir
CC=@CC@
WFLAGS=@WFLAGS@
+CXXWFLAGS=@CXXWFLAGS@
CFLAGS=@CFLAGS@ $(WFLAGS)
LDFLAGS=@LDFLAGS@
LIBS=@LIBS@
CPPFLAGS=@CPPFLAGS@
CXX=@CXX@
-CXXFLAGS=@CXXFLAGS@ $(WFLAGS)
+CXXFLAGS=@CXXFLAGS@ $(CXXWFLAGS) $(WFLAGS)
AR=@AR@
RANLIB=@RANLIB@
DLLTOOL=@DLLTOOL@
diff --git a/configure.ac b/configure.ac
index 8b4c444b..d8f3b6ba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -176,6 +176,7 @@ AC_ARG_WITH(buildrules,
AC_MSG_RESULT($BUILDRULES)
AC_SUBST(WFLAGS)
+AC_SUBST(CXXWFLAGS)
qpdf_USE_EXTRA_WARNINGS=0
if test "$BUILDRULES" = "msvc"; then
dnl /w14267 makes warning 4267 a level 1 warning. This warning reports
@@ -197,6 +198,22 @@ if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then
else
AC_MSG_RESULT(no)
fi
+if test "$BUILDRULES" != "msvc"; then
+ qpdf_USE_EXTRA_WARNINGS=0
+ try_flags="-Wold-style-cast"
+ AC_MSG_CHECKING(for whether $CXX supports $try_flags)
+ oCXXFLAGS=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS $try_flags"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])],
+ [qpdf_USE_EXTRA_WARNINGS=1],[qpdf_USE_EXTRA_WARNINGS=0])
+ CXXFLAGS=$oCXXFLAGS
+ if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then
+ AC_MSG_RESULT(yes)
+ CXXWFLAGS="$try_flags"
+ else
+ AC_MSG_RESULT(no)
+ fi
+fi
if test "$BUILDRULES" = "msvc"; then
try_flags="/WX"
diff --git a/make/libtool.mk b/make/libtool.mk
index 60d40f5f..d1a19bc1 100644
--- a/make/libtool.mk
+++ b/make/libtool.mk
@@ -73,7 +73,7 @@ endef
# Usage: $(call libcompile,src,includes)
define c_libcompile
$(LIBTOOL) --quiet --mode=compile \
- $(CC) $(CXXFLAGS) \
+ $(CC) $(CFLAGS) \
$(call libdepflags,$(basename $(call c_src_to_obj,$(1)))) \
$(foreach I,$(2),-I$(I)) \
$(CPPFLAGS) \