[PATCH] build: move canonical list of subdirectories to configure script

Tomi Ollila tomi.ollila at iki.fi
Tue Mar 25 05:31:54 PDT 2014


On Tue, Mar 25 2014, David Bremner <david at 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 at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list