diff --git a/man/html.in b/man/html.in new file mode 100755 index 0000000000..d4debcc340 --- /dev/null +++ b/man/html.in @@ -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" diff --git a/man/man.in b/man/man.in new file mode 100755 index 0000000000..5700a642bd --- /dev/null +++ b/man/man.in @@ -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" diff --git a/man/meson.build b/man/meson.build index ae9c941fcd..f3992b2834 100644 --- a/man/meson.build +++ b/man/meson.build @@ -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) diff --git a/meson.build b/meson.build index 9506274239..c7c0c3ffd0 100644 --- a/meson.build +++ b/meson.build @@ -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()) ##################################################################### diff --git a/meson_options.txt b/meson_options.txt index c1cb4617d0..5d68970ff6 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -126,6 +126,7 @@ option('hwdb', type : 'boolean', option('rfkill', type : 'boolean', description : 'support for the rfkill tools') option('man', type : 'combo', choices : ['auto', 'true', 'false'], + value : 'false', description : 'build and install man pages') option('html', type : 'combo', choices : ['auto', 'true', 'false'], value : 'false', diff --git a/semaphoreci/semaphore-runner.sh b/semaphoreci/semaphore-runner.sh index dc1c8ff40c..1951dcbbad 100755 --- a/semaphoreci/semaphore-runner.sh +++ b/semaphoreci/semaphore-runner.sh @@ -88,7 +88,7 @@ EOF # disable autopkgtests which are not for upstream sed -i '/# NOUPSTREAM/ q' debian/tests/control # enable more unit tests - sed -i '/^CONFFLAGS =/ s/=/= -Dtests=unsafe -Dsplit-usr=true -Dslow-tests=true /' debian/rules + sed -i '/^CONFFLAGS =/ s/=/= -Dtests=unsafe -Dsplit-usr=true -Dslow-tests=true -Dman=true /' debian/rules # no orig tarball echo '1.0' > debian/source/format diff --git a/travis-ci/managers/debian.sh b/travis-ci/managers/debian.sh index 72ffcee439..df26b16e2c 100755 --- a/travis-ci/managers/debian.sh +++ b/travis-ci/managers/debian.sh @@ -44,7 +44,7 @@ for phase in "${PHASES[@]}"; do if [[ "$phase" = "RUN_CLANG" ]]; then ENV_VARS="-e CC=clang -e CXX=clang++" fi - docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dsplit-usr=true build + docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dsplit-usr=true -Dman=true build $DOCKER_EXEC ninja -v -C build docker exec -e "TRAVIS=$TRAVIS" -it $CONT_NAME ninja -C build test $DOCKER_EXEC tools/check-directives.sh diff --git a/travis-ci/managers/fedora.sh b/travis-ci/managers/fedora.sh index 760ed5b1ea..f821ee2640 100755 --- a/travis-ci/managers/fedora.sh +++ b/travis-ci/managers/fedora.sh @@ -53,7 +53,7 @@ for phase in "${PHASES[@]}"; do $DOCKER_EXEC tools/check-directives.sh ;; RUN_CLANG) - docker exec -e CC=clang -e CXX=clang++ -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true build + docker exec -e CC=clang -e CXX=clang++ -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dman=true build $DOCKER_EXEC ninja -v -C build $DOCKER_EXEC ninja -C build test ;; diff --git a/travis-ci/managers/xenial.sh b/travis-ci/managers/xenial.sh index 33b40e63c5..8995a51f84 100755 --- a/travis-ci/managers/xenial.sh +++ b/travis-ci/managers/xenial.sh @@ -13,7 +13,7 @@ cd ${REPO_ROOT:-$(pwd)} sed -i 's/2\.30/2.27/' meson.build -meson --werror -Db_sanitize=address,undefined -Dsplit-usr=true build +meson --werror -Db_sanitize=address,undefined -Dsplit-usr=true -Dman=true build ninja -v -C build make -C test/TEST-01-BASIC clean setup run NSPAWN_TIMEOUT=600 TEST_NO_QEMU=yes NSPAWN_ARGUMENTS=--keep-unit RUN_IN_UNPRIVILEGED_CONTAINER=no