aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/Makefile.am
blob: 9c83eee569f4a957c47cba69f72327e9359cf48b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Make sure that $(SCITECO_FULL) and the SciTECO-based
# substitutor for *.in is available.
include $(top_srcdir)/bootstrap.am

# tedoc is a code documentation tool for SciTECO commands
# and macros, extracting comments from SciTECO and C
# code.
# It generates Troff manpage markup and acts as a Troff
# preprocessor to manpage templates.
bin_SCRIPTS = tedoc.tes
CLEANFILES = tedoc.tes
dist_noinst_SCRIPTS = tedoc.tes.in

%.in : %.template tedoc.tes @top_srcdir@/src/*.c
	$(SCITECO_FULL) -m -- tedoc.tes \
	                -C $@ $< @top_srcdir@/src/*.c

# grosciteco is a troff postprocessor similar to grotty
# which can be used to produce SciTECO-friendly output
# (woman pages).
bin_SCRIPTS += grosciteco.tes
CLEANFILES += grosciteco.tes
dist_noinst_SCRIPTS += grosciteco.tes.in
# grosciteco, like many other postprocessors, works
# best with its own macro package.
# Unfortunately, there is no way to query the built-in
# Groff tmac path.
# Therefore, the "sciteco" macros are installed into
# SciTECO's scitecodatadir. Users can copy this file, set up
# environment variables like $GROFF_TMAC_PATH or pass
# the directory via `groff -M`.
dist_scitecodata_DATA = sciteco.tmac

# Fix up the hash-bang line of installed SciTECO scripts.
# This takes --prefix and --program-prefix into account.
# On the other hand, since this is run at build time,
# it breaks bindir-overwriting at `make install` time,
# which could only be made to work with an install-exec-hook.
# Patching installed scripts however broke the FreeBSD port
# builds with Poudriere where BINMODE=555 is set.
# It was therefore decided to sacrifice the rarely used
# `make install bindir=...` and appease the FreeBSD port
# committers instead.
%.tes : %.tes.in
	$(SCITECO_FULL) -qioe "0,^Q::@FR'#\!^EM^Xsciteco'#\!$(SCITECO_INSTALLED)'" <$< >$@

womendir = $(scitecolibdir)/women

women_DATA = grosciteco.tes.1.woman grosciteco.tes.1.woman.tec
CLEANFILES += grosciteco.tes.1
EXTRA_DIST = grosciteco.tes.1.in

women_DATA += tedoc.tes.1.woman tedoc.tes.1.woman.tec
CLEANFILES += tedoc.tes.1
EXTRA_DIST += tedoc.tes.1.in

women_DATA += sciteco.1.woman sciteco.1.woman.tec
CLEANFILES += sciteco.1
EXTRA_DIST += sciteco.1.in

women_DATA += sciteco.7.woman sciteco.7.woman.tec
CLEANFILES += sciteco.7 sciteco.7.in
EXTRA_DIST += sciteco.7.template

women_DATA += tutorial.woman tutorial.woman.tec
CLEANFILES += tutorial.ms
EXTRA_DIST += tutorial.ms.in

CLEANFILES += $(women_DATA)

# NOTE: grosciteco.tes generates two artifacts, but two targets in one rule would be independent.
# Grouped targets (&:) on the other hand are unreliable/buggy.
%.woman.tec : %.woman;

%.woman : % sciteco.tmac grosciteco.tes
	@GROFF@ @GROFF_FLAGS@ -wall -Z -Tutf8 -t -man -M@srcdir@ -msciteco $< | \
	$(SCITECO_FULL) -im -- grosciteco.tes $@

tutorial.woman : tutorial.ms sciteco.tmac grosciteco.tes
	@GROFF@ @GROFF_FLAGS@ -wall -Z -Tutf8 -t -ms -M@srcdir@ -msciteco $< | \
	$(SCITECO_FULL) -im -- grosciteco.tes $@

man_MANS = grosciteco.tes.1 tedoc.tes.1 sciteco.1 sciteco.7

dist_noinst_SCRIPTS += htbl.tes

if BUILD_HTMLDOCS
html_DATA = grosciteco.tes.1.html tedoc.tes.1.html \
            sciteco.1.html sciteco.7.html tutorial.html
CLEANFILES += $(html_DATA)
endif

%.html : % htbl.tes
	$(SCITECO_FULL) -qiom -- @srcdir@/htbl.tes <$< | \
	@GROFF@ @GROFF_FLAGS@ -wall -Thtml -man >$@

%.html : %.ms
	@GROFF@ @GROFF_FLAGS@ -wall -Thtml -ms $< >$@

# FIXME: We may want to build the cheat sheet automatically.
# This would require a full Groff installation, though.
EXTRA_DIST += cheat-sheet.mm

#
# Doxygen processing (do not install or distribute)
#
devdoc : doxygen/

.PHONY: doxygen/
doxygen/ : Doxyfile
	-rm -rf doxygen/
	@DOXYGEN@ $<

clean-local:
	-rm -rf doxygen/