mutt stable branch with some hacks
1## Process this file with automake to produce Makefile.in
2include $(top_srcdir)/flymake.am
3
4AUTOMAKE_OPTIONS = 1.6 foreign
5
6subdir = doc
7
8if BUILD_INFO
9INFO_DOCFILES = mutt.info
10endif
11if BUILD_DOC
12BUILD_DOC_TARGETS = stamp-doc-chunked manual.html manual.txt $(INFO_DOCFILES)
13endif
14
15DEFS = -DSYSCONFDIR=\"$(sysconfdir)\" -DBINDIR=\"$(bindir)\" -DHAVE_CONFIG_H=1
16AM_CPPFLAGS = -I. -I.. -I$(includedir) -I$(top_srcdir)
17
18MAKEDOC_CPP = $(CPP) $(AM_CPPFLAGS) $(DEFS) $(CPPFLAGS) -D_MAKEDOC -C
19
20noinst_PROGRAMS = makedoc
21
22EXTRA_DIST = dotlock.man \
23 smime_keys.man \
24 mutt.man \
25 pgpewrap.man \
26 pgpring.man \
27 PGP-Notes.txt \
28 applying-patches.txt \
29 devel-notes.txt \
30 gen-map-doc \
31 muttrc.man.head \
32 muttrc.man.tail \
33 mbox.man \
34 mmdf.man \
35 manual.xml.head \
36 manual.xml.tail \
37 instdoc.sh.in \
38 patch-notes.txt \
39 smime-notes.txt \
40 Muttrc Muttrc.head stamp-doc-rc \
41 makedoc.c makedoc-defs.h \
42 mutt.css mutt.xsl html.xsl chunk.xsl $(BUILT_DISTFILES)
43
44CHUNKED_DOCFILES = index.html intro.html gettingstarted.html \
45 configuration.html mimesupport.html advancedusage.html \
46 optionalfeatures.html security.html tuning.html reference.html miscellany.html
47
48HTML_DOCFILES = manual.html $(CHUNKED_DOCFILES)
49
50BUILT_DISTFILES = stamp-doc-xml stamp-doc-chunked manual.txt $(HTML_DOCFILES) $(INFO_DOCFILES)
51
52srcdir_DOCFILES = PGP-Notes.txt applying-patches.txt \
53 devel-notes.txt patch-notes.txt smime-notes.txt
54
55topsrcdir_DOCFILES = COPYRIGHT GPL INSTALL ChangeLog \
56 README NEWS TODO README.SECURITY README.SSL
57
58all: makedoc-all
59
60makedoc-all: mutt.1 smime_keys.1 muttrc.man stamp-doc-rc pgpewrap.1 mutt_pgpring.1 $(BUILD_DOC_TARGETS)
61
62install-data-local: makedoc-all instdoc
63 $(MKDIR_P) $(DESTDIR)$(mandir)/man1
64 $(MKDIR_P) $(DESTDIR)$(mandir)/man5
65 $(MKDIR_P) $(DESTDIR)$(sysconfdir)
66 ./instdoc mutt.1 $(DESTDIR)$(mandir)/man1/mutt.1
67 ./instdoc smime_keys.1 $(DESTDIR)$(mandir)/man1/smime_keys.1
68 ./instdoc pgpewrap.1 $(DESTDIR)$(mandir)/man1/pgpewrap.1
69 ./instdoc mutt_pgpring.1 $(DESTDIR)$(mandir)/man1/mutt_pgpring.1
70 test x$(DOTLOCK_TARGET) = x || ./instdoc $(srcdir)/dotlock.man \
71 $(DESTDIR)$(mandir)/man1/mutt_dotlock.1
72 ./instdoc muttrc.man $(DESTDIR)$(mandir)/man5/muttrc.5
73 ./instdoc $(srcdir)/mbox.man $(DESTDIR)$(mandir)/man5/mbox.5
74 ./instdoc $(srcdir)/mmdf.man $(DESTDIR)$(mandir)/man5/mmdf.5
75 $(MKDIR_P) $(DESTDIR)$(docdir)
76 for f in $(topsrcdir_DOCFILES) ; do \
77 $(INSTALL) -m 644 $(top_srcdir)/$$f $(DESTDIR)$(docdir) ; \
78 done
79 for f in $(srcdir_DOCFILES) ; do \
80 $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir) ; \
81 done
82 -if [ -f manual.txt ] ; then \
83 $(INSTALL) -m 644 manual.txt $(DESTDIR)$(docdir) ; \
84 fi
85 -for f in $(HTML_DOCFILES) ; do \
86 if [ -f $$f ] ; then \
87 $(INSTALL) -m 644 $$f $(DESTDIR)$(docdir) ; \
88 fi \
89 done
90 $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.dist
91 -if [ -f $(DESTDIR)$(pkgdatadir)/Muttrc ] ; then \
92 mv $(DESTDIR)$(pkgdatadir)/Muttrc* $(DESTDIR)$(sysconfdir) ; \
93 elif [ -f $(DESTDIR)$(pkgdatadir)/../Muttrc ] ; then \
94 mv $(DESTDIR)$(pkgdatadir)/../Muttrc* $(DESTDIR)$(sysconfdir) ; \
95 elif [ ! -f $(DESTDIR)$(sysconfdir)/Muttrc ] ; then \
96 $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir) ; \
97 fi
98 -if [ -f mutt.info ] ; then \
99 $(MKDIR_P) $(DESTDIR)$(infodir) ; \
100 $(INSTALL) -m 644 mutt.info $(DESTDIR)$(infodir) ; \
101 if command -v install-info >/dev/null 2>&1 ; then \
102 install-info $(DESTDIR)$(infodir)/mutt.info $(DESTDIR)$(infodir)/dir ; \
103 fi \
104 fi
105
106uninstall-local:
107 for f in mutt.1 mutt_dotlock.1 smime_keys.1 pgpewrap.1 mutt_pgpring.1; do \
108 rm -f $(DESTDIR)$(mandir)/man1/$$f ; \
109 done
110 for f in muttrc.5 mbox.5 mmdf.5 ; do \
111 rm -f $(DESTDIR)$(mandir)/man5/$$f ; \
112 done
113 for f in $(srcdir_DOCFILES) $(topsrcdir_DOCFILES) $(HTML_DOCFILES) ; \
114 do \
115 rm -f $(DESTDIR)$(docdir)/$$f ; \
116 done
117 -rm -f $(DESTDIR)$(docdir)/manual.txt
118 for i in Muttrc ; do \
119 if cmp -s $(DESTDIR)$(sysconfdir)/$$i.dist $(DESTDIR)$(sysconfdir)/$$i ; then \
120 rm -f $(DESTDIR)$(sysconfdir)/$$i ; \
121 fi ; \
122 rm -f $(DESTDIR)$(sysconfdir)/$${i}.dist ; \
123 done
124 -if [ -f $(DESTDIR)$(infodir)/mutt.info ] ; then \
125 if command -v install-info >/dev/null 2>&1 ; then \
126 install-info --delete $(DESTDIR)$(infodir)/mutt.info $(DESTDIR)$(infodir)/dir ; \
127 fi ; \
128 rm -f $(DESTDIR)$(infodir)/mutt.info ; \
129 fi
130
131check:
132manual.txt: manual.html
133 -LC_ALL=C lynx -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@ || \
134 LC_ALL=C w3m -dump manual.html > $@ || \
135 LC_ALL=C elinks -dump -no-numbering -no-references manual.html | sed -e 's,\\001, ,g' > $@
136
137Muttrc: stamp-doc-rc
138
139stamp-doc-rc: $(top_srcdir)/init.h makedoc$(EXEEXT) $(srcdir)/Muttrc.head
140 -rm -f Muttrc stamp-doc-rc
141 sed -e 's,[@]docdir[@],$(docdir),' $(srcdir)/Muttrc.head > Muttrc
142 $(CPP) $(AM_CPPFLAGS) $(DEFS) $(CPPFLAGS) -D_MAKEDOC -C \
143 $(top_srcdir)/init.h | ./makedoc$(EXEEXT) -c >> Muttrc
144 touch stamp-doc-rc
145
146manual.html: $(srcdir)/html.xsl $(srcdir)/mutt.xsl stamp-doc-xml $(srcdir)/mutt.css
147 -xsltproc --nonet -o $@ $(srcdir)/html.xsl manual.xml
148
149stamp-doc-chunked: $(srcdir)/chunk.xsl $(srcdir)/mutt.xsl stamp-doc-xml $(srcdir)/mutt.css
150 -xsltproc --nonet $(srcdir)/chunk.xsl manual.xml
151 touch stamp-doc-chunked
152
153$(CHUNKED_DOCFILES): stamp-doc-chunked
154
155manual.pdf: manual.tex
156 -if test -f manual.tex; then pdfjadetex manual.tex; pdfjadetex manual.tex; pdfjadetex manual.tex; fi
157
158# Note / Request For Help:
159# On Debian, the below invocation of openjade is not working for me.
160# I was able to generate manual.tex by instead running:
161# openjade -t tex -D $(DSLROOT) -d print/docbook.dsl \
162# -i xml /usr/share/xml/declaration/xml.dcl manual.xml
163# However, being completely unfamiliar with these tools, am unsure how to
164# make this portable.
165manual.tex: stamp-doc-xml
166 -if test -n "$(DSLROOT)"; then \
167 openjade -t tex -D $(DSLROOT) -d print/docbook.dsl dtds/decls/xml.dcl manual.xml; \
168 fi
169
170mutt.texi: stamp-doc-xml
171 -$(DB2XTEXI) --encoding=utf-8 \
172 --string-param output-file=mutt \
173 --string-param 'directory-category=Email-software' \
174 --string-param 'directory-description=Text based mail reader' \
175 manual.xml
176 @-if test ! -f mutt.texi; then \
177 echo "WARNING: mutt.texi generation failed!"; \
178 echo "To generate Gnu Info documentation, install docbook2x."; \
179 echo "On Debian based systems, this is the 'docbook2x' package."; \
180 echo "On Red Hat/Fedora systems, this is the 'docbook2X' package."; \
181 echo "After installing the package, please re-run configure."; \
182 fi
183
184mutt.info: mutt.texi
185 -$(MAKEINFO) --no-split -o mutt.info mutt.texi
186
187validate: stamp-doc-xml
188 xmllint --noout --noblanks --postvalid manual.xml
189
190spellcheck:
191 -aspell -d american --mode=sgml --encoding=utf-8 -p $(srcdir)/mutt.pwl check manual.xml.head
192 -aspell -d american --mode=nroff --encoding=utf-8 -p $(srcdir)/mutt.pwl check muttrc.man.head
193 -aspell -d american --mode=ccpp --encoding=utf-8 -p $(srcdir)/mutt.pwl check $(top_srcdir)/init.h
194
195sortcheck: manual.xml
196 sed -n -e '1,/^<sect1 id="variables">/d' -e '1,/^<sect1 id="functions">/s/<sect2 id="\([^"]*\)">/\1/p' < manual.xml > vars.tmp.1
197 sort < vars.tmp.1 > vars.tmp.2
198 cmp -s vars.tmp.1 vars.tmp.2 || diff -u vars.tmp.1 vars.tmp.2 | less
199 rm -rf vars.tmp.1 vars.tmp.2
200
201clean-local:
202 rm -f *~ *.html *.orig *.rej stamp-doc-* *.ps mutt.1 smime_keys.1 muttrc.man pgpewrap.1 mutt_pgpring.1
203 rm -f *.aux *.log *.tex *.out mutt.texi $(INFO_DOCFILES)
204
205DISTCLEANFILES=manual.txt manual.html manual.xml manual.pdf html \
206 instdoc Muttrc
207
208instdoc: instdoc.sh
209 cat instdoc.sh > instdoc
210 chmod a+x instdoc
211
212update-doc: stamp-doc-rc $(BUILD_DOC_TARGETS)
213
214muttrc.man: makedoc$(EXEEXT) $(top_srcdir)/init.h muttrc.man.head muttrc.man.tail
215 $(MAKEDOC_CPP) $(top_srcdir)/init.h | ./makedoc$(EXEEXT) -m | \
216 cat $(srcdir)/muttrc.man.head - $(srcdir)/muttrc.man.tail\
217 > muttrc.man
218
219EDIT = sed -e 's,@sysconfdir\@,$(sysconfdir),g' \
220 -e 's,@bindir\@,$(bindir),g' \
221 -e 's,@docdir\@,$(docdir),g'
222
223mutt.1: $(srcdir)/mutt.man
224 $(EDIT) $(srcdir)/mutt.man > $@
225
226pgpewrap.1: $(srcdir)/pgpewrap.man
227 $(EDIT) $(srcdir)/pgpewrap.man > $@
228
229mutt_pgpring.1: $(srcdir)/pgpring.man
230 $(EDIT) $(srcdir)/pgpring.man > $@
231
232smime_keys.1: $(srcdir)/smime_keys.man
233 $(EDIT) $(srcdir)/smime_keys.man > $@
234
235stamp-doc-xml: makedoc$(EXEEXT) $(top_srcdir)/init.h \
236 manual.xml.head $(top_srcdir)/functions.h $(top_srcdir)/OPS* manual.xml.tail \
237 $(srcdir)/gen-map-doc $(top_srcdir)/VERSION $(top_srcdir)/ChangeLog
238 ( date=`(cd $(top_srcdir) && ./mkreldate.sh)` && \
239 version=`(cd $(top_srcdir) && env sh ./version.sh)` && \
240 sed -e "s/@VERSION\@/$$version ($$date)/" $(srcdir)/manual.xml.head && \
241 $(MAKEDOC_CPP) $(top_srcdir)/init.h | ./makedoc$(EXEEXT) -s && \
242 $(MAKEDOC_CPP) $(top_srcdir)/functions.h | \
243 perl $(srcdir)/gen-map-doc $(srcdir)/manual.xml.tail $(top_srcdir)/OPS* \
244 ) > manual.xml
245 touch stamp-doc-xml