summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <43805+derobins@users.noreply.github.com>2020-12-18 02:38:57 (GMT)
committerGitHub <noreply@github.com>2020-12-18 02:38:57 (GMT)
commitadfac394c21cde8dd75f574534464ca69e3a00df (patch)
tree8f3666dcde4647b723113b6f8072efdf5479c8ce
parentc69a3b5e93e0ecff09d9f5c42d8f88e35844f89c (diff)
downloadhdf5-adfac394c21cde8dd75f574534464ca69e3a00df.zip
hdf5-adfac394c21cde8dd75f574534464ca69e3a00df.tar.gz
hdf5-adfac394c21cde8dd75f574534464ca69e3a00df.tar.bz2
Restores maintainer mode in the autotools (#200)
Maintainer mode should be enabled in development branches. Also adds helpful commenting.
-rw-r--r--configure.ac50
1 files changed, 39 insertions, 11 deletions
diff --git a/configure.ac b/configure.ac
index 15ca068..ca3a1bb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,18 +37,46 @@ AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign subdir-objects])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) # use silent rules where available - automake 1.11
-## AM_MAINTAINER_MODE turns off "rebuild rules" that contain dependencies
-## for Makefiles, configure, src/H5config.h, etc. If AM_MAINTAINER_MODE
-## is enabled, these files will be rebuilt if out of date. This is a
-## problem because if users try to build on a machine with
-## the wrong versions of autoconf and automake, these files will be
-## rebuilt with the wrong versions and bad things can happen.
-## Also, CVS doesn't preserve dependencies between timestamps, so
-## Makefiles will often think rebuilding needs to occur when it doesn't.
+## AM_MAINTAINER_MODE determines the behavior of "rebuild rules" that contain
+## dependencies for Makefile.in files, configure, src/H5config.h, etc. If
+## AM_MAINTAINER_MODE is enabled, these files will be rebuilt if out of date.
+## When disabled, the autotools build files can get out of sync and the build
+## system will not complain or try to regenerate downstream files.
##
-## By default, it is enabled. Users can configure with
-## --disable-maintainer-mode to prevent running the autotools.
-AM_MAINTAINER_MODE([disable])
+## The AM_MAINTAINER_MODE macro also determines whether the
+## --(enable|disable)-maintainer-mode configure option is available. When the
+## macro is present, with or without a parameter, the option will be added
+## to the generated configure script.
+##
+## In summary:
+##
+## AM_MAINTAINER_MODE([enable])
+## - Build dependencies ON by default
+## - Configure option exists
+##
+## AM_MAINTAINER_MODE([disable])
+## - Build dependencies OFF by default
+## - Configure option exists
+##
+## AM_MAINTAINER_MODE
+## - Build dependencies OFF by default
+## - Configure option exists
+##
+## No AM_MAINTAINER_MODE macro
+## - Build dependencies ON by default
+## - No configure option to control build dependencies
+##
+## The biggest concern for us is that version control systems like git
+## usually don't preserve dependencies between timestamps, so the build
+## system will often think that upstream build files like Makefile.am are
+## dirty and that rebuilding needs to occur when it doesn't. This is a problem
+## in release branches where we provide the autotools-generated files. Users
+## who don't have autoconf, automake, etc. will then have difficulty building
+## release branches checked out from git.
+##
+## By default, maintainer mode is enabled in development branches and disabled
+## in release branches.
+AM_MAINTAINER_MODE([enable])
## ----------------------------------------------------------------------
## Set prefix default (install directory) to a directory in the build area.