On Tue, Mar 25 2014, David Bremner <david@tethera.net> wrote: > The configure script needs this list for out of tree builds. Grabbing > it from the Makefile via sed was fragile and broken. > --- This is exactly what I was going to suggest if I had the time. LGTM. Tomi > Makefile | 15 +++++---------- > configure | 8 +++++++- > 2 files changed, 12 insertions(+), 11 deletions(-) > > diff --git a/Makefile b/Makefile > index 061c55a..4c0e8c6 100644 > --- a/Makefile > +++ b/Makefile > @@ -2,16 +2,6 @@ > # given explicitly on the command line) so mention it first. > all: > > -# List all subdirectories here. Each contains its own Makefile.local. > -# Use of '=', without '+=', seems to be required for out-of-tree > -# builds to work. > -subdirs = compat completion doc emacs lib parse-time-string \ > - performance-test util test test/test-databases > - > -# We make all targets depend on the Makefiles themselves. > -global_deps = Makefile Makefile.config Makefile.local \ > - $(subdirs:%=%/Makefile) $(subdirs:%=%/Makefile.local) > - > # Sub-directory Makefile.local fragments can append to these variables > # to have directory-specific cflags as necessary. > > @@ -27,6 +17,11 @@ extra_cxxflags := > srcdir ?= . > > include Makefile.config > + > +# We make all targets depend on the Makefiles themselves. > +global_deps = Makefile Makefile.config Makefile.local \ > + $(subdirs:%=%/Makefile) $(subdirs:%=%/Makefile.local) > + > Makefile.config: $(srcdir)/configure > ifeq ($(configure_options),) > @echo "" > diff --git a/configure b/configure > index fb276f1..ab73317 100755 > --- a/configure > +++ b/configure > @@ -19,11 +19,14 @@ readonly DEFAULT_IFS="$IFS" > > srcdir=$(dirname "$0") > > +subdirs="util compat lib parse-time-string completion doc emacs" > +subdirs="${subdirs} performance-test test test/test-databases" > + > # For a non-srcdir configure invocation (such as ../configure), create > # the directory structure and copy Makefiles. > if [ "$srcdir" != "." ]; then > > - for dir in . $(grep "^subdirs *=" "$srcdir"/Makefile | sed -e "s/subdirs *= *//"); do > + for dir in . ${subdirs}; do > mkdir -p "$dir" > cp "$srcdir"/"$dir"/Makefile.local "$dir" > cp "$srcdir"/"$dir"/Makefile "$dir" > @@ -698,6 +701,9 @@ cat > Makefile.config <<EOF > # directory (the current directory at the time configure was run). > srcdir = ${srcdir} > > +# subdirectories to build > +subdirs = ${subdirs} > + > configure_options = $@ > > # We use vpath directives (rather than the VPATH variable) since the > -- > 1.9.0 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch