Zack Weinberg wrote: > Literally as I type this I am > watching gettext 0.22 run its ridiculous number of configure scripts a > second time from inside `make`.
I'm glad that you didn't write "its ridiculously large configure scripts" :-) Jokes aside, it's highly unusual that 'configure' runs twice, when you haven't made modifications. I routinely build packages from ftp.gnu.org tarballs on 20 different platforms, but always on the local file system. You can run into such problems: - if you take a tarball of a git repository that contains the generated 'configure' file, or - if you are on some networked file system (for example, a file system with bidirectional rsync). > > Does "make dist" need to touch configure to ensure that it is newer > > than its dependencies before rolling the tarball? > > It ought to, but I don't think that will be more than a marginal > improvement, and touching the top-level configure won't be enough, > you'd need to do a full topological sort on the dependency graph > leading into every configure + every Makefile.in + every other > generated-but-shipped file and make sure that each tier of generated > files is newer than its inputs. That might be overkill. For simple packages with 1 configure script, the following is sufficient in my experience: # Bring the time stamps into an order that will not require autoconf, automake, etc. to run again. sleep 1; touch aclocal.m4 sleep 1; touch configure sleep 1; touch config.h.in sleep 1; touch `find . -name Makefile.in -type f` Bruno