build: hard-fail configure if asciidoctor is missing#4086
Conversation
|
In debian/control.top.in you have: Shouldn't you also remove the nodoc tag because halcompile needs it? |
docs/src/Submakefile builds manpages for halcompile components (5axisgui.1 etc.) regardless of --enable-build-documentation, so asciidoctor is always needed. Promote the configure probe out of the BUILD_DOCS gate to a hard error (LinuxCNC#4084), drop the <!nodoc> tag on the debian build-dep, and remove the now-duplicate asciidoctor entry from DOC_DEPENDS.
d78efdd to
0c24fb2
Compare
|
Thanks, pushed an amend (
Re-ran the configure probe with / without asciidoctor and a full Tangentially: |
Yes, that needs to be fixed too. The Now you can run |
Per @BsAtHome's review on PR LinuxCNC#4086. The old COMP_MANPAGES / COMP_DRIVER_MANPAGES rules ran halcompile in --document mode (troff straight out) and sed-edited the troff to escape .als / .URL groff directives the old dblatex-based PDF pipeline could not parse. Asciidoctor now reads the component adoc directly, so the sed hacks are obsolete. New chain: - halcompile --adoc -o objects/man/man9/<comp>.9.adoc <comp>.comp - asciidoctor --doctype=manpage --backend=manpage -> ../docs/man/man9/<comp>.9 The adoc extraction only needs Python + halcompile.py (yapps-generated, not the C build), so a fresh-tree docs-only build (make htmldocs / pdfdocs / docs) extracts and renders component manpages without first compiling the rest of LinuxCNC. Previously a docs-only build silently omitted them. Also adds homecomp.9 to COMP_MANPAGES alongside tpcomp.9 (both .comp files are filtered out of COMPS because they do not compile to .o modules, but their manpages are still worth shipping). Surfaces in @hansu's review of PR LinuxCNC#4081 as a 'gen_complist: Broken link: ../man/man9/homecomp.9.html' warning. .9.adoc suffix matches the convention the docs HTML manpage rule already expects under objects/man/. Tested: clean-tree make docs (English-only) builds 207 troff + 154 extracted component adocs, link checker clean. Standalone make ../docs/man/man9/abs.9 from a tree with no halcompile binary rebuilds halcompile and produces the manpage without touching C code.
Summary
Fixes #4084.
docs/src/Submakefilebuilds manpages for halcompile components (5axisgui.1etc.) viaasciidoctor, regardless of--enable-build-documentation. The configure probe added by #4053 was nested insideif BUILD_DOCS = yes, so./configure --enable-run-in-place(no docs opt-in) silently passed andmakelater crashed withasciidoctor: command not found.Changes:
src/configure.ac: probe moved out of theBUILD_DOCSgate; missing asciidoctor is nowAC_MSG_ERRORwith apt / dnf / gem install hints. PDF / HTML / Rouge probes stay gated.debian/control.top.in: drop<!nodoc>fromasciidoctor(per @BsAtHome; evennodocbuilds need it).debian/configure: remove now-duplicateasciidoctorfrom the head ofDOC_DEPENDS.Test plan
./configure --enable-run-in-placewith asciidoctor present: succeeds;make ../docs/man/man1/5axisgui.1builds.apt remove asciidoctor: configure aborts withno asciidoctor, manpages cannot be built+ install hint, instead of failing insidemake../configure --enable-run-in-place --enable-build-documentation=html+makebuilds full English HTML (585 pages, 453 manpage HTMLs, link checker clean).