blob: ca3c252b5892d1fe30952cbe016989601985fcee [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
E. Scott Daniels97204c82020-06-29 15:39:57 -040022imbed_src = cpp_frame.im example1.im example2.im example3.im jhash.im
E. Scott Daniels3a2533f2020-04-22 12:40:27 -040023desired_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
E. Scott Daniels97204c82020-06-29 15:39:57 -040040 GEN_TITLE=1 OUTPUT_TYPE=rst XFM_PASS=2 tfm $< | sed 's/^ //; s/ *$$//' >$@
E. Scott Daniels3a2533f2020-04-22 12:40:27 -040041
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
E. Scott Daniels97204c82020-06-29 15:39:57 -040058 cp user_guide.rst ../../../docs/user-guide.rst
E. Scott Daniels3a2533f2020-04-22 12:40:27 -040059
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