gitweb: Makefile improvements
Adjust the main Makefile so you can simply run make gitweb which in turn calls gitweb/Makefile. This means that in order to generate gitweb, you can simply run 'make' from gitweb subdirectory: cd gitweb make Targets gitweb/gitweb.cgi and (dependent on JSMIN being defined) gitweb/gitweb.min.js in main Makefile are preserved for backward compatibility. Signed-off-by: John 'Warthog9' Hawley <warthog9@kernel.org> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
John 'Warthog9' Hawley committed
Jan 30, 2010 at 23:30 UTC
62331ef1637f8089bc920b3066a2ec48afd6fd26
2 files changed
+141
-53
Makefile
+12
-53
@@ -278,29 +278,6 @@ pathsep = :
278
# JavaScript minifier invocation that can function as filter
279
JSMIN =
280
281
-# default configuration for gitweb
282
-GITWEB_CONFIG = gitweb_config.perl
283
-GITWEB_CONFIG_SYSTEM = /etc/gitweb.conf
284
-GITWEB_HOME_LINK_STR = projects
285
-GITWEB_SITENAME =
286
-GITWEB_PROJECTROOT = /pub/git
287
-GITWEB_PROJECT_MAXDEPTH = 2007
288
-GITWEB_EXPORT_OK =
289
-GITWEB_STRICT_EXPORT =
290
-GITWEB_BASE_URL =
291
-GITWEB_LIST =
292
-GITWEB_HOMETEXT = indextext.html
293
-GITWEB_CSS = gitweb.css
294
-GITWEB_LOGO = git-logo.png
295
-GITWEB_FAVICON = git-favicon.png
296
-ifdef JSMIN
297
-GITWEB_JS = gitweb.min.js
298
-else
299
-GITWEB_JS = gitweb.js
300
-endif
301
-GITWEB_SITE_HEADER =
302
-GITWEB_SITE_FOOTER =
303
-
281
export prefix bindir sharedir sysconfdir
282
283
CC = gcc
@@ -1538,6 +1515,11 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
1515
chmod +x $@+ && \
1516
mv $@+ $@
1517
1518
+
1519
+.PHONY: gitweb
1520
+gitweb:
1521
+ $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) all
1522
+
1523
ifdef JSMIN
1524
OTHER_PROGRAMS += gitweb/gitweb.cgi gitweb/gitweb.min.js
1525
gitweb/gitweb.cgi: gitweb/gitweb.perl gitweb/gitweb.min.js
@@ -1545,30 +1527,13 @@ else
1527
OTHER_PROGRAMS += gitweb/gitweb.cgi
1528
gitweb/gitweb.cgi: gitweb/gitweb.perl
1529
endif
1548
- $(QUIET_GEN)$(RM) $@ $@+ && \
1549
- sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
1550
- -e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \
1551
- -e 's|++GIT_BINDIR++|$(bindir)|g' \
1552
- -e 's|++GITWEB_CONFIG++|$(GITWEB_CONFIG)|g' \
1553
- -e 's|++GITWEB_CONFIG_SYSTEM++|$(GITWEB_CONFIG_SYSTEM)|g' \
1554
- -e 's|++GITWEB_HOME_LINK_STR++|$(GITWEB_HOME_LINK_STR)|g' \
1555
- -e 's|++GITWEB_SITENAME++|$(GITWEB_SITENAME)|g' \
1556
- -e 's|++GITWEB_PROJECTROOT++|$(GITWEB_PROJECTROOT)|g' \
1557
- -e 's|"++GITWEB_PROJECT_MAXDEPTH++"|$(GITWEB_PROJECT_MAXDEPTH)|g' \
1558
- -e 's|++GITWEB_EXPORT_OK++|$(GITWEB_EXPORT_OK)|g' \
1559
- -e 's|++GITWEB_STRICT_EXPORT++|$(GITWEB_STRICT_EXPORT)|g' \
1560
- -e 's|++GITWEB_BASE_URL++|$(GITWEB_BASE_URL)|g' \
1561
- -e 's|++GITWEB_LIST++|$(GITWEB_LIST)|g' \
1562
- -e 's|++GITWEB_HOMETEXT++|$(GITWEB_HOMETEXT)|g' \
1563
- -e 's|++GITWEB_CSS++|$(GITWEB_CSS)|g' \
1564
- -e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \
1565
- -e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \
1566
- -e 's|++GITWEB_JS++|$(GITWEB_JS)|g' \
1567
- -e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \
1568
- -e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g' \
1569
- $< >$@+ && \
1570
- chmod +x $@+ && \
1571
- mv $@+ $@
1530
+ $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
1531
+
1532
+ifdef JSMIN
1533
+gitweb/gitweb.min.js: gitweb/gitweb.js
1534
+ $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
1535
+endif # JSMIN
1536
+
1537
1538
git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css gitweb/gitweb.js
1539
$(QUIET_GEN)$(RM) $@ $@+ && \
@@ -1595,12 +1560,6 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)) git-instaweb: % : unimplemented.sh
1560
mv $@+ $@
1561
endif # NO_PERL
1562
1598
-
1599
-ifdef JSMIN
1600
-gitweb/gitweb.min.js: gitweb/gitweb.js
1601
- $(QUIET_GEN)$(JSMIN) <$< >$@
1602
-endif # JSMIN
1603
-
1563
ifndef NO_PYTHON
1564
$(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS
1565
$(patsubst %.py,%,$(SCRIPT_PYTHON)): % : %.py
gitweb/Makefile
new
+129
@@ -0,0 +1,129 @@
1
+# The default target of this Makefile is...
2
+all::
3
+
4
+# Define V=1 to have a more verbose compile.
5
+#
6
+# Define JSMIN to point to JavaScript minifier that functions as
7
+# a filter to have gitweb.js minified.
8
+#
9
+
10
+prefix ?= $(HOME)
11
+bindir ?= $(prefix)/bin
12
+RM ?= rm -f
13
+
14
+# JavaScript minifier invocation that can function as filter
15
+JSMIN ?=
16
+
17
+# default configuration for gitweb
18
+GITWEB_CONFIG = gitweb_config.perl
19
+GITWEB_CONFIG_SYSTEM = /etc/gitweb.conf
20
+GITWEB_HOME_LINK_STR = projects
21
+GITWEB_SITENAME =
22
+GITWEB_PROJECTROOT = /pub/git
23
+GITWEB_PROJECT_MAXDEPTH = 2007
24
+GITWEB_EXPORT_OK =
25
+GITWEB_STRICT_EXPORT =
26
+GITWEB_BASE_URL =
27
+GITWEB_LIST =
28
+GITWEB_HOMETEXT = indextext.html
29
+GITWEB_CSS = gitweb.css
30
+GITWEB_LOGO = git-logo.png
31
+GITWEB_FAVICON = git-favicon.png
32
+ifdef JSMIN
33
+GITWEB_JS = gitweb.min.js
34
+else
35
+GITWEB_JS = gitweb.js
36
+endif
37
+GITWEB_SITE_HEADER =
38
+GITWEB_SITE_FOOTER =
39
+
40
+# include user config
41
+-include ../config.mak.autogen
42
+-include ../config.mak
43
+
44
+# determine version
45
+../GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
46
+ $(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) GIT-VERSION-FILE
47
+
48
+-include ../GIT-VERSION-FILE
49
+
50
+### Build rules
51
+
52
+SHELL_PATH ?= $(SHELL)
53
+PERL_PATH ?= /usr/bin/perl
54
+
55
+# Shell quote;
56
+bindir_SQ = $(subst ','\'',$(bindir)) #'
57
+SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) #'
58
+PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH)) #'
59
+
60
+# Quiet generation (unless V=1)
61
+QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
62
+QUIET_SUBDIR1 =
63
+
64
+ifneq ($(findstring $(MAKEFLAGS),w),w)
65
+PRINT_DIR = --no-print-directory
66
+else # "make -w"
67
+NO_SUBDIR = :
68
+endif
69
+
70
+ifneq ($(findstring $(MAKEFLAGS),s),s)
71
+ifndef V
72
+ QUIET = @
73
+ QUIET_GEN = $(QUIET)echo ' ' GEN $@;
74
+ QUIET_SUBDIR0 = +@subdir=
75
+ QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
76
+ $(MAKE) $(PRINT_DIR) -C $$subdir
77
+ export V
78
+ export QUIET
79
+ export QUIET_GEN
80
+ export QUIET_SUBDIR0
81
+ export QUIET_SUBDIR1
82
+endif
83
+endif
84
+
85
+all:: gitweb.cgi
86
+
87
+ifdef JSMIN
88
+FILES=gitweb.cgi gitweb.min.js
89
+gitweb.cgi: gitweb.perl gitweb.min.js
90
+else # !JSMIN
91
+FILES=gitweb.cgi
92
+gitweb.cgi: gitweb.perl
93
+endif # JSMIN
94
+
95
+gitweb.cgi:
96
+ $(QUIET_GEN)$(RM) $@ $@+ && \
97
+ sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
98
+ -e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \
99
+ -e 's|++GIT_BINDIR++|$(bindir)|g' \
100
+ -e 's|++GITWEB_CONFIG++|$(GITWEB_CONFIG)|g' \
101
+ -e 's|++GITWEB_CONFIG_SYSTEM++|$(GITWEB_CONFIG_SYSTEM)|g' \
102
+ -e 's|++GITWEB_HOME_LINK_STR++|$(GITWEB_HOME_LINK_STR)|g' \
103
+ -e 's|++GITWEB_SITENAME++|$(GITWEB_SITENAME)|g' \
104
+ -e 's|++GITWEB_PROJECTROOT++|$(GITWEB_PROJECTROOT)|g' \
105
+ -e 's|"++GITWEB_PROJECT_MAXDEPTH++"|$(GITWEB_PROJECT_MAXDEPTH)|g' \
106
+ -e 's|++GITWEB_EXPORT_OK++|$(GITWEB_EXPORT_OK)|g' \
107
+ -e 's|++GITWEB_STRICT_EXPORT++|$(GITWEB_STRICT_EXPORT)|g' \
108
+ -e 's|++GITWEB_BASE_URL++|$(GITWEB_BASE_URL)|g' \
109
+ -e 's|++GITWEB_LIST++|$(GITWEB_LIST)|g' \
110
+ -e 's|++GITWEB_HOMETEXT++|$(GITWEB_HOMETEXT)|g' \
111
+ -e 's|++GITWEB_CSS++|$(GITWEB_CSS)|g' \
112
+ -e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \
113
+ -e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \
114
+ -e 's|++GITWEB_JS++|$(GITWEB_JS)|g' \
115
+ -e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \
116
+ -e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g' \
117
+ $< >$@+ && \
118
+ chmod +x $@+ && \
119
+ mv $@+ $@
120
+
121
+ifdef JSMIN
122
+gitweb.min.js: gitweb.js
123
+ $(QUIET_GEN)$(JSMIN) <$< >$@
124
+endif # JSMIN
125
+
126
+clean:
127
+ $(RM) $(FILES)
128
+
129
+.PHONY: all clean .FORCE-GIT-VERSION-FILE