@matheusbsbs / matheus-bagliano / commits / 62331ef163
Fork 0

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