aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2010-03-10 10:59:57 -0800
committerGravatar Carl Worth <cworth@cworth.org>2010-03-10 10:59:57 -0800
commit86232e62ab0ed6948de24a6aab5d9f2558171acf (patch)
tree1788f6c87f097d9b8bf8a8911028815efac5bed0
parentf47bec55bda2f4ef745ba6a284545bd8d1f9fbcc (diff)
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.
-rw-r--r--Makefile13
-rw-r--r--compat/Makefile.local2
-rw-r--r--emacs/Makefile.local7
-rw-r--r--lib/Makefile.local2
4 files changed, 10 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 7a59ce0a..46f001ce 100644
--- a/Makefile
+++ b/Makefile
@@ -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
+
+global_deps = Makefile Makefile.config Makefile.local \
+ $(subdirs:%=%/Makefile) $(subdirs:%=%/Makefile.local)
-include lib/Makefile.local
-include compat/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
# user how to enable verbose compiles.
diff --git a/compat/Makefile.local b/compat/Makefile.local
index ccc59aef..17b45140 100644
--- a/compat/Makefile.local
+++ b/compat/Makefile.local
@@ -1,4 +1,4 @@
-dir=compat
+dir := compat
extra_cflags += -I$(dir)
notmuch_compat_srcs =
diff --git a/emacs/Makefile.local b/emacs/Makefile.local
index b895d11a..17ede863 100644
--- a/emacs/Makefile.local
+++ b/emacs/Makefile.local
@@ -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)
diff --git a/lib/Makefile.local b/lib/Makefile.local
index 70489e17..495b27e0 100644
--- a/lib/Makefile.local
+++ b/lib/Makefile.local
@@ -1,4 +1,4 @@
-dir=lib
+dir := lib
extra_cflags += -I$(dir)
libnotmuch_c_srcs = \