blob: 729b7fb406e4482c85445b22d726c58838031f16 [file] [log] [blame]
E. Scott Daniels3a2533f2020-04-22 12:40:27 -04001#==================================================================================
2# Copyright (c) 2020 Nokia
3# Copyright (c) 2020 AT&T Intellectual Property.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#==================================================================================
17
18# this uses {X}fm which can be cloned from: https://gitlab.com/rouxware/xfm
19
20docs = user_guide
21src = user_guide.xfm
22imbed_src = cpp_frame.im example1.im example2.im example3.im
23desired_out = rst ps
24
25# use care: the output type is used to source the macros based on the type
26# of output being rendered.
27# Two pass builds allow for table of contents gen/insert, forward var
28# references etc.
29#
30%.ps: %.xfm
31 OUTPUT_TYPE=generic_ps XFM_PASS=1 pfm $< /dev/null
32 OUTPUT_TYPE=generic_ps XFM_PASS=2 pfm $< $@
33
34%.md: %.xfm
35 OUTPUT_TYPE=markdown XFM_PASS=1 tfm $< /dev/null
36 OUTPUT_TYPE=markdown XFM_PASS=2 tfm $< | sed 's/^ //' >$@
37
38%.rst: %.xfm
39 OUTPUT_TYPE=rst XFM_PASS=1 tfm $< /dev/null
40 GEN_TITLE=1 OUTPUT_TYPE=rst XFM_PASS=2 tfm $< | sed 's/^ //' >$@
41
42%.txt: %.xfm
43 OUTPUT_TYPE=txt XFM_PASS=1 tfm $< /dev/null
44 OUTPUT_TYPE=txt XFM_PASS=2 tfm $< $@
45
46# -----------------------------------------------------------------------------------
47all: $(desired_out:%=user_guide.%)
48
49user_guide.ps: user_guide.xfm $(imbed_src)
50
51# we force the .rst docs to always be out of date so that we don't have to
52# jump hoops to ensure that they build for make publish. (See hack rule
53# at the end of the file.)
54#
55$(docs:%=%.rst): always
56
57publish: user_guide.rst
58 cp *.rst ../../../docs/
59
60# intermeidate junk that might straggle
61clean:
62 rm -fr *.bcnfile *.ca *.ecnfile *.sp
63
64# Destroy anything that can be built
65nuke: clean
66 rm -fr *.md *.ps *.pdf *.txt *.rst *.toc
67
68# make hack to force a rule to always be out of date
69always:
70