This is a follow-up change for [1], making this script more
flexible. It's now a task of the caller to store the merge
results to a file. This approach allows to merge several
*.xml files and store all the results in a single directory.
Unfortunately, it's impossible to pass the same file as both
input and output to xsltproc, because it would immediately
overwrite its input. To work this around, create two
temporary files and remove them at the end of the script.
[1] Iabe729af22c235cf9c4b252acda99b43ebcae20c
Change-Id: I6aac73d998c5937894233631e654a160d5623198
Related: SYS#4937
Ideally, 'vty_reference_combine.sh' should not create any files
nor directories on its own; it should do exactly what its name
suggests - combine several XML files into a single one.
Let's first make the target directory ('generated') creation a
task of 'Makefile.vty-reference.inc', and then make it output
the results to stdout in a follow-up change.
Change-Id: Iabe729af22c235cf9c4b252acda99b43ebcae20c
Related: SYS#4937
Add variable BUILT_REFERENCE_XML for callers to indicate dependencies for the
VTY reference.
Add script find_existing_path.sh to pick a given path from either builddir or
srcdir, whichever exists.
In Makefile.vty-reference.inc, use find_existing_path.sh to make the VTY
reference build rules work no matter whether the reference.xml is built in
builddir or committed in srcdir.
Change-Id: I613d692328050a036d05b49a436ab495fc2087ba
Adjust vty_reference_combine.sh, so we can change the output dir from
"generated" to a subdir inside "generated" when building anything but
the first VTY reference.
Add a generic pattern to Makefile.vty-reference for additional VTY
references, that uses slightly different paths compared to the first VTY
reference, in order to avoid collisions.
Related: OS#4292
Change-Id: I4dea3e07b88175b2a88e577129360af7ec5f87e1
Makefile.asciidoc.inc: create a symlink for the root adoc file, from
which a PDF gets generated, from the srcdir to the builddir. This file
may include other adoc files, which do not get symlinked. We need to do
this, because a2x (the program generating the PDF file) does not have a
parameter for the output file, and will otherwise generate the PDF in
the srcdir instead of the builddir. Do the same in the check target, so
the relative include paths work the same.
Makefile.asciidoc.inc, Makefile.docbook.inc: set the include paths for
the xstl parser, as well as the LaTeX compiler, so they can find the
files they need from both OSMO_GSM_MANUALS_DIR and builddir.
Makefile.asciidoc.inc, Makefile.docbook.inc: refer to the output file
$@ with $(notdir $@). This removes the path from the file, like
basename from coreutils. The output file will then be placed in the
builddir instead of the srcdir.
Makefile.vty-reference.inc: use $(srcdir) in references to vty/*.xml
files.
(moving manuals to project repositories 12/19)
Related: OS#3385
Change-Id: Ie6b212a6518f0fc29fae610a37ae6c533189278d
Pass the path to $(srcdir)/vty/*reference.xml as parameter to
vty_reference_combine.sh instead of assuming that it will be in
./vty/*reference.xml.
This is necessary to make the build scripts work for out-of-tree
builds. Because when building out-of-tree, the source dir and build dir
(the one where the Makefile gets generated, and in which "make" runs),
are not the same anymore. The relative vty/reference.xml path is only
valid in the source dir, not in the build dir. The next commits in this
series have more changes for out-of-tree builds.
Out-of-tree building is necessary for consistency with the other
Osmocom code, which can be built out-of-tree as well. It would be
strange if this did not work anymore as soon as the users enabled
building the manuals.
(moving manuals to project repositories 10/19)
Related: OS#3385
Change-Id: I3dcb49d7705f882bd117088d4e5eab91dd1c7d8c
OSMO_GSM_MANUALS_DIR should use pkg-config to figure out the location
of the shared osmo-gsm-manuals files.
(moving manuals to project repositories 6/19)
Related: OS#3385
Change-Id: I64cfffb5104edcf7a20f41aeb5bf8ee6988b57c4
Replace TOPDIR with OSMO_GSM_MANUALS_DIR. When the project specific
manuals will be built out of this repository, we still need to refer to
the top directory of the shared content. But it will be in another
repository, so we need to rename the variable to avoid confusion.
(moving manuals to project repositories 3/19)
Related: OS#3385
Change-Id: I2af797546de048a6ab19a5cbc755e5e15575d7ab
If LIBOSMO_DIR is not set explicitly than ~/source/gsm/libosmocore is
used which is base for MERGE_DOC which is used by
vty_reference_combine.sh as it is. If the shell used by
vty_reference_combine.sh does not expand ~ than the build will
fail. Let's be nice and use realpath on MERGE_DOC before giving it to
vty_reference_combine.sh to make sure complete path is used.
Change-Id: I2edf64348502cbe498d9fd27a686c712b044c926
The initial goal was to make sure we don't have overall FORCE rules causing
unnecessary rebuilds -- annoying while writing documentation. As I looked
through possible dependencies, I finally understood what's going on here.
Remove code dup and nicely sort which belongs where in build/Makefile.*.inc. In
each, describe in a top comment how to use it, and also unify how they are
used:
- Rename Makefile.inc to Makefile.docbook.inc and refactor
- Add Makefile.vty-reference.inc
- Add Makefile.common.inc
Make sure that we accurately pick up all dependencies.
Drop use of the macro called 'command', that silenced the actual command lines
invoked and replaced them with short strings: it obscures what is actually
going on and makes the Makefiles hard to read and understand.
Each manual's makefile is greatly reduced to few definitions and a Makefile
include, e.g. one for asciidoc, one for VTY reference.
Move common/bsc_vty_additions.xml to OsmoBSC/vty/libbsc_vty_additions.xml, link
from OsmoNITB. It applies only to OsmoBSC and OsmoNITB.
Add a script that combines a VTY reference file with *all* additions files
found in a manual's vty/ dir. Call this from Makefile.vty-reference.inc.
Change-Id: I9758e04162a480e28c7dc83475b514cf7fd25ec0