Commit Graph

12 Commits

Author SHA1 Message Date
Vadim Yanitskiy 2e039c9c12 vty_reference_combine.sh: print the final result to stdout
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
2020-11-02 17:56:52 +00:00
Vadim Yanitskiy 5be5350c8d Makefile.vty-reference.inc: create 'generated' in this file
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
2020-11-02 09:29:59 +00:00
Neels Hofmeyr d2c6806b0a vty reference: allow reference XML generated at build time
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
2020-06-08 11:57:54 +02:00
Oliver Smith a05e5940f1 Support multiple VTY reference manuals
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
2019-12-03 11:44:57 +01:00
Oliver Smith 6ddd200cda Cosmetic: fix Makefile.vty.reference.inc example
All files listed in VTY_REFERENCE must end in ".xml".

Change-Id: I20abc1899f4bdf0a11482224937217dfddc17c53
2019-12-02 15:54:27 +01:00
Oliver Smith 2682f14611 Makefile.*.inc: adjust to out-of-tree building
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
2018-11-21 14:35:03 +01:00
Oliver Smith 673e2dc481 vty_reference_combine.sh: add *reference.xml arg
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
2018-11-21 14:29:11 +01:00
Oliver Smith 8d282762d9 cosmetic: update usage of OSMO_GSM_MANUALS_DIR
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
2018-11-21 14:29:11 +01:00
Oliver Smith dec39cdea9 s/TOPDIR/OSMO_GSM_MANUALS_DIR/g
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
2018-11-20 17:13:25 +01:00
Oliver Smith 161365fa6f merge_doc.xsl: move from libosmocore.git
Allow building manuals without the libosmocore source.

Related: OS#3385
Change-Id: Ifb81b18422987cdf36b75993d2782abf93b5f48c
2018-11-12 12:18:41 +01:00
Max 5625fcf76f Fix build with default paths
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
2017-11-20 09:21:47 +00:00
Neels Hofmeyr c481a988e3 refactor Makefile build rules, don't use the FORCE
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
2017-10-25 16:51:55 +00:00