gitweb/Makefile: prepare to merge into top-level Makefile

Since the "gitweb/Makefile" was split out from the top-level Makefile
in 62331ef163 (gitweb: Makefile improvements, 2010-01-30) we've kept
the inter-dependencies between the two, and worse have dealt with a
lot of duplication as a result.

In preparation for merging the two again add a MAK_DIR_GITWEB variable
to various rules in it. This will allow us to set this variable to
"gitweb/" as we include it in the top-level Makefile, which will
minimize the size of the subsequent diff.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Ævar Arnfjörð Bjarmason 2022-06-28 12:15:58 +02:00 committed by Junio C Hamano
parent 564ebde3d3
commit b82d66eb0c
1 changed files with 18 additions and 11 deletions

View File

@ -2,6 +2,8 @@
all:: all::
.PHONY: all .PHONY: all


MAK_DIR_GITWEB =

# Define V=1 to have a more verbose compile. # Define V=1 to have a more verbose compile.
# #
# Define JSMIN to point to JavaScript minifier that functions as # Define JSMIN to point to JavaScript minifier that functions as
@ -106,8 +108,9 @@ GITWEB_PROGRAMS = gitweb.cgi
GITWEB_JS_MIN = static/gitweb.min.js GITWEB_JS_MIN = static/gitweb.min.js
ifdef JSMIN ifdef JSMIN
GITWEB_JS = $(GITWEB_JS_MIN) GITWEB_JS = $(GITWEB_JS_MIN)
all:: $(GITWEB_JS_MIN) all:: $(MAK_DIR_GITWEB)$(GITWEB_JS_MIN)
$(GITWEB_JS_MIN): $(GITWEB_JS_IN) GITWEB-BUILD-OPTIONS $(MAK_DIR_GITWEB)$(GITWEB_JS_MIN): $(MAK_DIR_GITWEB)GITWEB-BUILD-OPTIONS
$(MAK_DIR_GITWEB)$(GITWEB_JS_MIN): $(MAK_DIR_GITWEB)$(GITWEB_JS_IN)
$(QUIET_GEN)$(JSMIN) <$< >$@ $(QUIET_GEN)$(JSMIN) <$< >$@
endif endif
GITWEB_FILES += $(GITWEB_JS) GITWEB_FILES += $(GITWEB_JS)
@ -115,8 +118,9 @@ GITWEB_FILES += $(GITWEB_JS)
GITWEB_CSS_MIN = static/gitweb.min.css GITWEB_CSS_MIN = static/gitweb.min.css
ifdef CSSMIN ifdef CSSMIN
GITWEB_CSS = $(GITWEB_CSS_MIN) GITWEB_CSS = $(GITWEB_CSS_MIN)
all:: $(GITWEB_CSS_MIN) all:: $(MAK_DIR_GITWEB)$(GITWEB_CSS_MIN)
$(GITWEB_CSS_MIN): $(GITWEB_CSS_IN) GITWEB-BUILD-OPTIONS $(MAK_DIR_GITWEB)$(GITWEB_CSS_MIN): $(MAK_DIR_GITWEB)GITWEB-BUILD-OPTIONS
$(MAK_DIR_GITWEB)$(GITWEB_CSS_MIN): $(MAK_DIR_GITWEB)$(GITWEB_CSS_IN)
$(QUIET_GEN)$(CSSMIN) <$< >$@ $(QUIET_GEN)$(CSSMIN) <$< >$@
endif endif
GITWEB_FILES += $(GITWEB_CSS) GITWEB_FILES += $(GITWEB_CSS)
@ -161,19 +165,20 @@ GITWEB_REPLACE = \
-e 's|++HIGHLIGHT_BIN++|$(HIGHLIGHT_BIN)|g' -e 's|++HIGHLIGHT_BIN++|$(HIGHLIGHT_BIN)|g'


.PHONY: FORCE .PHONY: FORCE
GITWEB-BUILD-OPTIONS: FORCE $(MAK_DIR_GITWEB)GITWEB-BUILD-OPTIONS: FORCE
@rm -f $@+ @rm -f $@+
@echo "x" '$(PERL_PATH_SQ)' $(GITWEB_REPLACE) "$(JSMIN)|$(CSSMIN)" >$@+ @echo "x" '$(PERL_PATH_SQ)' $(GITWEB_REPLACE) "$(JSMIN)|$(CSSMIN)" >$@+
@cmp -s $@+ $@ && rm -f $@+ || mv -f $@+ $@ @cmp -s $@+ $@ && rm -f $@+ || mv -f $@+ $@


gitweb.cgi: gitweb.perl GITWEB-BUILD-OPTIONS $(MAK_DIR_GITWEB)gitweb.cgi: $(MAK_DIR_GITWEB)GITWEB-BUILD-OPTIONS
$(MAK_DIR_GITWEB)gitweb.cgi: $(MAK_DIR_GITWEB)gitweb.perl
$(QUIET_GEN)$(RM) $@ $@+ && \ $(QUIET_GEN)$(RM) $@ $@+ && \
sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \ sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
$(GITWEB_REPLACE) $< >$@+ && \ $(GITWEB_REPLACE) $< >$@+ && \
chmod +x $@+ && \ chmod +x $@+ && \
mv $@+ $@ mv $@+ $@


static/gitweb.js: $(GITWEB_JSLIB_FILES) $(MAK_DIR_GITWEB)static/gitweb.js: $(addprefix $(MAK_DIR_GITWEB),$(GITWEB_JSLIB_FILES))
$(QUIET_GEN)$(RM) $@ $@+ && \ $(QUIET_GEN)$(RM) $@ $@+ && \
cat $^ >$@+ && \ cat $^ >$@+ && \
mv $@+ $@ mv $@+ $@
@ -194,14 +199,16 @@ test-installed:
.PHONY: install .PHONY: install
install: all install: all
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitwebdir_SQ)' $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitwebdir_SQ)'
$(INSTALL) -m 755 $(GITWEB_PROGRAMS) '$(DESTDIR_SQ)$(gitwebdir_SQ)' $(INSTALL) -m 755 $(addprefix $(MAK_DIR_GITWEB),$(GITWEB_PROGRAMS)) \
'$(DESTDIR_SQ)$(gitwebdir_SQ)'
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitwebstaticdir_SQ)' $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitwebstaticdir_SQ)'
$(INSTALL) -m 644 $(GITWEB_FILES) '$(DESTDIR_SQ)$(gitwebstaticdir_SQ)' $(INSTALL) -m 644 $(addprefix $(MAK_DIR_GITWEB),$(GITWEB_FILES)) \
'$(DESTDIR_SQ)$(gitwebstaticdir_SQ)'


### Cleaning rules ### Cleaning rules


.PHONY: clean .PHONY: clean
clean: clean:
$(RM) gitweb.cgi $(GITWEB_JS_IN) \ $(RM) $(addprefix $(MAK_DIR_GITWEB),gitweb.cgi $(GITWEB_JS_IN) \
$(GITWEB_JS_MIN) $(GITWEB_CSS_MIN) \ $(GITWEB_JS_MIN) $(GITWEB_CSS_MIN) \
GITWEB-BUILD-OPTIONS GITWEB-BUILD-OPTIONS)