diff --git a/Makefile b/Makefile index 5f3db8b7..c65cc254 100644 --- a/Makefile +++ b/Makefile @@ -92,12 +92,13 @@ $(foreach B,$(BUILD_ITEMS),$(eval \ distclean: clean $(RM) -r autoconf.mk autom4te.cache config.log config.status libtool + $(RM) libqpdf/qpdf/qpdf-config.h $(RM) manual/html.xsl $(RM) manual/print.xsl $(RM) doc/*.1 maintainer-clean: distclean - $(RM) configure doc/qpdf-manual.* + $(RM) configure doc/qpdf-manual.* libqpdf/qpdf/qpdf-config.h.in .PHONY: $(TEST_TARGETS) $(foreach B,$(TEST_ITEMS),$(eval \ @@ -140,5 +141,10 @@ QTEST=$(abspath qtest/bin/qtest-driver) $(TEST_TARGETS): @echo running qtest-driver for $(subst check_,,$@) @(cd $(subst check_,,$@)/$(OUTPUT_DIR); \ - TC_SRCS="$(foreach T,$(TC_SRCS_$(subst check_,,$@)),../../$(T))" \ - $(QTEST) -bindirs .:.. -datadir ../qtest -covdir ..) + if TC_SRCS="$(foreach T,$(TC_SRCS_$(subst check_,,$@)),../../$(T))" \ + $(QTEST) -bindirs .:.. -datadir ../qtest -covdir ..; then \ + true; \ + else \ + cat -v qtest.log; \ + false; \ + fi) diff --git a/README.maintainer b/README.maintainer index 49e6a175..4a628f9d 100644 --- a/README.maintainer +++ b/README.maintainer @@ -24,6 +24,7 @@ Release Reminders make_release does the following. autoconf + autoheader ./configure --enable-doc-maintenance make build_manual make distclean @@ -34,12 +35,11 @@ Release Reminders General Build Stuff =================== -QPDF supports autoconf and libtool but does not use automake. In -addition, there is no header file generated by autoconf. The only -file distributed with the qpdf source distribution that is not a -controlled file is "configure", and it is generated by just running -"autoconf". There is no need to run autoreconf, automake, autoheader, -aclocal, or any other autotools programs beyond autoconf. +QPDF supports autoconf and libtool but does not use automake. The +only files distributed with the qpdf source distribution that are not +controlled are "configure", "libqpdf/qpdf/qpdf-config.h.in", and some +documentation. See above for the steps required to prepare a source +distribution. A small handful of additional files have been taken from autotools programs. These should probably be updated from time to time. diff --git a/configure.ac b/configure.ac index b1c5e567..89603e83 100644 --- a/configure.ac +++ b/configure.ac @@ -7,6 +7,7 @@ AC_INIT(qpdf,2.0) dnl No AC_CONFIG_HEADERS. If this changes, update README.maintainer. AC_CONFIG_FILES([autoconf.mk]) AC_CONFIG_FILES([manual/html.xsl manual/print.xsl]) +AC_CONFIG_HEADERS([libqpdf/qpdf/qpdf-config.h]) AC_PROG_CC AC_PROG_CXX @@ -18,6 +19,10 @@ AC_SEARCH_LIBS(deflate,z zlib,,[MISSING_ZLIB=1; MISSING_ANY=1]) AC_CHECK_HEADER(pcre.h,,[MISSING_PCRE_H=1; MISSING_ANY=1]) AC_SEARCH_LIBS(pcre_compile,pcre,,[MISSING_PCRE=1; MISSING_ANY=1]) +AC_TYPE_INT16_T +AC_TYPE_INT32_T +AC_TYPE_INT64_T + AC_MSG_CHECKING(for gnu make >= 3.81) make_okay=0 if make --version >/dev/null 2>&1; then diff --git a/libqpdf/qpdf/MD5.hh b/libqpdf/qpdf/MD5.hh index 0ae15da9..06b4efff 100644 --- a/libqpdf/qpdf/MD5.hh +++ b/libqpdf/qpdf/MD5.hh @@ -4,6 +4,7 @@ #include #include +#include class MD5 { @@ -49,10 +50,10 @@ class MD5 typedef void *POINTER; // UINT2 defines a two byte word - typedef unsigned short int UINT2; + typedef uint16_t UINT2; // UINT4 defines a four byte word - typedef unsigned long int UINT4; + typedef uint32_t UINT4; void init(); void update(unsigned char *, unsigned int); diff --git a/make_dist b/make_dist index 5ea2c646..959adb96 100755 --- a/make_dist +++ b/make_dist @@ -110,6 +110,7 @@ if ($version_error) } run("autoconf"); +run("autoheader"); run("./configure --enable-doc-maintenance"); run("make build_manual"); run("make distclean");