[master] aa893088e Renovate this Makefile
Poul-Henning Kamp
phk at FreeBSD.org
Tue Oct 9 09:09:13 UTC 2018
commit aa893088e6ba2648d5b9456bf65bf087d16654cf
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Tue Oct 9 09:05:24 2018 +0000
Renovate this Makefile
When producing files with "foo > file", always use the pattern:
foo > file.tmp
mv file.tmp file
Otherwise program failures end up generating partial content and
make will not even rerun the failing program next time you type make.
Actually clean CLEANFILES in the clean target.
The reference dir is not built, but it should be in the distfile
diff --git a/doc/sphinx/Makefile.am b/doc/sphinx/Makefile.am
index 54f930caf..cf67a6106 100644
--- a/doc/sphinx/Makefile.am
+++ b/doc/sphinx/Makefile.am
@@ -25,7 +25,7 @@ help:
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
- -rm -rf $(BUILDDIR)/*
+ -rm -rf $(BUILDDIR)/* $(CLEANFILES)
# work around for make html called within doc/sphinx
.PHONY: graphviz
@@ -101,6 +101,7 @@ EXTRA_DIST = \
installation \
phk \
tutorial \
+ reference \
users-guide \
vtc-syntax.py \
whats-new
@@ -116,11 +117,13 @@ distclean-local:
rm -rf $(BUILDDIR)
include/cli.rst: $(top_builddir)/bin/varnishd/varnishd
- $(top_builddir)/bin/varnishd/varnishd -x cli > $@
+ $(top_builddir)/bin/varnishd/varnishd -x cli > ${@}_
+ mv ${@}_ ${@}
BUILT_SOURCES = include/cli.rst
include/params.rst: $(top_builddir)/bin/varnishd/varnishd
- $(top_builddir)/bin/varnishd/varnishd -x parameter > $@
+ $(top_builddir)/bin/varnishd/varnishd -x parameter > ${@}_
+ mv ${@}_ ${@}
BUILT_SOURCES += include/params.rst
COUNTERS = \
@@ -134,52 +137,64 @@ COUNTERS = \
$(top_srcdir)/bin/varnishd/VSC_lck.vsc
include/counters.rst: $(top_srcdir)/lib/libvcc/vsctool.py $(COUNTERS)
- echo -n '' > $@
+ echo -n '' > ${@}_
for i in $(COUNTERS); do \
- $(PYTHON) $(top_srcdir)/lib/libvcc/vsctool.py -r $$i >> $@ ; \
+ $(PYTHON) $(top_srcdir)/lib/libvcc/vsctool.py -r $$i >> ${@}_ ; \
done
+ mv ${@}_ ${@}
BUILT_SOURCES += include/counters.rst
# XXX add varnishstat here when it's been _opt2rst'ed
include/varnishncsa_options.rst: $(top_builddir)/bin/varnishncsa/varnishncsa
- $(top_builddir)/bin/varnishncsa/varnishncsa --options > $@
+ $(top_builddir)/bin/varnishncsa/varnishncsa --options > ${@}_
+ mv ${@}_ ${@}
include/varnishncsa_synopsis.rst: $(top_builddir)/bin/varnishncsa/varnishncsa
- $(top_builddir)/bin/varnishncsa/varnishncsa --synopsis > $@
+ $(top_builddir)/bin/varnishncsa/varnishncsa --synopsis > ${@}_
+ mv ${@}_ ${@}
BUILT_SOURCES += include/varnishncsa_options.rst \
include/varnishncsa_synopsis.rst
include/varnishlog_options.rst: $(top_builddir)/bin/varnishlog/varnishlog
- $(top_builddir)/bin/varnishlog/varnishlog --options > $@
+ $(top_builddir)/bin/varnishlog/varnishlog --options > ${@}_
+ mv ${@}_ ${@}
include/varnishlog_synopsis.rst: $(top_builddir)/bin/varnishlog/varnishlog
- $(top_builddir)/bin/varnishlog/varnishlog --synopsis > $@
+ $(top_builddir)/bin/varnishlog/varnishlog --synopsis > ${@}_
+ mv ${@}_ ${@}
BUILT_SOURCES += include/varnishlog_options.rst \
include/varnishlog_synopsis.rst
include/varnishtop_options.rst: $(top_builddir)/bin/varnishtop/varnishtop
- $(top_builddir)/bin/varnishtop/varnishtop --options > $@
+ $(top_builddir)/bin/varnishtop/varnishtop --options > ${@}_
+ mv ${@}_ ${@}
include/varnishtop_synopsis.rst: $(top_builddir)/bin/varnishtop/varnishtop
- $(top_builddir)/bin/varnishtop/varnishtop --synopsis > $@
+ $(top_builddir)/bin/varnishtop/varnishtop --synopsis > ${@}_
+ mv ${@}_ ${@}
BUILT_SOURCES += include/varnishtop_options.rst \
include/varnishtop_synopsis.rst
include/varnishhist_options.rst: $(top_builddir)/bin/varnishhist/varnishhist
- $(top_builddir)/bin/varnishhist/varnishhist --options > $@
+ $(top_builddir)/bin/varnishhist/varnishhist --options > ${@}_
+ mv ${@}_ ${@}
include/varnishhist_synopsis.rst: $(top_builddir)/bin/varnishhist/varnishhist
- $(top_builddir)/bin/varnishhist/varnishhist --synopsis > $@
+ $(top_builddir)/bin/varnishhist/varnishhist --synopsis > ${@}_
+ mv ${@}_ ${@}
BUILT_SOURCES += include/varnishhist_options.rst \
include/varnishhist_synopsis.rst
include/varnishstat_options.rst: $(top_builddir)/bin/varnishstat/varnishstat
- $(top_builddir)/bin/varnishstat/varnishstat --options > $@
+ $(top_builddir)/bin/varnishstat/varnishstat --options > ${@}_
+ mv ${@}_ ${@}
include/varnishstat_synopsis.rst: $(top_builddir)/bin/varnishstat/varnishstat
- $(top_builddir)/bin/varnishstat/varnishstat --synopsis > $@
+ $(top_builddir)/bin/varnishstat/varnishstat --synopsis > ${@}_
+ mv ${@}_ ${@}
BUILT_SOURCES += include/varnishstat_options.rst \
include/varnishstat_synopsis.rst
include/vsl-tags.rst: $(top_builddir)/lib/libvarnishapi/vsl2rst
- $(top_builddir)/lib/libvarnishapi/vsl2rst > $@
+ $(top_builddir)/lib/libvarnishapi/vsl2rst > ${@}_
+ mv ${@}_ ${@}
BUILT_SOURCES += include/vsl-tags.rst
VTCSYN_SRC = $(top_srcdir)/bin/varnishtest/vtc.c \
@@ -193,14 +208,10 @@ VTCSYN_SRC = $(top_srcdir)/bin/varnishtest/vtc.c \
$(top_srcdir)/bin/varnishtest/vtc_syslog.c \
$(top_srcdir)/bin/varnishtest/vtc_varnish.c
include/vtc-syntax.rst: vtc-syntax.py $(VTCSYN_SRC)
- $(PYTHON) $(top_srcdir)/doc/sphinx/vtc-syntax.py $(VTCSYN_SRC) > $@
+ $(PYTHON) $(top_srcdir)/doc/sphinx/vtc-syntax.py $(VTCSYN_SRC) > ${@}_
+ mv ${@}_ ${@}
BUILT_SOURCES += include/vtc-syntax.rst
-.PHONY: reference
-reference:
- test -d $@ || mkdir $@
-BUILT_SOURCES += reference
-
reference/vmod_std.generated.rst: reference $(top_builddir)/lib/libvmod_std/vmod_std.rst
cp $(top_builddir)/lib/libvmod_std/vmod_std.rst $@ || true
BUILT_SOURCES += reference/vmod_std.generated.rst
@@ -231,5 +242,6 @@ BUILT_SOURCES += reference/vmod_proxy.generated.rst
EXTRA_DIST += $(BUILT_SOURCES)
MAINTAINERCLEANFILES = $(EXTRA_DIST)
+CLEANFILES = $(BUILT_SOURCES)
.NOPATH: $(BUILT_SOURCES)
More information about the varnish-commit
mailing list