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

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

Date: Tue, 25 Mar 2014 13:59:22 +0100

To: Tomi Ollila, David Bremner, notmuch@notmuchmail.org

Cc:

From: Jani Nikula


On Tue, 25 Mar 2014, Tomi Ollila <tomi.ollila@iki.fi> wrote:
> 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.

Ditto, seems to work too.

>
> 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
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch

Thread: