Makefile: Fix Makefiles to depend on all child Makefile fragments.

We were previously maintaining two lists of the child Makefile
fragments---one for the includes and another for the dependencies. So,
of course, they drifted and the dependency list wasn't up to date.

We fix this by adding a single subdirs variable, and then using GNU
Makefile substitution to generate both the include and the dependency
lists.

Some side effect of this change caused the '=' assignment of the dir
variable to not work anymore. I'm not sure why that is, but using ':='
makes sense here and fixes the problem.
This commit is contained in:
Carl Worth 2010-03-10 10:59:57 -08:00
parent f47bec55bd
commit 86232e62ab
4 changed files with 10 additions and 14 deletions

View file

@ -10,9 +10,6 @@ gzip = gzip
bash_completion_dir = /etc/bash_completion.d bash_completion_dir = /etc/bash_completion.d
zsh_completion_dir = /usr/share/zsh/functions/Completion/Unix zsh_completion_dir = /usr/share/zsh/functions/Completion/Unix
global_deps = Makefile Makefile.local Makefile.config \
lib/Makefile lib/Makefile.local
extra_cflags := extra_cflags :=
extra_cxxflags := extra_cxxflags :=
@ -44,12 +41,12 @@ Makefile.config: configure
@echo "" @echo ""
./configure ./configure
include Makefile.config subdirs = compat emacs lib
include lib/Makefile.local global_deps = Makefile Makefile.config Makefile.local \
include compat/Makefile.local $(subdirs:%=%/Makefile) $(subdirs:%=%/Makefile.local)
include emacs/Makefile.local
include Makefile.local include Makefile.config Makefile.local $(subdirs:%=%/Makefile.local)
# The user has not set any verbosity, default to quiet mode and inform the # The user has not set any verbosity, default to quiet mode and inform the
# user how to enable verbose compiles. # user how to enable verbose compiles.

View file

@ -1,4 +1,4 @@
dir=compat dir := compat
extra_cflags += -I$(dir) extra_cflags += -I$(dir)
notmuch_compat_srcs = notmuch_compat_srcs =

View file

@ -1,8 +1,7 @@
dir=emacs dir := emacs
emacs_sources= \ emacs_sources := $(dir)/notmuch.el
$(dir)/notmuch.el
emacs_bytecode=$(subst .el,.elc,$(emacs_sources)) emacs_bytecode := $(subst .el,.elc,$(emacs_sources))
emacs: $(emacs_bytecode) emacs: $(emacs_bytecode)

View file

@ -1,4 +1,4 @@
dir=lib dir := lib
extra_cflags += -I$(dir) extra_cflags += -I$(dir)
libnotmuch_c_srcs = \ libnotmuch_c_srcs = \