about summary refs log tree commit diff
path: root/mk/docs.mk
blob: 4a5821ec2df5e4bba7800281a8980c809f5be015 (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
######################################################################
# Doc variables and rules
######################################################################

docs: $(DOCS)

doc/keywords.texi: $(S)doc/keywords.txt $(S)src/etc/gen-keywords-table.py
	@$(call E, gen-keywords-table: $@)
	$(Q)$(S)src/etc/gen-keywords-table.py

doc/version.texi: $(MKFILE_DEPS) rust.texi
	@$(call E, version-stamp: $@)
	$(Q)echo "@macro gitversion" >$@
	$(Q)echo "$(CFG_VERSION)" >>$@
	$(Q)echo "@end macro" >>$@

doc/%.pdf: %.texi doc/version.texi doc/keywords.texi
	@$(call E, texi2pdf: $@)
	@# LC_COLLATE=C works around a bug in texi2dvi; see
	@# https://bugzilla.redhat.com/show_bug.cgi?id=583011 and
	@# https://github.com/graydon/rust/issues/1134
	$(Q)LC_COLLATE=C texi2pdf --silent --batch -I doc -o $@ --clean $<

doc/%.html: %.texi doc/version.texi doc/keywords.texi
	@$(call E, makeinfo: $@)
	$(Q)makeinfo -I doc --html --ifhtml --force --no-split --output=$@ $<

docsnap: doc/rust.pdf
	@$(call E, snap: doc/rust-$(shell date +"%Y-%m-%d")-snap.pdf)
	$(Q)mv $< doc/rust-$(shell date +"%Y-%m-%d")-snap.pdf

define libdoc
doc/$(1)/index.html: nd/$(1)/Languages.txt nd/$(1)/Topics.txt \
                     nd/$(1)/lib.css $(2)
	@$$(call E, naturaldocs: $$@)
	naturaldocs -i $(S)src/lib$(1) -o HTML doc/$(1) -p nd/$(1) -r -s Default lib

nd/$(1)/Languages.txt: $(S)doc/Languages.txt
	@$$(call E, cp: $$@)
	$(Q)cp $$< $$@

nd/$(1)/Topics.txt: $(S)doc/Topics.txt
	@$$(call E, cp: $$@)
	$(Q)cp $$< $$@

nd/$(1)/lib.css: $(S)doc/lib.css
	@$$(call E, cp: $$@)
	$(Q)cp $$< $$@

endef

$(eval $(call libdoc,core,$(CORELIB_CRATE) $(CORELIB_INPUTS)))
$(eval $(call libdoc,std,$(STDLIB_CRATE) $(STDLIB_INPUTS)))