diff --git a/Makefile b/Makefile index 3a53e93e..47dfbed1 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,11 @@ # anywhere. From the top level, the "all", "check", and "clean" # targets build, test, or clean everything. +# To run test suites without rebuilding, pass NO_REBUILD=1 to the +# build. This can be useful for testing binary interface compatibility +# as it enables you to rebuild libraries and rerun tests without +# relinking. + # Although this is not a GNU package and does not use automake, you # can still run make clean to remove everything that is compiled, make # distclean to remove everything that is generated by the end user, @@ -111,8 +116,12 @@ maintainer-clean: distclean $(RM) autofiles.zip .PHONY: $(TEST_TARGETS) + +NO_REBUILD ?= +ifneq ($(NO_REBUILD),1) $(foreach B,$(TEST_ITEMS),$(eval \ check_$(B): $(TARGETS_$(B)))) +endif .PHONY: $(foreach B,$(BUILD_ITEMS),build_$(B)) $(foreach B,$(BUILD_ITEMS),$(eval \ diff --git a/README.maintainer b/README.maintainer index 9af576e2..ae95e729 100644 --- a/README.maintainer +++ b/README.maintainer @@ -1,6 +1,11 @@ Release Reminders ================= + * Test for binary compatility. The easiest way to do this is to check + out the last release, run the test suite, check out the new + release, run make build_libqpdf, check out the old release, and run + make check NO_REBUILD=1. + * When making a release, always remember to run large file tests and image comparison tests (--enable-test-compare-images --with-large-file-test-path=/path). For a major release, consider diff --git a/TODO b/TODO index e4dd9b75..6061c44e 100644 --- a/TODO +++ b/TODO @@ -55,9 +55,6 @@ General supported for the toolchains that support the install target (libtool). - * Implement automated testing for binary compatibility and add to - release checklist. - * Figure out how to find Visual Studio in Windows registry and see if I can get it to work with make so I can simplify creation of Windows releases.