]>
Commit | Line | Data |
---|---|---|
41bdcda3 SP |
1 | all:: |
2 | ||
0b5ea163 SP |
3 | # Define V=1 to have a more verbose compile. |
4 | # | |
5 | ||
f1cee4e6 SP |
6 | GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE |
7 | @$(SHELL_PATH) ./GIT-VERSION-GEN | |
8 | -include GIT-VERSION-FILE | |
9 | ||
82a2d6bd SP |
10 | uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not') |
11 | ||
bb616ddd | 12 | SCRIPT_SH = git-gui.sh |
41bdcda3 | 13 | GITGUI_BUILT_INS = git-citool |
bb616ddd | 14 | ALL_PROGRAMS = $(GITGUI_BUILT_INS) $(patsubst %.sh,%,$(SCRIPT_SH)) |
f522c9b5 | 15 | ALL_LIBFILES = $(wildcard lib/*.tcl) |
b9e7efb8 | 16 | PRELOAD_FILES = lib/class.tcl |
41bdcda3 SP |
17 | |
18 | ifndef SHELL_PATH | |
19 | SHELL_PATH = /bin/sh | |
20 | endif | |
b3678bac | 21 | |
663e7cf8 SP |
22 | ifndef gitexecdir |
23 | gitexecdir := $(shell git --exec-path) | |
24 | endif | |
25 | ||
f522c9b5 | 26 | ifndef sharedir |
ea75ee35 | 27 | sharedir := $(dir $(gitexecdir))share |
f522c9b5 SP |
28 | endif |
29 | ||
663e7cf8 SP |
30 | ifndef INSTALL |
31 | INSTALL = install | |
32 | endif | |
b3678bac | 33 | |
0b5ea163 SP |
34 | ifndef V |
35 | QUIET_GEN = @echo ' ' GEN $@; | |
36 | QUIET_BUILT_IN = @echo ' ' BUILTIN $@; | |
f522c9b5 | 37 | QUIET_INDEX = @echo ' ' INDEX $(dir $@); |
b9e7efb8 | 38 | QUIET_2DEVNULL = 2>/dev/null |
0b5ea163 SP |
39 | endif |
40 | ||
f522c9b5 | 41 | TCL_PATH ?= tclsh |
845d377b JH |
42 | TCLTK_PATH ?= wish |
43 | ||
0c3b4aac AR |
44 | ifeq ($(findstring $(MAKEFLAGS),s),s) |
45 | QUIET_GEN = | |
46 | QUIET_BUILT_IN = | |
47 | endif | |
48 | ||
b3678bac SP |
49 | DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) |
50 | gitexecdir_SQ = $(subst ','\'',$(gitexecdir)) | |
41bdcda3 | 51 | SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) |
b9e7efb8 | 52 | TCL_PATH_SQ = $(subst ','\'',$(TCL_PATH)) |
845d377b | 53 | TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH)) |
41bdcda3 | 54 | |
f522c9b5 SP |
55 | libdir ?= $(sharedir)/git-gui/lib |
56 | libdir_SQ = $(subst ','\'',$(libdir)) | |
57 | ||
ea75ee35 SP |
58 | exedir = $(dir $(gitexecdir))share/git-gui/lib |
59 | exedir_SQ = $(subst ','\'',$(exedir)) | |
60 | ||
bb616ddd | 61 | $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh |
0b5ea163 | 62 | $(QUIET_GEN)rm -f $@ $@+ && \ |
82a2d6bd | 63 | GITGUI_RELATIVE= && \ |
ea75ee35 | 64 | if test '$(exedir_SQ)' = '$(libdir_SQ)'; then \ |
82a2d6bd SP |
65 | if test "$(uname_O)" = Cygwin; \ |
66 | then GITGUI_RELATIVE= ; \ | |
67 | else GITGUI_RELATIVE=1; \ | |
68 | fi; \ | |
ea75ee35 | 69 | fi && \ |
bb616ddd | 70 | sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ |
4e817d1a | 71 | -e 's|^ exec wish "$$0"| exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' \ |
7e81d4ee | 72 | -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \ |
ea75ee35 SP |
73 | -e 's|@@GITGUI_RELATIVE@@|'$$GITGUI_RELATIVE'|' \ |
74 | -e $$GITGUI_RELATIVE's|@@GITGUI_LIBDIR@@|$(libdir_SQ)|' \ | |
0b5ea163 | 75 | $@.sh >$@+ && \ |
0b5ea163 | 76 | chmod +x $@+ && \ |
41bdcda3 SP |
77 | mv $@+ $@ |
78 | ||
79 | $(GITGUI_BUILT_INS): git-gui | |
0b5ea163 | 80 | $(QUIET_BUILT_IN)rm -f $@ && ln git-gui $@ |
41bdcda3 | 81 | |
f522c9b5 | 82 | lib/tclIndex: $(ALL_LIBFILES) |
b9e7efb8 SP |
83 | $(QUIET_INDEX)if echo \ |
84 | $(foreach p,$(PRELOAD_FILES),source $p\;) \ | |
1f07c4e5 | 85 | auto_mkindex lib '*.tcl' \ |
b9e7efb8 SP |
86 | | $(TCL_PATH) $(QUIET_2DEVNULL); then : ok; \ |
87 | else \ | |
88 | echo 1>&2 " * $(TCL_PATH) failed; using unoptimized loading"; \ | |
89 | rm -f $@ ; \ | |
90 | echo '# Autogenerated by git-gui Makefile' >$@ && \ | |
91 | echo >>$@ && \ | |
92 | $(foreach p,$(PRELOAD_FILES) $(ALL_LIBFILES),echo '$(subst lib/,,$p)' >>$@ &&) \ | |
93 | echo >>$@ ; \ | |
94 | fi | |
f522c9b5 | 95 | |
bb616ddd | 96 | # These can record GITGUI_VERSION |
c6a5e403 | 97 | $(patsubst %.sh,%,$(SCRIPT_SH)): GIT-VERSION-FILE GIT-GUI-VARS |
b9e7efb8 | 98 | lib/tclIndex: GIT-GUI-VARS |
c6a5e403 SP |
99 | |
100 | TRACK_VARS = \ | |
101 | $(subst ','\'',SHELL_PATH='$(SHELL_PATH_SQ)') \ | |
b9e7efb8 | 102 | $(subst ','\'',TCL_PATH='$(TCL_PATH_SQ)') \ |
c6a5e403 | 103 | $(subst ','\'',TCLTK_PATH='$(TCLTK_PATH_SQ)') \ |
ea75ee35 | 104 | $(subst ','\'',gitexecdir='$(gitexecdir_SQ)') \ |
f522c9b5 | 105 | $(subst ','\'',libdir='$(libdir_SQ)') \ |
c6a5e403 SP |
106 | #end TRACK_VARS |
107 | ||
108 | GIT-GUI-VARS: .FORCE-GIT-GUI-VARS | |
109 | @VARS='$(TRACK_VARS)'; \ | |
110 | if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \ | |
111 | echo 1>&2 " * new locations or Tcl/Tk interpreter"; \ | |
112 | echo 1>$@ "$$VARS"; \ | |
113 | fi | |
bb616ddd | 114 | |
f522c9b5 | 115 | all:: $(ALL_PROGRAMS) lib/tclIndex |
b3678bac SP |
116 | |
117 | install: all | |
cb8773d1 SP |
118 | $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)' |
119 | $(INSTALL) git-gui '$(DESTDIR_SQ)$(gitexecdir_SQ)' | |
120 | $(foreach p,$(GITGUI_BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;) | |
121 | $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(libdir_SQ)' | |
122 | $(INSTALL) -m644 lib/tclIndex '$(DESTDIR_SQ)$(libdir_SQ)' | |
123 | $(foreach p,$(ALL_LIBFILES), $(INSTALL) -m644 $p '$(DESTDIR_SQ)$(libdir_SQ)' ;) | |
41bdcda3 | 124 | |
bb616ddd | 125 | dist-version: |
5d643cd3 SP |
126 | @mkdir -p $(TARDIR) |
127 | @echo $(GITGUI_VERSION) > $(TARDIR)/version | |
128 | ||
41bdcda3 | 129 | clean:: |
f522c9b5 SP |
130 | rm -f $(ALL_PROGRAMS) lib/tclIndex |
131 | rm -f GIT-VERSION-FILE GIT-GUI-VARS | |
f1cee4e6 | 132 | |
5d643cd3 | 133 | .PHONY: all install dist-version clean |
f1cee4e6 | 134 | .PHONY: .FORCE-GIT-VERSION-FILE |
c6a5e403 | 135 | .PHONY: .FORCE-GIT-GUI-VARS |