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
zsh_completion_dir = /usr/share/zsh/functions/Completion/Unix
global_deps = Makefile Makefile.local Makefile.config \
lib/Makefile lib/Makefile.local
extra_cflags :=
extra_cxxflags :=
@ -44,12 +41,12 @@ Makefile.config: configure
@echo ""
./configure
include Makefile.config
subdirs = compat emacs lib
include lib/Makefile.local
include compat/Makefile.local
include emacs/Makefile.local
include Makefile.local
global_deps = Makefile Makefile.config Makefile.local \
$(subdirs:%=%/Makefile) $(subdirs:%=%/Makefile.local)
include Makefile.config Makefile.local $(subdirs:%=%/Makefile.local)
# The user has not set any verbosity, default to quiet mode and inform the
# user how to enable verbose compiles.

View file

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

View file

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

View file

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