File: Makefile.am

package info (click to toggle)
ltt-control 2.13.15-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 17,656 kB
  • sloc: ansic: 167,287; sh: 27,018; makefile: 2,828; python: 1,380; yacc: 692; lex: 129; java: 109; perl: 99; cpp: 35; xml: 23
file content (219 lines) | stat: -rw-r--r-- 6,058 bytes parent folder | download | duplicates (2)
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# SPDX-License-Identifier: GPL-2.0-only

# Man pages are only built if they are enabled at configure time.
#
# They should always be built before creating a distribution tarball.

# function which adds the source directory prefix and adds a given suffix
manaddsuffix = $(addsuffix $(1),$(addprefix $(srcdir)/,$(2)))

# List only the names without the .*.txt extension here:
MAN1_NAMES = \
	lttng \
	lttng-create \
	lttng-destroy \
	lttng-set-session \
	lttng-save \
	lttng-load \
	lttng-start \
	lttng-stop \
	lttng-version \
	lttng-view \
	lttng-enable-channel \
	lttng-disable-channel \
	lttng-add-context \
	lttng-list \
	lttng-track \
	lttng-untrack \
	lttng-status \
	lttng-help \
	lttng-snapshot \
	lttng-enable-event \
	lttng-disable-event \
	lttng-crash \
	lttng-metadata \
	lttng-regenerate \
	lttng-rotate \
	lttng-enable-rotation \
	lttng-disable-rotation \
	lttng-clear \
	lttng-add-trigger \
	lttng-remove-trigger \
	lttng-list-triggers
MAN3_NAMES =
MAN7_NAMES = lttng-event-rule lttng-concepts
MAN8_NAMES = lttng-sessiond lttng-relayd
MAN1_NO_ASCIIDOC_NAMES =
MAN3_NO_ASCIIDOC_NAMES = lttng-health-check
MAN7_NO_ASCIIDOC_NAMES =
MAN8_NO_ASCIIDOC_NAMES =

# AsciiDoc sources and outputs
MAN1_TXT = $(call manaddsuffix,.1.txt,$(MAN1_NAMES))
MAN3_TXT = $(call manaddsuffix,.3.txt,$(MAN3_NAMES))
MAN7_TXT = $(call manaddsuffix,.7.txt,$(MAN7_NAMES))
MAN8_TXT = $(call manaddsuffix,.8.txt,$(MAN8_NAMES))
MAN_TXT = $(MAN1_TXT) $(MAN3_TXT) $(MAN7_TXT) $(MAN8_TXT)
MAN_XML = $(patsubst $(srcdir)/%.txt,%.xml,$(MAN_TXT))

# common AsciiDoc source files
COMMON_TXT = \
	$(srcdir)/common-footer.txt \
	$(srcdir)/common-lttng-cmd-after-options.txt \
	$(srcdir)/common-lttng-cmd-options-head.txt \
	$(srcdir)/common-lttng-cmd-help-options.txt \
	$(srcdir)/common-help-option.txt \
	$(srcdir)/common-intro.txt \
	$(srcdir)/common-daemon-cfg.txt

# config
ASCIIDOC_CONF = $(srcdir)/asciidoc.conf
ASCIIDOC_ATTRS_CONF = $(builddir)/asciidoc-attrs.conf
XSL_FILE = $(srcdir)/manpage.xsl

# common dependencies
COMMON_DEPS = $(ASCIIDOC_CONF) $(COMMON_TXT)

# man pages destinations
MAN1 = $(addsuffix .1,$(MAN1_NAMES))
MAN3 = $(addsuffix .3,$(MAN3_NAMES))
MAN7 = $(addsuffix .7,$(MAN7_NAMES))
MAN8 = $(addsuffix .8,$(MAN8_NAMES))
MAN1_NO_ASCIIDOC = $(addsuffix .1,$(MAN1_NO_ASCIIDOC_NAMES))
MAN3_NO_ASCIIDOC = $(addsuffix .3,$(MAN3_NO_ASCIIDOC_NAMES))
MAN7_NO_ASCIIDOC = $(addsuffix .7,$(MAN7_NO_ASCIIDOC_NAMES))
MAN8_NO_ASCIIDOC = $(addsuffix .8,$(MAN8_NO_ASCIIDOC_NAMES))
MAN = $(MAN1) $(MAN3) $(MAN7) $(MAN8)

# initially empty
CLEANFILES =

if EMBED_HELP
mantoh_verbose = $(mantoh_verbose_@AM_V@)
mantoh_verbose_ = $(mantoh_verbose_@AM_DEFAULT_V@)
mantoh_verbose_0 = @echo "  MANTOH    " $@;

MAN1_H = $(addsuffix .1.h,$(MAN1_NAMES))
MAN3_H = $(addsuffix .3.h,$(MAN3_NAMES))
MAN8_H = $(addsuffix .8.h,$(MAN8_NAMES))
MAN_H = $(MAN1_H) $(MAN3_H) $(MAN8_H)
MAN_H_RECIPE = \
	$(mantoh_verbose_0)\
	MANWIDTH=80 @MANPROG@ --encoding=UTF-8 --no-hyphenation --no-justification --local-file $< > $@ ; \
	$(SED) -i 's/\\/\\\\/g' $@ ; \
	$(SED) -i 's/"/\\"/g' $@ ; \
	$(SED) -i 's/^\(.*\)$$/"\1\\n"/' $@

