[PATCH wayland v4 1/5] build/doc: Ensure destination dir exists despite VPATH
Pekka Paalanen
ppaalanen at gmail.com
Wed Aug 29 08:57:47 UTC 2018
On Tue, 28 Aug 2018 23:19:15 +0100
Daniel Stone <daniels at collabora.com> wrote:
> Make considers a variable called VPATH when trying to satisfy
> dependencies, e.g. for a target 'foo', it will consider the target
> extant if VPATH is '../../bar' and '../../bar/foo' exists.
>
> Part of the doc build, the '$(alldirs)' target, exists to create the
> target directories if they do not exist. For example, before generating
> xml/wayland-architecture.png, it will ensure the 'xml' target is
> considered up-to-date thanks to the target dependency.
>
> Creating $(srcdir)/doc/doxygen/xml thus means that the 'xml' dependency
> will be satisfied, so we'll never create the output directory, and the
> doc build will fail.
>
> Change the alldirs target list to be absolute paths, so VPATH will not
> be consulted and defeat the entire point of what we're trying to do.
> This fixes the Meson build, where we later create
> doc/doxygen/xml/meson.build.
>
> Signed-off-by: Daniel Stone <daniels at collabora.com>
> ---
> doc/doxygen/Makefile.am | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
Hi Daniel,
this makes sense to me, so even though I didn't test:
Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
Thanks,
pq
>
> diff --git a/doc/doxygen/Makefile.am b/doc/doxygen/Makefile.am
> index f8b0b3aa..31d953c0 100644
> --- a/doc/doxygen/Makefile.am
> +++ b/doc/doxygen/Makefile.am
> @@ -53,20 +53,21 @@ diagram_maps := $(patsubst $(diagramsdir)/%,xml/%,$(diagramssrc:.gv=.map))
> dist_man3_MANS = $(shell test -d man && find man/man3 -name "wl_*.3" -printf "man/man3/%P\n")
>
> # Listing various directories that might need to be created.
> -alldirs := xml xml/Client xml/Server man/man3 html/Client html/Server
> +alldirsrel := xml xml/Client xml/Server man/man3 html/Client html/Server
> +alldirs := $(patsubst %,$(CURDIR)/%,$(alldirsrel))
>
> $(diagrams): $(diagramssrc)
>
> $(diagram_maps): $(diagramssrc)
>
> -xml/%/index.xml: $(top_srcdir)/src/scanner.c $(scanned_src_files_%) wayland.doxygen $(diagrams) $(diagram_maps) | xml/%
> +xml/%/index.xml: $(top_srcdir)/src/scanner.c $(scanned_src_files_%) wayland.doxygen $(diagrams) $(diagram_maps) | $(CURDIR)/xml/%
> $(AM_V_GEN)(cat wayland.doxygen; \
> echo "GENERATE_XML=YES"; \
> echo "XML_OUTPUT=xml/$*"; \
> echo "INPUT= $(scanned_src_files_$*)"; \
> ) | $(DOXYGEN) -
>
> -html/%/index.html: $(scanned_src_files_%) wayland.doxygen $(diagrams) $(diagram_maps) | html/%
> +html/%/index.html: $(scanned_src_files_%) wayland.doxygen $(diagrams) $(diagram_maps) | $(CURDIR)/html/%
> $(AM_V_GEN)(cat wayland.doxygen; \
> echo "PROJECT_NAME=\"Wayland $* API\""; \
> echo "GENERATE_HTML=YES"; \
> @@ -74,7 +75,7 @@ html/%/index.html: $(scanned_src_files_%) wayland.doxygen $(diagrams) $(diagram_
> echo "INPUT= $(scanned_src_files_$*) $(extra_doxygen_$*)"; \
> ) | $(DOXYGEN) -
>
> -man/man3/wl_display.3: $(top_srcdir)/src/scanner.c $(scanned_src_files_man) wayland.doxygen | man/man3
> +man/man3/wl_display.3: $(top_srcdir)/src/scanner.c $(scanned_src_files_man) wayland.doxygen | $(CURDIR)/man/man3
> $(AM_V_GEN)(cat wayland.doxygen; \
> echo "GENERATE_MAN=YES"; \
> echo "MAN_OUTPUT=man"; \
> @@ -82,10 +83,10 @@ man/man3/wl_display.3: $(top_srcdir)/src/scanner.c $(scanned_src_files_man) wayl
> echo "INPUT= $(scanned_src_files_man)"; \
> ) | $(DOXYGEN) -
>
> -xml/%.png: $(diagramsdir)/%.gv | xml
> +xml/%.png: $(diagramsdir)/%.gv | $(CURDIR)/xml
> $(AM_V_GEN)$(DOT) -Tpng -o$@ $<
>
> -xml/%.map: $(diagramsdir)/%.gv | xml
> +xml/%.map: $(diagramsdir)/%.gv | $(CURDIR)/xml
> $(AM_V_GEN)$(DOT) -Tcmapx_np -o$@ $<
>
> # general rule to create one of the listed directories.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20180829/1f63d75d/attachment.sig>
More information about the wayland-devel
mailing list