build: move canonical list of subdirectories to configure script
authorDavid Bremner <david@tethera.net>
Tue, 25 Mar 2014 11:28:09 +0000 (08:28 -0300)
committerDavid Bremner <david@tethera.net>
Tue, 25 Mar 2014 11:32:10 +0000 (08:32 -0300)
The configure script needs this list for out of tree builds. Grabbing
it from the Makefile via sed was fragile and broken.

Makefile
configure

index 061c55a1948aa821da17e1537c7da36c866606bb..4c0e8c62011393277cc1041a69859cde5296c2ea 100644 (file)
--- 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 ""
index fb276f1b7969f2e33b7971c782576360c14418be..ab73317a4b57c79de9f9d48abc49ffa5ca10f035 100755 (executable)
--- 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