blob: 7108614799b8cdb3b9f775ff1d4acefa392975a7 [file] [log] [blame]
#=================================================================================2
# Copyright (c) 2019-2020 Nokia
# Copyright (c) 2018-2020 AT&T Intellectual Property.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#==================================================================================
XP = XFM_PATH=".:.."
P1 = $(XP) XFM_PASS=1
P2 = $(XP) XFM_PASS=2
# ----- generics --------------------------------------------------------
# two pass builds in order to forward reference variables for figures and to insert
# table of contents in postscript output
#
%.ps: %.xfm
$(P1) pfm $< /dev/null
$(P2) pfm $< $@
%.md: %.xfm
$(P1) OUTPUT_TYPE=markdown tfm $< /dev/null
$(P2) OUTPUT_TYPE=markdown tfm $< stdout | sed 's/^ //' >$@
%.rst: %.xfm
$(P1) OUTPUT_TYPE=rst tfm $< /dev/null
$(P2) OUTPUT_TYPE=rst tfm $< stdout | sed 's/^ //' >$@
%.txt: %.xfm
$(P1) OUTPUT_TYPE=txt tfm $< /dev/null
$(P2) OUTPUT_TYPE=txt tfm $< $@
%.html: %.xfm
$(P1) OUTPUT_TYPE=html hfm $< /dev/null
$(P2) OUTPUT_TYPE=html hfm $< $@
%.pdf: %.ps
gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=$@ $<
# ----- lists --------------------------------------------------------
# source common to all documents
common_src = index_snatch.im setup.im mbuf.im front_junk.im license.im
user_src = user.xfm advanced_use.im api_qref.im code_appendix.im code_send.im \
config.im failures.im general_use.im glossary.im
# user guide code examples
code_src = $(shell ls code_*.im)
rt_src = rt_tables.xfm
# output types for different builds
all_types = pdf md rst txt html
rtd_types = rst
# ------ rules --------------------------------------------------------
all: $(all_types:%=user.%) $(all_types:%=rt_tables.%)
mv user.rst user-guide.rst
# just the things which are pushed to the docs scraper dirctory,
# renames to expected filenames where required.
docs: $(rtd_types:%=user.%) $(rtd_types:%=rt_tables.%)
mv user.rst user-guide.rst
# dependencies; actual recipes are generic
$(all_types:%=user.%): $(user_src) $(code_src) $(common_src)
$(all_types:%=rt_tables.%): $(rt_src) $(common_src)
# ---------- housekeeping ----------------------------------------------
# remove only intermeidate junk that might straggle; leave output
clean:
rm -fr *.bcnfile *.ca *.ecnfile *.sp *.toc
# Remove anything that can be built
nuke: clean
rm -fr *.ps *.pdf *.txt *.rst *.md *.html