Add Makefile module for building documentation.

This commit is contained in:
Ben Finney 2016-03-04 16:06:17 +11:00
parent 5993b178c5
commit cafc46a8e9
2 changed files with 55 additions and 0 deletions

48
doc/module.mk Normal file
View File

@ -0,0 +1,48 @@
# doc/module.mk
# Part of ZeroTier One, a software-defined network layer.
#
# Copyright © 2016 Ben Finney <ben+zerotier@benfinney.id.au>
# This is free software: you may copy, modify, and/or distribute this
# work under the terms of the GNU General Public License, version 3 or
# later as published by the Free Software Foundation.
# No warranty expressed or implied.
# See the file LICENSE.txt for details.
# Makefile module for ZeroTier One documentation.
TEMPFILE_SUFFIX = .tmp
.INTERMEDIATE: ${DOCUMENTATION_DIR}/*${TEMPFILE_SUFFIX}
RST_SUFFIX = .txt
manpage_sections = 1 2 3 4 5 6 7 8
manpage_names += zerotier-one.8
manpage_names += zerotier-idtool.1
manpage_names += zerotier-cli.1
manpage_source_paths = $(addprefix ${DOC_DIR}/, \
$(addsuffix ${RST_SUFFIX},${manpage_names}))
manpage_paths = $(addprefix ${DOC_DIR}/,${manpage_names})
manpage_encoding_stub = ${DOC_DIR}/manpage_encoding_declaration.UTF-8
GENERATED_FILES += $(addprefix ${DOC_DIR}/,\
$(foreach section,${manpage_sections},*.${section}))
RST2MAN = rst2man
RST2MAN_OPTS =
.PHONY: manpages
manpages: ${manpage_paths}
%.1: %.1${RST_SUFFIX}
$(RST2MAN) "$<" > "$@"${TEMPFILE_SUFFIX}
cat ${manpage_encoding_stub} "$@"${TEMPFILE_SUFFIX} > "$@"
%.8: %.8${RST_SUFFIX}
$(RST2MAN) "$<" > "$@"${TEMPFILE_SUFFIX}
cat ${manpage_encoding_stub} "$@"${TEMPFILE_SUFFIX} > "$@"
# Local variables:
# coding: utf-8
# mode: makefile
# End:
# vim: fileencoding=utf-8 filetype=make :

View File

@ -17,6 +17,8 @@
# clean: removes all built files, objects, other trash
#
GENERATED_FILES :=
# Automagically pick clang or gcc, with preference for clang
# This is only done if we have not overridden these with an environment or CLI variable
ifeq ($(origin CC),default)
@ -115,6 +117,7 @@ installer: one FORCE
./ext/installfiles/linux/buildinstaller.sh
clean: FORCE
$(RM) -r ${GENERATED_FILES}
rm -rf *.so *.o netcon/*.a node/*.o controller/*.o osdep/*.o service/*.o ext/http-parser/*.o ext/lz4/*.o ext/json-parser/*.o $(OBJS) zerotier-one zerotier-idtool zerotier-cli zerotier-selftest zerotier-netcon-service build-* ZeroTierOneInstaller-* *.deb *.rpm .depend netcon/.depend
# Remove files from all the funny places we put them for tests
find netcon -type f \( -name '*.o' -o -name '*.so' -o -name '*.1.0' -o -name 'zerotier-one' -o -name 'zerotier-cli' -o -name 'zerotier-netcon-service' \) -delete
@ -129,3 +132,7 @@ official: FORCE
make ZT_OFFICIAL_RELEASE=1 installer
FORCE:
DOC_DIR = doc
include ${DOC_DIR}/module.mk