1
- # The default target of this Makefile is...
2
- all ::
1
+ ifndef MAK_DIR_GITWEB
2
+ $(error do not run gitweb/Makefile stand-alone anymore. The "gitweb" and \
3
+ "install-gitweb" targets now live in the top-level Makefile)
4
+ endif
3
5
4
- # Define V=1 to have a more verbose compile.
5
- #
6
6
# Define JSMIN to point to JavaScript minifier that functions as
7
7
# a filter to have static/gitweb.js minified.
8
8
#
9
9
# Define CSSMIN to point to a CSS minifier in order to generate a minified
10
10
# version of static/gitweb.css
11
11
#
12
12
13
- prefix ?= $(HOME )
14
- bindir ?= $(prefix ) /bin
15
- gitwebdir ?= /var/www/cgi-bin
16
-
17
- RM ?= rm -f
18
- INSTALL ?= install
19
-
20
13
# default configuration for gitweb
21
14
GITWEB_CONFIG = gitweb_config.perl
22
15
GITWEB_CONFIG_SYSTEM = /etc/gitweb.conf
@@ -30,96 +23,53 @@ GITWEB_STRICT_EXPORT =
30
23
GITWEB_BASE_URL =
31
24
GITWEB_LIST =
32
25
GITWEB_HOMETEXT = indextext.html
33
- GITWEB_CSS = static/gitweb.css
26
+ GITWEB_CSS_IN = static/gitweb.css
27
+ GITWEB_CSS = $(GITWEB_CSS_IN )
34
28
GITWEB_LOGO = static/git-logo.png
35
29
GITWEB_FAVICON = static/git-favicon.png
36
- GITWEB_JS = static/gitweb.js
30
+ GITWEB_JS_IN = static/gitweb.js
31
+ GITWEB_JS = $(GITWEB_JS_IN )
37
32
GITWEB_SITE_HTML_HEAD_STRING =
38
33
GITWEB_SITE_HEADER =
39
34
GITWEB_SITE_FOOTER =
40
35
HIGHLIGHT_BIN = highlight
41
36
42
- # include user config
43
- -include ../config.mak.autogen
44
- -include ../config.mak
45
- -include config.mak
46
-
47
- # determine version
48
- ../GIT-VERSION-FILE : .FORCE-GIT-VERSION-FILE
49
- $(QUIET_SUBDIR0 ) ../ $(QUIET_SUBDIR1 ) GIT-VERSION-FILE
50
-
51
- ifneq ($(MAKECMDGOALS ) ,clean)
52
- -include ../GIT-VERSION-FILE
53
- endif
54
-
55
- # ## Build rules
56
-
57
- SHELL_PATH ?= $(SHELL )
58
- PERL_PATH ?= /usr/bin/perl
37
+ # What targets we'll add to 'all' for "make gitweb"
38
+ GITWEB_ALL =
39
+ GITWEB_ALL += gitweb.cgi
40
+ GITWEB_ALL += $(GITWEB_JS )
59
41
60
- # Shell quote;
61
- bindir_SQ = $(subst ','\'',$(bindir ) ) # '
62
- gitwebdir_SQ = $(subst ','\'',$(gitwebdir ) ) # '
63
- gitwebstaticdir_SQ = $(subst ','\'',$(gitwebdir ) /static) # '
64
- SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH ) ) # '
65
- PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH ) ) # '
66
- DESTDIR_SQ = $(subst ','\'',$(DESTDIR ) ) # '
67
-
68
- # Quiet generation (unless V=1)
69
- QUIET_SUBDIR0 = +$(MAKE ) -C # space to separate -C and subdir
70
- QUIET_SUBDIR1 =
71
-
72
- ifneq ($(findstring $(MAKEFLAGS ) ,w) ,w)
73
- PRINT_DIR = --no-print-directory
74
- else # "make -w"
75
- NO_SUBDIR = :
76
- endif
77
-
78
- ifneq ($(findstring $(MAKEFLAGS ) ,s) ,s)
79
- ifndef V
80
- QUIET = @
81
- QUIET_GEN = $(QUIET)echo ' ' GEN $@;
82
- QUIET_SUBDIR0 = +@subdir=
83
- QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
84
- $(MAKE) $(PRINT_DIR) -C $$subdir
85
- export V
86
- export QUIET
87
- export QUIET_GEN
88
- export QUIET_SUBDIR0
89
- export QUIET_SUBDIR1
90
- endif
91
- endif
92
-
93
- all :: gitweb.cgi static/gitweb.js
42
+ MAK_DIR_GITWEB_ALL = $(addprefix $(MAK_DIR_GITWEB ) ,$(GITWEB_ALL ) )
94
43
95
44
GITWEB_PROGRAMS = gitweb.cgi
96
45
46
+ GITWEB_JS_MIN = static/gitweb.min.js
97
47
ifdef JSMIN
98
- GITWEB_FILES += static/gitweb.min.js
99
- GITWEB_JS = static/gitweb.min.js
100
- all :: static/gitweb.min.js
101
- static/gitweb.min.js : static/gitweb.js GITWEB-BUILD-OPTIONS
48
+ GITWEB_JS = $( GITWEB_JS_MIN )
49
+ GITWEB_ALL += $( MAK_DIR_GITWEB )$( GITWEB_JS_MIN )
50
+ $( MAK_DIR_GITWEB )$( GITWEB_JS_MIN ) : $( MAK_DIR_GITWEB ) GITWEB-BUILD-OPTIONS
51
+ $( MAK_DIR_GITWEB )$( GITWEB_JS_MIN ) : $( MAK_DIR_GITWEB )$( GITWEB_JS_IN )
102
52
$(QUIET_GEN )$(JSMIN ) < $< > $@
103
- else
104
- GITWEB_FILES += static/gitweb.js
105
53
endif
54
+ GITWEB_FILES += $(GITWEB_JS )
106
55
56
+ GITWEB_CSS_MIN = static/gitweb.min.css
107
57
ifdef CSSMIN
108
- GITWEB_FILES += static/gitweb.min.css
109
- GITWEB_CSS = static/gitweb.min.css
110
- all :: static/gitweb.min.css
111
- static/gitweb.min.css : static/gitweb.css GITWEB-BUILD-OPTIONS
58
+ GITWEB_CSS = $( GITWEB_CSS_MIN )
59
+ GITWEB_ALL += $( MAK_DIR_GITWEB )$( GITWEB_CSS_MIN )
60
+ $( MAK_DIR_GITWEB )$( GITWEB_CSS_MIN ) : $( MAK_DIR_GITWEB ) GITWEB-BUILD-OPTIONS
61
+ $( MAK_DIR_GITWEB )$( GITWEB_CSS_MIN ) : $( MAK_DIR_GITWEB )$( GITWEB_CSS_IN )
112
62
$(QUIET_GEN )$(CSSMIN ) < $< > $@
113
- else
114
- GITWEB_FILES += static/gitweb.css
115
63
endif
64
+ GITWEB_FILES += $(GITWEB_CSS )
116
65
117
66
GITWEB_FILES += static/git-logo.png static/git-favicon.png
118
67
119
68
# JavaScript files that are composed (concatenated) to form gitweb.js
120
69
#
121
70
# js/lib/common-lib.js should be always first, then js/lib/*.js,
122
71
# then the rest of files; js/gitweb.js should be last (if it exists)
72
+ GITWEB_JSLIB_FILES =
123
73
GITWEB_JSLIB_FILES += static/js/lib/common-lib.js
124
74
GITWEB_JSLIB_FILES += static/js/lib/datetime.js
125
75
GITWEB_JSLIB_FILES += static/js/lib/cookies.js
@@ -152,46 +102,45 @@ GITWEB_REPLACE = \
152
102
-e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER ) |g' \
153
103
-e 's|++HIGHLIGHT_BIN++|$(HIGHLIGHT_BIN ) |g'
154
104
155
- GITWEB-BUILD-OPTIONS : FORCE
105
+ .PHONY : FORCE
106
+ $(MAK_DIR_GITWEB ) GITWEB-BUILD-OPTIONS : FORCE
156
107
@rm -f $@ +
157
108
@echo " x" ' $(PERL_PATH_SQ)' $(GITWEB_REPLACE ) " $( JSMIN) |$( CSSMIN) " > $@ +
158
109
@cmp -s $@ + $@ && rm -f $@ + || mv -f $@ + $@
159
110
160
- gitweb.cgi : gitweb.perl GITWEB-BUILD-OPTIONS
111
+ $(MAK_DIR_GITWEB ) gitweb.cgi : $(MAK_DIR_GITWEB ) GITWEB-BUILD-OPTIONS
112
+ $(MAK_DIR_GITWEB ) gitweb.cgi : $(MAK_DIR_GITWEB ) gitweb.perl
161
113
$(QUIET_GEN )$(RM ) $@ $@ + && \
162
114
sed -e ' 1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
163
115
$(GITWEB_REPLACE ) $< > $@ + && \
164
116
chmod +x $@ + && \
165
117
mv $@ + $@
166
118
167
- static/gitweb.js : $(GITWEB_JSLIB_FILES )
119
+ $( MAK_DIR_GITWEB ) static/gitweb.js : $(addprefix $( MAK_DIR_GITWEB ) , $( GITWEB_JSLIB_FILES ) )
168
120
$(QUIET_GEN )$(RM ) $@ $@ + && \
169
121
cat $^ > $@ + && \
170
122
mv $@ + $@
171
123
172
- # ## Testing rules
173
-
174
- test :
175
- $(MAKE ) -C ../t gitweb-test
176
-
177
- test-installed :
178
- GITWEB_TEST_INSTALLED=' $(DESTDIR_SQ)$(gitwebdir_SQ)' \
179
- $(MAKE ) -C ../t gitweb-test
180
-
181
124
# ## Installation rules
182
125
183
- install : all
126
+ .PHONY : install-gitweb
127
+ install-gitweb : $(MAK_DIR_GITWEB_ALL )
184
128
$(INSTALL ) -d -m 755 ' $(DESTDIR_SQ)$(gitwebdir_SQ)'
185
- $(INSTALL ) -m 755 $(GITWEB_PROGRAMS ) ' $(DESTDIR_SQ)$(gitwebdir_SQ)'
129
+ $(INSTALL ) -m 755 $(addprefix $( MAK_DIR_GITWEB ) , $( GITWEB_PROGRAMS ) ) ' $(DESTDIR_SQ)$(gitwebdir_SQ)'
186
130
$(INSTALL ) -d -m 755 ' $(DESTDIR_SQ)$(gitwebstaticdir_SQ)'
187
- $(INSTALL ) -m 644 $(GITWEB_FILES ) ' $(DESTDIR_SQ)$(gitwebstaticdir_SQ)'
131
+ $(INSTALL ) -m 644 $(addprefix $(MAK_DIR_GITWEB ) ,$(GITWEB_FILES ) ) \
132
+ ' $(DESTDIR_SQ)$(gitwebstaticdir_SQ)'
133
+ ifndef NO_GITWEB
134
+ ifndef NO_PERL
135
+ install : install-gitweb
136
+ endif
137
+ endif
188
138
189
139
# ## Cleaning rules
190
140
191
- clean :
192
- $(RM ) gitweb.cgi static/gitweb.js \
193
- static/gitweb.min.js static/gitweb.min.css \
194
- GITWEB-BUILD-OPTIONS
195
-
196
- .PHONY : all clean install test test-installed .FORCE-GIT-VERSION-FILE FORCE
197
-
141
+ .PHONY : gitweb-clean
142
+ gitweb-clean :
143
+ $(RM ) $(addprefix $(MAK_DIR_GITWEB ) ,gitweb.cgi $(GITWEB_JS_IN ) \
144
+ $(GITWEB_JS_MIN ) $(GITWEB_CSS_MIN ) \
145
+ GITWEB-BUILD-OPTIONS)
146
+ clean : gitweb-clean
0 commit comments