For much better modularity.
all:
# List all subdirectories here. Each contains its own Makefile.local
-subdirs = compat emacs lib
+subdirs = compat completion emacs lib
# We make all targets depend on the Makefiles themselves.
global_deps = Makefile Makefile.local \
install: all notmuch.1.gz
mkdir -p $(DESTDIR)$(prefix)/share/man/man1
install -m0644 notmuch.1.gz $(DESTDIR)$(prefix)/share/man/man1/
- mkdir -p $(DESTDIR)$(bash_completion_dir)
- install -m0644 contrib/notmuch-completion.bash $(DESTDIR)$(bash_completion_dir)/notmuch
- mkdir -p $(DESTDIR)$(zsh_completion_dir)
- install -m0644 contrib/notmuch-completion.zsh $(DESTDIR)$(zsh_completion_dir)/notmuch
mkdir -p $(DESTDIR)$(prefix)/bin/
install notmuch-shared $(DESTDIR)$(prefix)/bin/notmuch
ifeq ($(MAKECMDGOALS), install)
--- /dev/null
+# See Makfefile.local for the list of files to be compiled in this
+# directory.
+all:
+ $(MAKE) -C .. all
+
+.DEFAULT:
+ $(MAKE) -C .. $@
--- /dev/null
+# -*- makefile -*-
+
+dir := completion
+
+# The dir variable will be re-assigned to later, so we can't use it
+# directly in any shell commands. Instead we save its value in other,
+# private variables that we can use in the commands.
+bash_script := $(dir)/notmuch-completion.bash
+zsh_script := $(dir)/notmuch-completion.zsh
+
+install: install-$(dir)
+
+install-$(dir):
+ @echo $@
+ mkdir -p $(DESTDIR)$(bash_completion_dir)
+ install -m0644 $(bash_script) $(DESTDIR)$(bash_completion_dir)/notmuch
+ mkdir -p $(DESTDIR)$(zsh_completion_dir)
+ install -m0644 $(zsh_script) $(DESTDIR)$(zsh_completion_dir)/notmuch