%.1.h: %.1
	$(MAN_H_RECIPE)

%.3.h: %.3
	$(MAN_H_RECIPE)

%.8.h: %.8
	$(MAN_H_RECIPE)

all-local: $(MAN_H)

CLEANFILES += $(MAN_H)
endif # EMBED_HELP

if MAN_PAGES_OPT
# at this point, we know the user asked to build the man pages
if HAVE_ASCIIDOC_XMLTO

asciidoc_verbose = $(asciidoc_verbose_@AM_V@)
asciidoc_verbose_ = $(asciidoc_verbose_@AM_DEFAULT_V@)
asciidoc_verbose_0 = @echo "  ASCIIDOC  " $@;

xmlto_verbose = $(xmlto_verbose_@AM_V@)
xmlto_verbose_ = $(xmlto_verbose_@AM_DEFAULT_V@)
xmlto_verbose_0 = @echo "  XMLTO     " $@;

# tools
ADOC = $(asciidoc_verbose)$(ASCIIDOC) -f $(ASCIIDOC_CONF) -f $(ASCIIDOC_ATTRS_CONF) -d manpage
ADOC_DOCBOOK = $(ADOC) -b docbook
XTO = $(xmlto_verbose)$(XMLTO) -m $(XSL_FILE) man

# only add this dependency if we can build the man pages because it's
# a file generated by the configure script, so it's more recent than
# the pregenerated man pages in a tarball
COMMON_DEPS += $(ASCIIDOC_ATTRS_CONF)

# recipes
%.1.xml: $(srcdir)/%.1.txt $(COMMON_DEPS)
	$(ADOC_DOCBOOK) -o $@ $<

%.1: %.1.xml $(XSL_FILE)
	$(XTO) $< 2>/dev/null

%.3.xml: $(srcdir)/%.3.txt $(COMMON_DEPS)
	$(ADOC_DOCBOOK) -o $@ $<

%.3: %.3.xml $(XSL_FILE)
	$(XTO) $< 2>/dev/null

%.7.xml: $(srcdir)/%.7.txt $(COMMON_DEPS)
	$(ADOC_DOCBOOK) -o $@ $<

%.7: %.7.xml $(XSL_FILE)
	$(XTO) $< 2>/dev/null

%.8.xml: $(srcdir)/%.8.txt $(COMMON_DEPS)
	$(ADOC_DOCBOOK) -o $@ $<

%.8: %.8.xml $(XSL_FILE)
	$(XTO) $< 2>/dev/null

# only clean the generated files if we have the tools to generate them again
CLEANFILES += $(MAN_XML) $(MAN)
else # HAVE_ASCIIDOC_XMLTO
# create man page targets used to stop the build if we want to
# build the man pages, but we don't have the necessary tools to do so
ERR_MSG = "Error: Cannot build target because asciidoc or xmlto tool is missing."
ERR_MSG += "Make sure both tools are installed and run the configure script again."

%.1: $(srcdir)/%.1.txt $(COMMON_DEPS)
	@echo $(ERR_MSG)
	@false

%.3: $(srcdir)/%.3.txt $(COMMON_DEPS)
	@echo $(ERR_MSG)
	@false

%.7: $(srcdir)/%.7.txt $(COMMON_DEPS)
	@echo $(ERR_MSG)
	@false

%.8: $(srcdir)/%.8.txt $(COMMON_DEPS)
	@echo $(ERR_MSG)
	@false
endif # HAVE_ASCIIDOC_XMLTO
endif # MAN_PAGES_OPT

# those are always installed since they are directly written in troff
dist_man1_MANS = $(MAN1_NO_ASCIIDOC)
dist_man3_MANS = $(MAN3_NO_ASCIIDOC)
dist_man7_MANS = $(MAN7_NO_ASCIIDOC)
dist_man8_MANS = $(MAN8_NO_ASCIIDOC)

if MAN_PAGES_OPT
# building man pages: we can install and distribute them
dist_man1_MANS += $(MAN1)
dist_man3_MANS += $(MAN3)
dist_man7_MANS += $(MAN7)
dist_man8_MANS += $(MAN8)
endif # MAN_PAGES_OPT

if !MAN_PAGES_OPT
dist-hook:
	@echo "Error: Please enable the man pages before creating a distribution tarball."
	@false
endif # !MAN_PAGES_OPT

# always distribute the source files
EXTRA_DIST = $(MAN_TXT) $(COMMON_TXT) $(XSL_FILE) \
	$(ASCIIDOC_CONF) $(ASCIIDOC_ATTRS_CONF).in

# keep generated man pages that can be considered intermediate files
.PRECIOUS: %.1 %.3 %.7 %.8