@echo "** One other possible target is 'exim.8'".
exit 1
+EPUB_DOCBOOK= /usr/local/share/xsl/docbook/epub/docbook.xsl
############################# EVERYTHING ###############################
#
#
## removed info files as I cannot generate them - spec.info filter.info
## removed html files as superceded by new website code
-everything: spec.pdf spec.ps spec.txt \
- filter.pdf filter.ps filter.txt \
+everything: spec.pdf spec.ps spec.txt spec.epub \
+ filter.pdf filter.ps filter.txt filter.epub \
exim.8
############################## MAN PAGE ################################
filter-info.xml: filter.xml Pre-xml
./Pre-xml -ascii -html <filter.xml >filter-info.xml
+filter-epub.xml: filter.xml Pre-xml
+ ./Pre-xml -epub <filter.xml >filter-epub.xml
+
filter.fo: filter-pr.xml MyStyle-filter-fo.xsl MyStyle-fo.xsl MyStyle.xsl
/bin/rm -rf filter.fo filter-pr.fo
xmlto -x MyStyle-filter-fo.xsl fo filter-pr.xml
/bin/rm -rf exim_filtering.texi
makeinfo -o filter.info filter.texinfo
+filter.epub: filter-epub.xml
+ rm -rf book-filter
+ mkdir book-filter
+ xsltproc -o book-filter/ $(EPUB_DOCBOOK) filter-epub.xml
+ echo "application/epub+zip" > book-filter/mimetype
+ ( cd book-filter; zip -XqD ../filter.epub mimetype )
+ ( cd book-filter; zip -Xr9D ../filter.epub META-INF OEBPS )
+
########################################################################
spec-info.xml: spec.xml Pre-xml
./Pre-xml -ascii -html -noindex <spec.xml >spec-info.xml
+spec-epub.xml: spec.xml Pre-xml
+ ./Pre-xml -epub <spec.xml >spec-epub.xml
+
spec.fo: spec-pr.xml MyStyle-spec-fo.xsl MyStyle-fo.xsl MyStyle.xsl \
MyTitleStyle.xsl
/bin/rm -rf spec.fo spec-pr.fo
/bin/rm -rf the_exim_mta.texi
makeinfo -o spec.info --no-split spec.texinfo
+spec.epub: spec-epub.xml
+ rm -rf book-spec
+ mkdir book-spec
+ xsltproc -o book-spec/ $(EPUB_DOCBOOK) spec-epub.xml
+ echo "application/epub+zip" > book-spec/mimetype
+ ( cd book-spec; zip -XqD ../spec.epub mimetype )
+ ( cd book-spec; zip -Xr9D ../spec.epub META-INF OEBPS )
+
########################################################################
*.info* *.texinfo *.texi
########################################################################
+# vim: set ts=4 :
# except when preceded by <entry> (i.e. not in tables). The same is
# also done within a word of four or more upper-case letters (for
# compile-time options).
-
+#
+# -epub Convert date formats to comply with epub specification
+#
# The function that processes non-literal, non-monospaced text
$s;
}
+# Mapping needed for epub
+
+my %months = (
+ jan => '01', feb => '02', mar => '03', apr => '04', may => '05', jun => '06',
+ jul => '07', aug => '08', sep => '09', oct => '10', nov => '11', dec => '12',
+);
# The main program
$ascii = 0;
$bookinfo = 0;
+$epub = 0;
$html = 0;
$inliteral = 0;
$inliterallayout = 0;
if ($arg eq "-fi") { $ligatures = 1; }
elsif ($arg eq "-ascii") { $ascii = 1; }
elsif ($arg eq "-bookinfo") { $bookinfo = 1; }
+ elsif ($arg eq "-epub") { $epub = 1; }
elsif ($arg eq "-html") { $html = 1; }
elsif ($arg eq "-noindex") { $noindex = 1; }
elsif ($arg eq "-oneindex") { $oneindex = 1; }
next;
}
+ # Adjust dates to YYYY-MM-DD
+
+ if ($epub && /^\s*<date[\s>]/)
+ {
+ print;
+ while (<STDIN>)
+ {
+ last if /^\s*<\/date>/;
+
+ if (/^ \s* (\d{1,2}) \s+ ([a-zA-Z]{3}) \s+ (\d{4})/x)
+ {
+ die "Unknown month '$2'\n" unless exists $months{lc $2};
+ my $month = $months{lc $2};
+ s//$3-$month-$1/;
+ }
+ print;
+ }
+ }
+
# A line that is not in a monospaced literal block; keep track of which
# parts are in <literal> and which not. The latter get processed by the
# function above. Items in <literal> get quoted unless they are also in