From: Carl Worth Date: Wed, 10 Mar 2010 18:59:57 +0000 (-0800) Subject: Makefile: Fix Makefiles to depend on all child Makefile fragments. X-Git-Tag: 0.1~48 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=86232e62ab0ed6948de24a6aab5d9f2558171acf;hp=f47bec55bda2f4ef745ba6a284545bd8d1f9fbcc 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. --- 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 = \