Skip to content

Commit 8de096b

Browse files
committed
gitweb: simplify gitweb.min.* generation and clean-up rules
GITWEB_CSS and GITWEB_JS are meant to be "what URI should the installed cgi script use to refer to the stylesheet and JavaScript", never "this is the name of the file we are building". Don't use them to decide what file to build minified versions in. While we are at it, lose FILES that is used only for "clean" target in a misguided way. "make clean" should try to remove all the potential build artifacts regardless of a minor configuration change. Instead of trying to remove only the build product "make clean" would have created if it were run without "clean", explicitly list the three potential build products for removal. Tested-by: Mark Rada <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent a6ccbbd commit 8de096b

File tree

1 file changed

+38
-37
lines changed

1 file changed

+38
-37
lines changed

gitweb/Makefile

Lines changed: 38 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -80,54 +80,55 @@ endif
8080

8181
all:: gitweb.cgi
8282

83-
FILES = gitweb.cgi
8483
ifdef JSMIN
85-
FILES += gitweb.min.js
8684
GITWEB_JS = gitweb.min.js
85+
all:: gitweb.min.js
86+
gitweb.min.js: gitweb.js GITWEB-BUILD-OPTIONS
87+
$(QUIET_GEN)$(JSMIN) <$< >$@
8788
endif
89+
8890
ifdef CSSMIN
89-
FILES += gitweb.min.css
9091
GITWEB_CSS = gitweb.min.css
92+
all:: gitweb.min.css
93+
gitweb.min.css: gitweb.css GITWEB-BUILD-OPTIONS
94+
$(QUIET_GEN)$(CSSMIN) <$ >$@
9195
endif
92-
gitweb.cgi: gitweb.perl $(GITWEB_JS) $(GITWEB_CSS)
9396

94-
gitweb.cgi:
97+
GITWEB_REPLACE = \
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+
GITWEB-BUILD-OPTIONS: FORCE
119+
@rm -f $@+
120+
@echo "x" '$(PERL_PATH_SQ)' $(GITWEB_REPLACE) "$(JSMIN)|$(CSSMIN)" >$@+
121+
@cmp -s $@+ $@ && rm -f $@+ || mv -f $@+ $@
122+
123+
gitweb.cgi: gitweb.perl GITWEB-BUILD-OPTIONS
95124
$(QUIET_GEN)$(RM) $@ $@+ && \
96125
sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
97-
-e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \
98-
-e 's|++GIT_BINDIR++|$(bindir)|g' \
99-
-e 's|++GITWEB_CONFIG++|$(GITWEB_CONFIG)|g' \
100-
-e 's|++GITWEB_CONFIG_SYSTEM++|$(GITWEB_CONFIG_SYSTEM)|g' \
101-
-e 's|++GITWEB_HOME_LINK_STR++|$(GITWEB_HOME_LINK_STR)|g' \
102-
-e 's|++GITWEB_SITENAME++|$(GITWEB_SITENAME)|g' \
103-
-e 's|++GITWEB_PROJECTROOT++|$(GITWEB_PROJECTROOT)|g' \
104-
-e 's|"++GITWEB_PROJECT_MAXDEPTH++"|$(GITWEB_PROJECT_MAXDEPTH)|g' \
105-
-e 's|++GITWEB_EXPORT_OK++|$(GITWEB_EXPORT_OK)|g' \
106-
-e 's|++GITWEB_STRICT_EXPORT++|$(GITWEB_STRICT_EXPORT)|g' \
107-
-e 's|++GITWEB_BASE_URL++|$(GITWEB_BASE_URL)|g' \
108-
-e 's|++GITWEB_LIST++|$(GITWEB_LIST)|g' \
109-
-e 's|++GITWEB_HOMETEXT++|$(GITWEB_HOMETEXT)|g' \
110-
-e 's|++GITWEB_CSS++|$(GITWEB_CSS)|g' \
111-
-e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \
112-
-e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \
113-
-e 's|++GITWEB_JS++|$(GITWEB_JS)|g' \
114-
-e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \
115-
-e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g' \
116-
$< >$@+ && \
126+
$(GITWEB_REPLACE) $< >$@+ && \
117127
chmod +x $@+ && \
118128
mv $@+ $@
119129

120-
ifdef JSMIN
121-
gitweb.min.js: gitweb.js
122-
$(QUIET_GEN)$(JSMIN) <$< >$@
123-
endif # JSMIN
124-
125-
ifdef CSSMIN
126-
gitweb.min.css: gitweb.css
127-
$(QUIET_GEN)$(CSSMIN) <$ >$@
128-
endif
129-
130130
clean:
131-
$(RM) $(FILES)
131+
$(RM) gitweb.cgi gitweb.min.js gitweb.min.css GITWEB-BUILD-OPTIONS
132+
133+
.PHONY: all clean .FORCE-GIT-VERSION-FILE FORCE
132134

133-
.PHONY: all clean .FORCE-GIT-VERSION-FILE

0 commit comments

Comments
 (0)