3 DOCFILES:=*.texinfo $(ASDFTEXI)
4 TMPTYPES:=aux cp cps fn fns ky log pg toc tp tps vr vrs
5 TMPFILES:=$(foreach target,asdf sbcl,$(foreach type,$(TMPTYPES),$(target).$(type)))
6 PSFILES=sbcl.ps asdf.ps
7 PDFFILES=sbcl.pdf asdf.pdf
8 INFOFILES=sbcl.info asdf.info
9 HTMLDIRS=$(basename $(SBCLTEXI)) $(basename $(ASDFTEXI))
10 HTMLFILES=sbcl.html asdf.html
11 # Place where generated documentation ends up. The value of
12 # DOCSTRINGDIR has to end with a slash or you lose (it's passed to
13 # Lisp's `pathname' function).
14 DOCSTRINGDIR="docstrings/"
15 CONTRIBDIR="../../contrib/"
16 I_FLAGS=-I $(DOCSTRINGDIR) -I $(CONTRIBDIR)
17 # List of contrib modules that docstring docs will be created for.
18 MODULES=':sb-md5 :sb-queue :sb-concurrency :sb-rotate-byte :sb-grovel \
19 :sb-sprof :sb-bsd-sockets :sb-cover :sb-posix'
20 # List of package names that docstring docs will be created for.
21 PACKAGES=":COMMON-LISP :SB-ALIEN :SB-DEBUG :SB-EXT :SB-GRAY :SB-MOP \
22 :SB-PROFILE :SB-THREAD :SB-MD5 :SB-QUEUE :SB-ROTATE-BYTE \
23 :SB-SPROF :SB-BSD-SOCKETS :SB-COVER :SB-POSIX :SB-CONCURRENCY"
25 # SBCL_SYSTEM is an optional argument to this make program. If this
26 # variable is set, its contents are used as the command line for
29 # When passing a non-standard SBCL_SYSTEM, be sure to set the
30 # environment variable SBCL_HOME to a useful value, as well.
45 all: asdf.texinfo ps pdf info html
52 ln -s ../../contrib/asdf/asdf.texinfo
54 # html documentation; output in $(HTMLDIRS)
58 html-stamp: $(DOCFILES) docstrings
61 $(MAKEINFO) $(I_FLAGS) --html --css-include=style-multi.css $(SBCLTEXI)
62 $(MAKEINFO) --html --css-include=style-multi.css $(ASDFTEXI)
63 $(MAKEINFO) $(I_FLAGS) --html --no-split --css-include=style-single.css $(SBCLTEXI)
64 $(MAKEINFO) --html --no-split --css-include=style-single.css $(ASDFTEXI)
67 # Postscript documentation
75 %.dvi: %.texinfo $(DOCFILES) docstrings
76 texi2dvi $(I_FLAGS) $<
82 %.pdf: %.texinfo $(DOCFILES) docstrings
83 $(TEXI2PDF) $(I_FLAGS) $<
89 %.info: %.texinfo $(DOCFILES) docstrings
90 $(MAKEINFO) $(I_FLAGS) $<
92 # Texinfo docstring snippets
93 # Note: assumes contrib module names are the same as the names of
94 # directories containing the modules, and that these directories
95 # are in $(CONTRIBDIR).
96 CONTRIB_FASLS=$(shell find $(shell echo $(MODULES) | sed "s|:|$(CONTRIBDIR)|g") -name '*.fasl')
97 docstrings: $(CONTRIB_FASLS) tempfiles-stamp
98 for module in $(shell echo $(MODULES)); do \
99 test -e $(CONTRIBDIR)/$${module#:}/test-passed \
100 || { echo "The documented contrib $$module seems \
101 to have failed its tests." && exit 1; } \
103 DOCSTRINGDIR=$(DOCSTRINGDIR) \
104 PACKAGES=$(PACKAGES) \
106 sh make-tempfiles.sh "$(SBCL_SYSTEM)" && touch $(DOCSTRINGDIR)
109 touch tempfiles-stamp
113 rm -f *~ *.bak *.orig \#*\# .\#* texput.log *.fasl
114 rm -rf $(HTMLDIRS) $(DOCSTRINGDIR)
116 rm -f contrib-docs.texi-temp
117 rm -f package-locks.texi-temp
118 rm -f variables.texinfo
119 rm -f $(PSFILES) $(PDFFILES) html-stamp tempfiles-stamp
120 rm -f $(TMPFILES) $(INDEXFILES)
121 rm -f sbcl.info sbcl.info-* asdf.info