@matheusbsbs / matheus-bagliano / commits / 8de096b671
Fork 0

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 <marada@uwaterloo.co> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed Apr 15, 2010 at 08:57 UTC 8de096b6718048e84ee88e604a94b22937a0758e
1 file changed +38 -37
gitweb/Makefile
+38 -37
@@ -80,54 +80,55 @@ endif
80
81 all:: gitweb.cgi
82
83 -FILES = gitweb.cgi
83 ifdef JSMIN
85 -FILES += gitweb.min.js
84 GITWEB_JS = gitweb.min.js
85 +all:: gitweb.min.js
86 +gitweb.min.js: gitweb.js GITWEB-BUILD-OPTIONS
87 + $(QUIET_GEN)$(JSMIN) <$< >$@
88 endif
89 +
90 ifdef CSSMIN
89 -FILES += gitweb.min.css
91 GITWEB_CSS = gitweb.min.css
92 +all:: gitweb.min.css
93 +gitweb.min.css: gitweb.css GITWEB-BUILD-OPTIONS
94 + $(QUIET_GEN)$(CSSMIN) <$ >$@
95 endif
92 -gitweb.cgi: gitweb.perl $(GITWEB_JS) $(GITWEB_CSS)
96
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
124 $(QUIET_GEN)$(RM) $@ $@+ && \
125 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) $< >$@+ && \
127 chmod +x $@+ && \
128 mv $@+ $@
129
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 -
130 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
134
133 -.PHONY: all clean .FORCE-GIT-VERSION-FILE