diff --git a/README-maintainer b/README-maintainer index aaa0a61c..3f85a684 100644 --- a/README-maintainer +++ b/README-maintainer @@ -4,17 +4,17 @@ ROUTINE DEVELOPMENT Default: -./configure CXX="g++ --std=c++14" --enable-werror --enable-doc-maintenance +./configure CXX="g++ --std=c++14" --enable-werror --enable-maintainer-mode Debugging: ./configure CXX="g++ --std=c++14" CFLAGS="-g" CXXFLAGS="-g" \ - --enable-werror --disable-shared + --enable-werror --disable-shared --enable-maintainer-mode Profiling: ./configure CXX="g++ --std=c++14" CFLAGS="-g -pg" CXXFLAGS="-g -pg" \ - LDFLAGS="-pg" --enable-werror --disable-shared + LDFLAGS="-pg" --enable-werror --disable-shared --enable-maintainer-mode Then run `gprof gmon.out`. Note that gmon.out is not cumulative. @@ -24,7 +24,7 @@ Memory checks: CXXFLAGS="-fsanitize=address -fsanitize=undefined -g" \ LDFLAGS="-fsanitize=address -fsanitize=undefined" \ CC=clang CXX="clang++ --std=c++14" \ - --enable-werror --disable-shared + --enable-werror --disable-shared --enable-maintainer-mode CHECKING DOCS ON readthedocs diff --git a/autoconf.mk.in b/autoconf.mk.in index 34a19801..34ed5c50 100644 --- a/autoconf.mk.in +++ b/autoconf.mk.in @@ -34,6 +34,7 @@ LIBTOOL=@LIBTOOL@ USE_CRYPTO_NATIVE=@USE_CRYPTO_NATIVE@ USE_CRYPTO_OPENSSL=@USE_CRYPTO_OPENSSL@ USE_CRYPTO_GNUTLS=@USE_CRYPTO_GNUTLS@ +MAINTAINER_MODE=@MAINTAINER_MODE@ SPHINX=@SPHINX@ BUILD_HTML=@BUILD_HTML@ BUILD_PDF=@BUILD_PDF@ diff --git a/autofiles.sums b/autofiles.sums index 0190d135..fc53cd2c 100644 --- a/autofiles.sums +++ b/autofiles.sums @@ -1,4 +1,4 @@ -c2704f4dca902266b5356fc80558ee642a5df6fac0ca97367903cb62efef5e75 configure.ac +16ac2eb6f8e5b191f8f89d6447338b672c43c49c6d682b17a489ae584d38de4c configure.ac d3f9ee6f6f0846888d9a10fd3dad2e4b1258be84205426cf04d7cef02d61dad7 aclocal.m4 c12d837479fa9a3fa4c278b6dc7d6b449503d663e0f0d294305595a51ff43f70 libqpdf/qpdf/qpdf-config.h.in 5297971a0ef90bcd5563eb3f7127a032bb76d3ae2af7258bf13479caf8983a60 m4/ax_cxx_compile_stdcxx.m4 diff --git a/configure b/configure index 9b17a651..33d6fc94 100755 --- a/configure +++ b/configure @@ -722,6 +722,7 @@ SHA256SUM ACLOCAL AUTOHEADER AUTOCONF +MAINTAINER_MODE target_alias host_alias build_alias @@ -764,6 +765,7 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking +enable_maintainer_mode enable_check_autofiles enable_shared enable_static @@ -1445,6 +1447,10 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-maintainer-mode + turn on features intended for maintainers that may + change generated files and require additional tools; + implies enable-doc-maintenances --enable-check-autofiles if specified, verify checksums on automatically generated files (default=yes); package maintainers @@ -1488,7 +1494,8 @@ Optional Features: console; useful for building on build servers where you can't easily open the test output files --enable-doc-maintenance - if set, enables all documentation options + if set, enables all documentation options; also + turned on by maintainer mode --enable-html-doc whether to build HTML documents --enable-pdf-doc whether to build PDF documents --enable-oss-fuzz if set, build static fuzzers for oss-fuzz @@ -2647,6 +2654,19 @@ ac_config_files="$ac_config_files libqpdf.map" ac_config_headers="$ac_config_headers libqpdf/qpdf/qpdf-config.h" + +# Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; if test "$enableval" = "no"; then + MAINTAINER_MODE=0 + else + MAINTAINER_MODE=1 + fi +else + MAINTAINER_MODE=0 +fi + + # Check whether --enable-check-autofiles was given. if test "${enable_check_autofiles+set}" = set; then : enableval=$enable_check_autofiles; if test "$enableval" = "no"; then @@ -18594,7 +18614,7 @@ if test "${enable_doc_maintenance+set}" = set; then : doc_default=0; fi else - doc_default=0 + doc_default=$MAINTAINER_MODE fi diff --git a/configure.ac b/configure.ac index f5f789f4..86a71254 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,17 @@ AC_CONFIG_FILES([libqpdf.pc]) AC_CONFIG_FILES([libqpdf.map]) AC_CONFIG_HEADERS([libqpdf/qpdf/qpdf-config.h]) +AC_SUBST(MAINTAINER_MODE) +AC_ARG_ENABLE(maintainer-mode, + AS_HELP_STRING([--enable-maintainer-mode], + [turn on features intended for maintainers that may change generated files and require additional tools; implies enable-doc-maintenances]), + [if test "$enableval" = "no"; then + MAINTAINER_MODE=0 + else + MAINTAINER_MODE=1 + fi], + [MAINTAINER_MODE=0]) + AC_ARG_ENABLE(check-autofiles, AS_HELP_STRING([--enable-check-autofiles], [if specified, verify checksums on automatically generated files (default=yes); package maintainers may want to disable this]), @@ -801,13 +812,13 @@ AC_CHECK_PROG(SPHINX,sphinx-build,sphinx-build,[]) AC_ARG_ENABLE(doc-maintenance, AS_HELP_STRING([--enable-doc-maintenance], - [if set, enables all documentation options]), + [if set, enables all documentation options; also turned on by maintainer mode]), [if test "$enableval" = "yes"; then doc_default=1; else doc_default=0; fi], - [doc_default=0]) + [doc_default=$MAINTAINER_MODE]) BUILD_HTML=0 AC_SUBST(BUILD_HTML)