chiark / gitweb /
control: depend on git | git-core
[topgit.git] / Makefile
index 3913d66..3ce39a5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,34 +1,43 @@
-# Set PREFIX to wherever you want to install TopGit
-PREFIX = $(HOME)
-bindir = $(PREFIX)/bin
-cmddir = $(PREFIX)/libexec/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))
+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)
+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' \
                -e 's#@bindir@#$(bindir)#g' \
+               -e 's#@sharedir@#$(sharedir)#g' \
                $@.sh >$@+ && \
        chmod +x $@+ && \
        mv $@+ $@
 
+$(help_out): README
+       @CMD=`echo $@ | sed -e 's/tg-//' -e 's/\.txt//'` && \
+       echo '[HELP]' $$CMD && \
+       ./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 "$(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)
+       rm -f tg $(commands_out) $(hooks_out) $(help_out)