#
#==================================================================================
-# Copyright (c) 2019 Nokia
+# Copyright (c) 2019 Nokia
# Copyright (c) 2018-2019 AT&T Intellectual Property.
#
# Licensed under the Apache License, Version 2.0 (the "License");
if( NOT EXISTS ${tfm} ) # not yet built here, pull and build
# pull and build {X}fm tools needed to generate manpages
- execute_process(
+ execute_process(
COMMAND "bash" "-c" "git clone https://github.com/ScottDaniels/xfm.git && cd xfm && mkdir .build && cd .build && cmake .. && make"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
else()
message( "+++ found xfm in the build environment" )
endif()
-
+
endif()
# base filenames (with .xfm are input)
rmr_mt_call.3
rmr_mt_rcv.3
rmr_get_srcip.3
+ rmr_realloc_payload.3
+ rmr_trace_ref.3
+ rmr_set_stimeout.3
+ rmr_get_xact.3
)
- # empty list of roff/troff input files we generated
+ # initialise lists of files we generated
set( man3_files )
set( man7_files )
- # mk is so much easier than this -- grumble
# for each source, build a specific command that runs tfm to generate the
- # troff output. Sed is needed to remove the leading blank that tfm likes
- # to insert even if indention is 0.
+ # troff output as a gzipped file. Sed is needed to remove the leading blank
+ # that tfm likes to insert even if indention is 0. We also generate postscript
+ # markdown, plain ascii and rts output which are left in the build directory
+ # for the developer to use as needed.
#
foreach( nm IN LISTS man_names )
set( out ${CMAKE_BINARY_DIR}/${nm} )
set( in ${CMAKE_SOURCE_DIR}/doc/src/man/${nm}.xfm )
- add_custom_command(
- OUTPUT ${out}
+ add_custom_command(
+ OUTPUT ${out}.gz
DEPENDS ${in}
- COMMAND bash -c "export LIB=${CMAKE_SOURCE_DIR}/doc/src; ${tfm} ${in} stdout | sed 's/^ //' >${out}; ${pfm} ${in} ${out}.ps"
+ COMMAND bash -c "export LIB=${CMAKE_SOURCE_DIR}/doc/src; \
+ export OUTPUT_TYPE=troff; \
+ ${tfm} ${in} stdout | sed 's/^ //' | gzip >${out}.gz; \
+ export OUTPUT_TYPE=rst; \
+ ${tfm} ${in} ${out}.rst; \
+ export OUTPUT_TYPE=txt; \
+ ${tfm} ${in} ${out}.txt; \
+ export OUTPUT_TYPE=markdown; \
+ ${tfm} ${in} stdout | sed 's/^ //' >${out}.md; \
+ export OUTPUT_TYPE=postscript; \
+ ${pfm} ${in} ${out}.ps"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Building manpage ${out}"
VERBATIM
)
if( ${out} MATCHES ".*\.3" )
- list( APPEND man3_files ${out} )
+ list( APPEND man3_files ${out}.gz )
else()
- list( APPEND man7_files ${out} )
+ list( APPEND man7_files ${out}.gz )
endif()
endforeach()
# we must force these to install
- # find all of the man pages in build and add them to the deb
+ # find all of the man pages in build and add them to the package
#
install( FILES ${man3_files} DESTINATION ${install_man}/man3/ )
install( FILES ${man7_files} DESTINATION ${install_man}/man7/ )