mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2025-10-31 22:25:25 -04:00
doc: General makefile cleanup.
This is a general cleanup of the makefile in order to bring it more inline
with standard make practices. Cleanups included more use of automatic
variables, switching AM_V_GEN to AM_V_at to have one 'GEN' visible per file,
splitting copy operations to proper rules, and using order only dependencies
to properly create directories on-demand.
Changes also correct missing use of $(builddir) that has gone unnoticed as
it defaults to the current directory ('.').
Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
parent
434fd45e4b
commit
dec30252b0
1 changed files with 46 additions and 31 deletions
|
|
@ -13,6 +13,7 @@
|
||||||
# * WaylandServerAPI.xml is generated from the doxygen output and saved in
|
# * WaylandServerAPI.xml is generated from the doxygen output and saved in
|
||||||
# $(builddir)/en-US
|
# $(builddir)/en-US
|
||||||
# * run xmlto on $(builddir)/en-US, output to $(builddir)/Wayland/en-US
|
# * run xmlto on $(builddir)/en-US, output to $(builddir)/Wayland/en-US
|
||||||
|
|
||||||
publican_sources = \
|
publican_sources = \
|
||||||
$(srcdir)/sources/Wayland.ent \
|
$(srcdir)/sources/Wayland.ent \
|
||||||
$(srcdir)/sources/Wayland.xml \
|
$(srcdir)/sources/Wayland.xml \
|
||||||
|
|
@ -37,6 +38,7 @@ css_sources = \
|
||||||
$(srcdir)/sources/css/default.css \
|
$(srcdir)/sources/css/default.css \
|
||||||
$(srcdir)/sources/css/epub.css \
|
$(srcdir)/sources/css/epub.css \
|
||||||
$(srcdir)/sources/css/print.css
|
$(srcdir)/sources/css/print.css
|
||||||
|
|
||||||
img_sources = \
|
img_sources = \
|
||||||
$(srcdir)/sources/images/icon.svg \
|
$(srcdir)/sources/images/icon.svg \
|
||||||
$(srcdir)/sources/images/wayland-architecture.png \
|
$(srcdir)/sources/images/wayland-architecture.png \
|
||||||
|
|
@ -45,71 +47,84 @@ img_sources = \
|
||||||
|
|
||||||
if HAVE_XMLTO
|
if HAVE_XMLTO
|
||||||
if HAVE_XSLTPROC
|
if HAVE_XSLTPROC
|
||||||
noinst_DATA = Wayland $(publican_targets)
|
noinst_DATA = $(builddir)/Wayland $(publican_targets)
|
||||||
XMLTO_PARAM = \
|
XMLTO_PARAM = \
|
||||||
--skip-validation \
|
--skip-validation \
|
||||||
--stringparam chunk.section.depth=0 \
|
--stringparam chunk.section.depth=0 \
|
||||||
--stringparam toc.section.depth=1 \
|
--stringparam toc.section.depth=1 \
|
||||||
--stringparam html.stylesheet=css/default.css
|
--stringparam html.stylesheet=css/default.css
|
||||||
|
|
||||||
|
doxydir := $(top_builddir)/doc/doxygen
|
||||||
|
|
||||||
html_destdir = $(builddir)/Wayland/en-US/html
|
html_destdir = $(builddir)/Wayland/en-US/html
|
||||||
|
|
||||||
Wayland: $(publican_targets)
|
# Listing various directories that might need to be created.
|
||||||
$(AM_V_GEN)$(MKDIR_P) -p $(html_destdir)/css
|
alldirs := $(builddir)/en-US $(builddir)/en-US/images $(html_destdir) $(html_destdir)/css $(html_destdir)/images
|
||||||
$(AM_V_GEN)cp -f $(css_sources) $(html_destdir)/css/
|
|
||||||
$(AM_V_GEN)$(MKDIR_P) -p $(html_destdir)/images
|
|
||||||
$(AM_V_GEN)cp -f $(img_sources) $(html_destdir)/images/
|
html_css_targets = $(addprefix $(html_destdir)/css/,$(notdir $(css_sources)))
|
||||||
$(AM_V_GEN)$(XMLTO) $(XMLTO_PARAM) html en-US/Wayland.xml -o $(html_destdir)
|
html_img_targets = $(addprefix $(html_destdir)/images/,$(notdir $(img_sources)))
|
||||||
@touch Wayland
|
|
||||||
|
$(builddir)/Wayland: $(publican_targets) $(html_css_targets) $(html_img_targets) | $(builddir)/en-US
|
||||||
|
$(AM_V_GEN)$(XMLTO) $(XMLTO_PARAM) html $(builddir)/en-US/Wayland.xml -o $(html_destdir)
|
||||||
|
@touch $@
|
||||||
|
|
||||||
|
$(html_destdir)/css/%: $(srcdir)/sources/css/% | $(html_destdir)/css
|
||||||
|
$(AM_V_GEN)cp -f $< $@
|
||||||
|
|
||||||
|
$(html_destdir)/images/%: $(srcdir)/sources/images/% | $(html_destdir)/images
|
||||||
|
$(AM_V_GEN)cp -f $< $@
|
||||||
|
|
||||||
pubdir = $(docdir)/Wayland/en-US
|
pubdir = $(docdir)/Wayland/en-US
|
||||||
|
|
||||||
publican_targets = $(publican_sources:$(srcdir)/sources%=$(builddir)/en-US%) \
|
publican_targets = $(publican_sources:$(srcdir)/sources/%=$(builddir)/en-US/%) \
|
||||||
en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml \
|
$(builddir)/en-US/ProtocolSpec.xml $(builddir)/en-US/ProtocolInterfaces.xml \
|
||||||
en-US/WaylandClientAPI.xml en-US/WaylandServerAPI.xml
|
$(builddir)/en-US/WaylandClientAPI.xml $(builddir)/en-US/WaylandServerAPI.xml
|
||||||
|
|
||||||
# The Protocol.xml is purely generated and required before running publican
|
# The Protocol.xml is purely generated and required before running publican
|
||||||
en-US/ProtocolSpec.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/protocol-to-docbook.xsl
|
$(builddir)/en-US/ProtocolSpec.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/protocol-to-docbook.xsl | $(builddir)/en-US
|
||||||
$(AM_V_GEN)$(MKDIR_P) en-US/images
|
|
||||||
$(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-to-docbook.xsl \
|
$(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-to-docbook.xsl \
|
||||||
$(top_srcdir)/protocol/wayland.xml > en-US/ProtocolSpec.xml
|
$(top_srcdir)/protocol/wayland.xml > $@
|
||||||
|
|
||||||
en-US/ProtocolInterfaces.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/protocol-interfaces-to-docbook.xsl
|
$(builddir)/en-US/ProtocolInterfaces.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/protocol-interfaces-to-docbook.xsl
|
||||||
$(AM_V_GEN)$(MKDIR_P) en-US/images
|
|
||||||
$(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-interfaces-to-docbook.xsl \
|
$(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-interfaces-to-docbook.xsl \
|
||||||
$(top_srcdir)/protocol/wayland.xml > en-US/ProtocolInterfaces.xml
|
$(top_srcdir)/protocol/wayland.xml > $@
|
||||||
|
|
||||||
# * we don't want wayland-{server|client}_8h.xml to avoid duplicating output methods,
|
# * we don't want wayland-{server|client}_8h.xml to avoid duplicating output methods,
|
||||||
# move it out of the way first.
|
# move it out of the way first.
|
||||||
# * use doxygen's combine.xslt to merge the xml files into one single file
|
# * use doxygen's combine.xslt to merge the xml files into one single file
|
||||||
# * move wayland-<foo>_8h.xml back to its original location
|
# * move wayland-<foo>_8h.xml back to its original location
|
||||||
en-US/%API.xml.tmp: $(top_builddir)/doc/doxygen/xml/%/index.xml
|
$(builddir)/en-US/%API.xml.tmp: $(doxydir)/xml/%/index.xml | $(builddir)/en-US
|
||||||
$(AM_V_GEN)mv $(top_builddir)/doc/doxygen/xml/$*/wayland-$*_8h.xml \
|
$(AM_V_at)mv $(doxydir)/xml/$*/wayland-$*_8h.xml \
|
||||||
$(top_builddir)/doc/doxygen/xml/
|
$(doxydir)/xml/
|
||||||
$(AM_V_GEN)$(XSLTPROC) $(top_builddir)/doc/doxygen/xml/$*/combine.xslt \
|
$(AM_V_GEN)$(XSLTPROC) $(doxydir)/xml/$*/combine.xslt \
|
||||||
$(top_builddir)/doc/doxygen/xml/$*/index.xml > $@
|
$(doxydir)/xml/$*/index.xml > $@
|
||||||
$(AM_V_GEN)mv $(top_builddir)/doc/doxygen/xml/wayland-$*_8h.xml \
|
$(AM_V_at)mv $(doxydir)/xml/wayland-$*_8h.xml \
|
||||||
$(top_builddir)/doc/doxygen/xml/$*
|
$(doxydir)/xml/$*
|
||||||
|
|
||||||
# WaylandClientAPI.xml:
|
# WaylandClientAPI.xml:
|
||||||
# merge doxygen xml files into one single file, then transform the combined XML file into docbook format
|
# merge doxygen xml files into one single file, then transform the combined XML file into docbook format
|
||||||
en-US/WaylandClientAPI.xml: en-US/clientAPI.xml.tmp $(srcdir)/doxygen-to-publican.xsl
|
$(builddir)/en-US/WaylandClientAPI.xml: $(builddir)/en-US/clientAPI.xml.tmp $(srcdir)/doxygen-to-publican.xsl | $(builddir)/en-US
|
||||||
$(AM_V_GEN)$(XSLTPROC) --stringparam which Client $(srcdir)/doxygen-to-publican.xsl \
|
$(AM_V_GEN)$(XSLTPROC) --stringparam which Client $(srcdir)/doxygen-to-publican.xsl \
|
||||||
$(builddir)/en-US/clientAPI.xml.tmp > en-US/WaylandClientAPI.xml
|
$(builddir)/en-US/clientAPI.xml.tmp > $@
|
||||||
|
|
||||||
# WaylandServerAPI.xml: see WaylandClientAPI.xml
|
# WaylandServerAPI.xml: see WaylandClientAPI.xml
|
||||||
en-US/WaylandServerAPI.xml: en-US/serverAPI.xml.tmp $(srcdir)/doxygen-to-publican.xsl
|
$(builddir)/en-US/WaylandServerAPI.xml: $(builddir)/en-US/serverAPI.xml.tmp $(srcdir)/doxygen-to-publican.xsl | $(builddir)/en-US
|
||||||
$(AM_V_GEN)$(XSLTPROC) --stringparam which Server $(srcdir)/doxygen-to-publican.xsl \
|
$(AM_V_GEN)$(XSLTPROC) --stringparam which Server $(srcdir)/doxygen-to-publican.xsl \
|
||||||
$(builddir)/en-US/serverAPI.xml.tmp > en-US/WaylandServerAPI.xml
|
$(builddir)/en-US/serverAPI.xml.tmp > $@
|
||||||
|
|
||||||
# Copy the sources source files into en-US destination
|
# Copy the sources source files into en-US destination
|
||||||
# This is required for out-of-source-tree build as publican does not allow us
|
# This is required for out-of-source-tree build as publican does not allow us
|
||||||
# to specify the location of the source code.
|
# to specify the location of the source code.
|
||||||
$(builddir)/en-US/%: $(srcdir)/sources/% en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml en-US/WaylandClientAPI.xml $(publican_sources)
|
$(builddir)/en-US/%: $(srcdir)/sources/% $(builddir)/en-US/ProtocolSpec.xml $(builddir)/en-US/ProtocolInterfaces.xml $(builddir)/en-US/WaylandClientAPI.xml $(publican_sources) | $(builddir)/en-US/images
|
||||||
$(AM_V_GEN)cp -f $< $@
|
$(AM_V_GEN)cp -f $< $@
|
||||||
$(AM_V_GEN)chmod a+w $@
|
$(AM_V_at)chmod a+w $@
|
||||||
|
|
||||||
CLEANFILES = en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml en-US/WaylandClientAPI.xml $(publican_targets)
|
# general rule to create one of the listed directories.
|
||||||
|
$(alldirs):
|
||||||
|
$(AM_V_GEN)$(MKDIR_P) $@
|
||||||
|
|
||||||
|
CLEANFILES = $(builddir)/en-US/ProtocolSpec.xml $(builddir)/en-US/ProtocolInterfaces.xml $(builddir)/en-US/WaylandClientAPI.xml $(publican_targets)
|
||||||
|
|
||||||
clean-local:
|
clean-local:
|
||||||
$(AM_V_at)rm -fr $(builddir)/en-US
|
$(AM_V_at)rm -fr $(builddir)/en-US
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue