meson: build texi doc
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
bac35bf517
commit
acfdaac577
106
Makefile
106
Makefile
@ -11,7 +11,6 @@ BUILD_DIR=$(CURDIR)
|
||||
SRC_PATH=.
|
||||
|
||||
UNCHECKED_GOALS := %clean TAGS cscope ctags dist \
|
||||
html info pdf txt \
|
||||
help check-help print-% \
|
||||
docker docker-% vm-help vm-test vm-build-%
|
||||
|
||||
@ -128,20 +127,13 @@ generated-files-y += .git-submodule-status
|
||||
Makefile: ;
|
||||
configure: ;
|
||||
|
||||
.PHONY: all clean cscope distclean html info install install-doc \
|
||||
pdf txt recurse-all dist msi FORCE
|
||||
.PHONY: all clean cscope distclean install \
|
||||
recurse-all dist msi FORCE
|
||||
|
||||
$(call set-vpath, $(SRC_PATH))
|
||||
|
||||
LIBS+=-lz $(LIBS_TOOLS)
|
||||
|
||||
ifdef BUILD_DOCS
|
||||
DOCS+=docs/interop/qemu-qmp-ref.html docs/interop/qemu-qmp-ref.txt docs/interop/qemu-qmp-ref.7
|
||||
DOCS+=docs/interop/qemu-ga-ref.html docs/interop/qemu-ga-ref.txt docs/interop/qemu-ga-ref.7
|
||||
else
|
||||
DOCS=
|
||||
endif
|
||||
|
||||
SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet) BUILD_DIR=$(BUILD_DIR)
|
||||
|
||||
ifneq ($(wildcard config-host.mak),)
|
||||
@ -150,7 +142,7 @@ endif
|
||||
|
||||
include $(SRC_PATH)/tests/Makefile.include
|
||||
|
||||
all: $(DOCS) $(if $(BUILD_DOCS),sphinxdocs) recurse-all modules
|
||||
all: recurse-all modules
|
||||
|
||||
# LIBFDT_lib="": avoid breaking existing trees with objects requiring -fPIC
|
||||
DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_lib=""
|
||||
@ -223,7 +215,7 @@ qemu-%.tar.bz2:
|
||||
|
||||
distclean: clean ninja-distclean
|
||||
-test -f ninjatool && ./ninjatool $(if $(V),-v,) -t clean -g
|
||||
rm -f config-host.mak config-host.h* $(DOCS)
|
||||
rm -f config-host.mak config-host.h*
|
||||
rm -f tests/tcg/config-*.mak
|
||||
rm -f config-all-disas.mak config.status
|
||||
rm -f po/*.mo tests/qemu-iotests/common.env
|
||||
@ -234,12 +226,6 @@ distclean: clean ninja-distclean
|
||||
rm -f Makefile.ninja ninjatool ninjatool.stamp Makefile.mtest
|
||||
rm -f config.log
|
||||
rm -f linux-headers/asm
|
||||
rm -f docs/version.texi
|
||||
rm -f docs/interop/qemu-ga-qapi.texi docs/interop/qemu-qmp-qapi.texi
|
||||
rm -f docs/interop/qemu-qmp-ref.7 docs/interop/qemu-ga-ref.7
|
||||
rm -f docs/interop/qemu-qmp-ref.txt docs/interop/qemu-ga-ref.txt
|
||||
rm -f docs/interop/qemu-qmp-ref.pdf docs/interop/qemu-ga-ref.pdf
|
||||
rm -f docs/interop/qemu-qmp-ref.html docs/interop/qemu-ga-ref.html
|
||||
rm -Rf .sdk
|
||||
|
||||
KEYMAPS=da en-gb et fr fr-ch is lt no pt-br sv \
|
||||
@ -273,29 +259,6 @@ else
|
||||
BLOBS=
|
||||
endif
|
||||
|
||||
install-doc: $(DOCS)
|
||||
$(INSTALL_DIR) "$(DESTDIR)$(qemu_docdir)"
|
||||
$(INSTALL_DATA) docs/interop/qemu-qmp-ref.html "$(DESTDIR)$(qemu_docdir)/interop"
|
||||
$(INSTALL_DATA) docs/interop/qemu-qmp-ref.txt "$(DESTDIR)$(qemu_docdir)/interop"
|
||||
ifdef CONFIG_POSIX
|
||||
$(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1"
|
||||
$(INSTALL_DATA) $(MANUAL_BUILDDIR)/system/qemu.1 "$(DESTDIR)$(mandir)/man1"
|
||||
$(INSTALL_DIR) "$(DESTDIR)$(mandir)/man7"
|
||||
$(INSTALL_DATA) docs/interop/qemu-qmp-ref.7 "$(DESTDIR)$(mandir)/man7"
|
||||
ifeq ($(CONFIG_GUEST_AGENT),y)
|
||||
$(INSTALL_DATA) docs/interop/qemu-ga-ref.html "$(DESTDIR)$(qemu_docdir)/interop"
|
||||
$(INSTALL_DATA) docs/interop/qemu-ga-ref.txt "$(DESTDIR)$(qemu_docdir)/interop"
|
||||
$(INSTALL_DATA) docs/interop/qemu-ga-ref.7 "$(DESTDIR)$(mandir)/man7"
|
||||
endif
|
||||
endif
|
||||
ifdef CONFIG_VIRTFS
|
||||
$(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1"
|
||||
$(INSTALL_DATA) $(MANUAL_BUILDDIR)/tools/virtfs-proxy-helper.1 "$(DESTDIR)$(mandir)/man1"
|
||||
endif
|
||||
ifeq ($(CONFIG_LINUX)$(CONFIG_SECCOMP)$(CONFIG_LIBCAP_NG),yyy)
|
||||
$(INSTALL_DATA) $(MANUAL_BUILDDIR)/tools/virtiofsd.1 "$(DESTDIR)$(mandir)/man1"
|
||||
endif
|
||||
|
||||
install-datadir:
|
||||
$(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)"
|
||||
|
||||
@ -310,8 +273,7 @@ ICON_SIZES=16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512
|
||||
|
||||
# Needed by "meson install"
|
||||
export DESTDIR
|
||||
install: all $(if $(BUILD_DOCS),install-doc) \
|
||||
install-datadir install-localstatedir
|
||||
install: all install-datadir install-localstatedir
|
||||
ifdef CONFIG_TRACE_SYSTEMTAP
|
||||
$(INSTALL_PROG) "scripts/qemu-trace-stap" $(DESTDIR)$(bindir)
|
||||
endif
|
||||
@ -342,62 +304,6 @@ endif
|
||||
$(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(qemu_datadir)/keymaps"; \
|
||||
done
|
||||
|
||||
# documentation
|
||||
MAKEINFO=makeinfo
|
||||
MAKEINFOINCLUDES= -I docs -I $(<D) -I $(@D)
|
||||
MAKEINFOFLAGS=--no-split --number-sections $(MAKEINFOINCLUDES)
|
||||
TEXI2PODFLAGS=$(MAKEINFOINCLUDES) -DVERSION="$(VERSION)" -DCONFDIR="$(qemu_confdir)"
|
||||
TEXI2PDFFLAGS=$(if $(V),,--quiet) -I $(SRC_PATH) $(MAKEINFOINCLUDES)
|
||||
|
||||
docs/version.texi: $(SRC_PATH)/VERSION config-host.mak
|
||||
$(call quiet-command,(\
|
||||
echo "@set VERSION $(VERSION)" && \
|
||||
echo "@set CONFDIR $(qemu_confdir)" \
|
||||
)> $@,"GEN","$@")
|
||||
|
||||
%.html: %.texi docs/version.texi
|
||||
$(call quiet-command,LC_ALL=C $(MAKEINFO) $(MAKEINFOFLAGS) --no-headers \
|
||||
--html $< -o $@,"GEN","$@")
|
||||
|
||||
%.info: %.texi docs/version.texi
|
||||
$(call quiet-command,$(MAKEINFO) $(MAKEINFOFLAGS) $< -o $@,"GEN","$@")
|
||||
|
||||
%.txt: %.texi docs/version.texi
|
||||
$(call quiet-command,LC_ALL=C $(MAKEINFO) $(MAKEINFOFLAGS) --no-headers \
|
||||
--plaintext $< -o $@,"GEN","$@")
|
||||
|
||||
%.pdf: %.texi docs/version.texi
|
||||
$(call quiet-command,texi2pdf $(TEXI2PDFFLAGS) $< -o $@,"GEN","$@")
|
||||
|
||||
docs/interop/qemu-qmp-qapi.texi: qapi/qapi-doc.texi
|
||||
@cp -p $< $@
|
||||
|
||||
docs/interop/qemu-ga-qapi.texi: qga/qga-qapi-doc.texi
|
||||
@cp -p $< $@
|
||||
|
||||
html: docs/interop/qemu-qmp-ref.html docs/interop/qemu-ga-ref.html sphinxdocs
|
||||
info: docs/interop/qemu-qmp-ref.info docs/interop/qemu-ga-ref.info
|
||||
pdf: docs/interop/qemu-qmp-ref.pdf docs/interop/qemu-ga-ref.pdf
|
||||
txt: docs/interop/qemu-qmp-ref.txt docs/interop/qemu-ga-ref.txt
|
||||
|
||||
docs/interop/qemu-ga-ref.dvi docs/interop/qemu-ga-ref.html \
|
||||
docs/interop/qemu-ga-ref.info docs/interop/qemu-ga-ref.pdf \
|
||||
docs/interop/qemu-ga-ref.txt docs/interop/qemu-ga-ref.7: \
|
||||
docs/interop/qemu-ga-ref.texi docs/interop/qemu-ga-qapi.texi
|
||||
|
||||
docs/interop/qemu-qmp-ref.dvi docs/interop/qemu-qmp-ref.html \
|
||||
docs/interop/qemu-qmp-ref.info docs/interop/qemu-qmp-ref.pdf \
|
||||
docs/interop/qemu-qmp-ref.txt docs/interop/qemu-qmp-ref.7: \
|
||||
docs/interop/qemu-qmp-ref.texi docs/interop/qemu-qmp-qapi.texi
|
||||
|
||||
$(filter %.1 %.7 %.8,$(DOCS)): scripts/texi2pod.pl
|
||||
$(call quiet-command, \
|
||||
perl -Ww -- $(SRC_PATH)/scripts/texi2pod.pl $(TEXI2PODFLAGS) $< $@.pod && \
|
||||
$(POD2MAN) --section=$(subst .,,$(suffix $@)) --center=" " --release=" " $@.pod > $@, \
|
||||
"GEN","$@")
|
||||
|
||||
man: $(filter %.1 %.7 %.8,$(DOCS))
|
||||
|
||||
ifdef CONFIG_WIN32
|
||||
|
||||
INSTALLER = qemu-setup-$(VERSION)$(EXESUF)
|
||||
@ -496,7 +402,7 @@ endif
|
||||
$(call print-help,vm-help,Help about targets running tests inside VM)
|
||||
@echo ''
|
||||
@echo 'Documentation targets:'
|
||||
$(call print-help,html info pdf txt,Build documentation in specified format)
|
||||
$(call print-help,html info pdf txt man,Build documentation in specified format)
|
||||
@echo ''
|
||||
ifdef CONFIG_WIN32
|
||||
@echo 'Windows targets:'
|
||||
|
@ -65,7 +65,7 @@ along with this manual. If not, see http://www.gnu.org/licenses/.
|
||||
@c for texi2pod:
|
||||
@c man begin DESCRIPTION
|
||||
|
||||
@include qemu-ga-qapi.texi
|
||||
@include qga/qga-qapi-doc.texi
|
||||
|
||||
@c man end
|
||||
|
||||
|
@ -65,7 +65,7 @@ along with this manual. If not, see http://www.gnu.org/licenses/.
|
||||
@c for texi2pod:
|
||||
@c man begin DESCRIPTION
|
||||
|
||||
@include qemu-qmp-qapi.texi
|
||||
@include qapi/qapi-doc.texi
|
||||
|
||||
@c man end
|
||||
|
||||
|
85
meson.build
85
meson.build
@ -1052,6 +1052,91 @@ subdir('pc-bios')
|
||||
subdir('tests')
|
||||
subdir('docs')
|
||||
|
||||
if build_docs
|
||||
makeinfo = find_program('makeinfo', required: build_docs)
|
||||
|
||||
docs_inc = [
|
||||
'-I', meson.current_source_dir(),
|
||||
'-I', meson.current_build_dir() / 'docs',
|
||||
'-I', '@OUTDIR@',
|
||||
]
|
||||
|
||||
version_texi = configure_file(output: 'version.texi',
|
||||
input: 'version.texi.in',
|
||||
configuration: {'VERSION': meson.project_version(),
|
||||
'qemu_confdir': config_host['qemu_confdir']})
|
||||
|
||||
texi = {
|
||||
'qemu-qmp-ref': ['docs/interop/qemu-qmp-ref.texi', qapi_doc_texi, version_texi],
|
||||
}
|
||||
if 'CONFIG_GUEST_AGENT' in config_host
|
||||
texi += {'qemu-ga-ref': ['docs/interop/qemu-ga-ref.texi', qga_qapi_doc_texi, version_texi]}
|
||||
endif
|
||||
|
||||
if makeinfo.found()
|
||||
cmd = [
|
||||
'env', 'LC_ALL=C', makeinfo, '--no-split', '--number-sections', docs_inc,
|
||||
'@INPUT0@', '-o', '@OUTPUT@',
|
||||
]
|
||||
foreach ext, args: {
|
||||
'info': [],
|
||||
'html': ['--no-headers', '--html'],
|
||||
'txt': ['--no-headers', '--plaintext'],
|
||||
}
|
||||
t = []
|
||||
foreach doc, input: texi
|
||||
output = doc + '.' + ext
|
||||
t += custom_target(output,
|
||||
input: input,
|
||||
output: output,
|
||||
install: true,
|
||||
install_dir: config_host['qemu_docdir'] / 'interop',
|
||||
command: cmd + args)
|
||||
endforeach
|
||||
alias_target(ext, t)
|
||||
endforeach
|
||||
endif
|
||||
|
||||
texi2pdf = find_program('texi2pdf', required: false)
|
||||
|
||||
if texi2pdf.found()
|
||||
pdfs = []
|
||||
foreach doc, input: texi
|
||||
output = doc + '.pdf'
|
||||
pdfs += custom_target(output,
|
||||
input: input,
|
||||
output: output,
|
||||
command: [texi2pdf, '-q', docs_inc, '@INPUT0@', '-o', '@OUTPUT@'],
|
||||
build_by_default: false)
|
||||
endforeach
|
||||
alias_target('pdf', pdfs)
|
||||
endif
|
||||
|
||||
texi2pod = find_program('scripts/texi2pod.pl')
|
||||
pod2man = find_program('pod2man', required: build_docs)
|
||||
|
||||
if pod2man.found()
|
||||
foreach doc, input: texi
|
||||
man = doc + '.7'
|
||||
pod = custom_target(man + '.pod',
|
||||
input: input,
|
||||
output: man + '.pod',
|
||||
command: [texi2pod,
|
||||
'-DVERSION="' + meson.project_version() + '"',
|
||||
'-DCONFDIR="' + config_host['qemu_confdir'] + '"',
|
||||
'@INPUT0@', '@OUTPUT@'])
|
||||
man = custom_target(man,
|
||||
input: pod,
|
||||
output: man,
|
||||
capture: true,
|
||||
install: true,
|
||||
install_dir: config_host['mandir'] / 'man7',
|
||||
command: [pod2man, '--utf8', '--section=7', '--center=" "',
|
||||
'--release=" "', '@INPUT@'])
|
||||
endforeach
|
||||
endif
|
||||
endif
|
||||
|
||||
summary_info = {}
|
||||
summary_info += {'Install prefix': config_host['prefix']}
|
||||
summary_info += {'BIOS directory': config_host['qemu_datadir']}
|
||||
|
@ -1,7 +1,6 @@
|
||||
qga_qapi_outputs = [
|
||||
'qga-qapi-commands.c',
|
||||
'qga-qapi-commands.h',
|
||||
'qga-qapi-doc.texi',
|
||||
'qga-qapi-emit-events.c',
|
||||
'qga-qapi-emit-events.h',
|
||||
'qga-qapi-events.c',
|
||||
@ -17,12 +16,19 @@ qga_qapi_outputs = [
|
||||
]
|
||||
|
||||
qga_qapi_files = custom_target('QGA QAPI files',
|
||||
output: qga_qapi_outputs,
|
||||
output: qga_qapi_outputs + ['qga-qapi-doc.texi'],
|
||||
input: 'qapi-schema.json',
|
||||
command: [ qapi_gen, '-o', 'qga', '-p', 'qga-', '@INPUT0@' ],
|
||||
depend_files: qapi_gen_depends)
|
||||
|
||||
qga_ss = ss.source_set()
|
||||
qga_ss.add(qga_qapi_files)
|
||||
i = 0
|
||||
foreach output: qga_qapi_outputs
|
||||
qga_ss.add(qga_qapi_files[i])
|
||||
i = i + 1
|
||||
endforeach
|
||||
qga_qapi_doc_texi = qga_qapi_files[i]
|
||||
|
||||
qga_ss.add(files(
|
||||
'commands.c',
|
||||
'guest-agent-command-state.c',
|
||||
|
2
version.texi.in
Normal file
2
version.texi.in
Normal file
@ -0,0 +1,2 @@
|
||||
@set VERSION @VERSION@
|
||||
@set CONFDIR @qemu_confdir@
|
Loading…
Reference in New Issue
Block a user