meson: add build/man/man and build/man/html to build and display pages

Man page generation is generally very slow. I prefer to use -Dman=false when
developing systemd, and only build specific pages when introducing changes.
Those two little helper tools make it easy:

$ build/man/man systemd.link
$ build/man/html systemd.link

will show systemd.link.8 and systemd.link.html from the build directory build/.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2019-05-09 13:23:50 +02:00
parent da35a1c9fc
commit e9bbff18e1
4 changed files with 40 additions and 0 deletions

12
man/html.in Executable file
View File

@ -0,0 +1,12 @@
#!/bin/sh
set -e
if [ -z "$1" ]; then
echo "Use: $0 page-name (with no section suffix)"
exit 1
fi
target="man/$1.html"
ninja -C "@BUILD_ROOT@" "$target"
set -x
exec xdg-open build/"$target"

15
man/man.in Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
set -e
if [ -z "$1" ]; then
echo "Use: $0 page-name (with no section suffix)"
exit 1
fi
target=$(ninja -C "@BUILD_ROOT@" -t query man/man | grep -E -m1 "man/$1\.[0-9]$" | awk '{print $2}')
if [ -z "$target" ]; then
echo "Cannot find page $1"
exit 1
fi
ninja -C "@BUILD_ROOT@" "$target"
exec man build/"$target"

View File

@ -204,3 +204,15 @@ if git.found()
'mv t @0@/rules/meson.build'.format(meson.current_source_dir())],
depend_files : custom_entities_ent)
endif
############################################################
configure_file(
input : 'man.in',
output : 'man',
configuration : substs)
configure_file(
input : 'html.in',
output : 'html',
configuration : substs)

View File

@ -283,6 +283,7 @@ substs.set('RC_LOCAL_SCRIPT_PATH_START', get_option('rc-loc
substs.set('RC_LOCAL_SCRIPT_PATH_STOP', get_option('halt-local'))
substs.set('MEMORY_ACCOUNTING_DEFAULT', memory_accounting_default ? 'yes' : 'no')
substs.set('HIGH_RLIMIT_NOFILE', conf.get('HIGH_RLIMIT_NOFILE'))
substs.set('BUILD_ROOT', meson.current_build_dir())
#####################################################################