chiark / gitweb /
Merge branch 'master' into refs/top-bases/debian/locations
[topgit.git] / Makefile
index 2975f29..3ce39a5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,21 +1,20 @@
-# Set PREFIX to wherever you want to install TopGit
-PREFIX = $(HOME)
-bindir = $(PREFIX)/bin
-cmddir = $(PREFIX)/libexec/topgit
-sharedir = $(PREFIX)/share/topgit
-hooksdir = $(cmddir)/hooks
+prefix ?= $(HOME)
+bindir := $(prefix)/bin
+cmddir := $(prefix)/libexec/topgit
+sharedir := $(prefix)/share/topgit
+hooksdir := $(cmddir)/hooks
 
 
-commands_in = tg-create.sh tg-delete.sh tg-info.sh tg-patch.sh tg-summary.sh tg-update.sh
+commands_in := $(wildcard tg-*.sh)
 hooks_in = hooks/pre-commit.sh
 
-commands_out = $(patsubst %.sh,%,$(commands_in))
-hooks_out = $(patsubst %.sh,%,$(hooks_in))
-help_out = $(patsubst %.sh,%.txt,$(commands_in))
+commands_out := $(patsubst %.sh,%,$(commands_in))
+hooks_out := $(patsubst %.sh,%,$(hooks_in))
+help_out := $(patsubst %.sh,%.txt,$(commands_in))
 
 all::  tg $(commands_out) $(hooks_out) $(help_out)
 
-tg $(commands_out) $(hooks_out): % : %.sh
+tg $(commands_out) $(hooks_out): % : %.sh Makefile
        @echo "[SED] $@"
        @sed -e 's#@cmddir@#$(cmddir)#g;' \
                -e 's#@hooksdir@#$(hooksdir)#g' \
@@ -31,13 +30,14 @@ $(help_out): README
        ./create-help.sh $$CMD
 
 install:: all
-       install tg "$(bindir)"
-       install -d -m 755 "$(cmddir)"
-       install $(commands_out) "$(cmddir)"
-       install -d -m 755 "$(hooksdir)"
-       install $(hooks_out) "$(hooksdir)"
-       install -d -m 755 "$(sharedir)"
-       install $(help_out) "$(sharedir)"
+       install -d -m 755 "$(DESTDIR)$(bindir)"
+       install tg "$(DESTDIR)$(bindir)"
+       install -d -m 755 "$(DESTDIR)$(cmddir)"
+       install $(commands_out) "$(DESTDIR)$(cmddir)"
+       install -d -m 755 "$(DESTDIR)$(hooksdir)"
+       install $(hooks_out) "$(DESTDIR)$(hooksdir)"
+       install -d -m 755 "$(DESTDIR)$(sharedir)"
+       install -m 644 $(help_out) "$(DESTDIR)$(sharedir)"
 
 clean::
        rm -f tg $(commands_out) $(hooks_out) $(help_out)