Add a howto section.
[gnupg.git] / doc / Makefile.am
1 # Copyright (C) 2002, 2004 Free Software Foundation, Inc.
2 #
3 # This file is part of GnuPG.
4 #
5 # GnuPG is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9
10 # GnuPG is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
18 # USA.
19
20 ## Process this file with automake to produce Makefile.in
21
22 examples = examples/README examples/scd-event examples/trustlist.txt \
23            examples/gpgconf.conf
24
25 EXTRA_DIST = DETAILS HACKING TRANSLATE OpenPGP KEYSERVER samplekeys.asc \
26              gnupg-logo.eps gnupg-logo.pdf gnupg-logo.png \
27              gnupg-card-architecture.eps gnupg-card-architecture.png \
28              gnupg-card-architecture.pdf \
29              faq.raw FAQ faq.html gnupg7.texi \
30              opt-homedir.texi see-also-note.texi specify-user-id.texi \
31              gpgv.texi texi.css $(examples)
32
33 BUILT_SOURCES = gnupg-card-architecture.eps gnupg-card-architecture.png \
34                 gnupg-card-architecture.pdf FAQ faq.html
35
36 noinst_PROGRAMS = yat2m
37
38 info_TEXINFOS = gnupg.texi
39
40 dist_pkgdata_DATA = qualified.txt FAQ faq.html com-certs.pem
41
42 gnupg_TEXINFOS = \
43         gpg.texi gpgsm.texi gpg-agent.texi scdaemon.texi instguide.texi \
44         tools.texi debugging.texi glossary.texi contrib.texi gpl.texi \
45         sysnotes.texi gnupg-card-architecture.fig \
46         howtos.texi howto-create-a-server-cert.texi
47
48 DVIPS = TEXINPUTS="$(srcdir)$(PATH_SEPARATOR)$$TEXINPUTS" dvips
49
50 AM_MAKEINFOFLAGS = -I $(srcdir) --css-include=$(srcdir)/texi.css
51
52 YAT2M_OPTIONS = -I $(srcdir) \
53         --release "GnuPG @PACKAGE_VERSION@" --source "GNU Privacy Guard"
54
55 myman_sources = gnupg7.texi gpg.texi gpgsm.texi gpg-agent.texi \
56                 scdaemon.texi tools.texi
57 myman_pages   = gpg2.1 gpgsm.1 gpg-agent.1 scdaemon.1 gpgv2.1 \
58                 watchgnupg.1 gpgconf.1 addgnupghome.8 gpg-preset-passphrase.1 \
59                 gpg-connect-agent.1 gpgparsemail.1 symcryptrun.1 \
60                 gpgsm-gencert.sh.1 applygnupgdefaults.8
61
62 man_MANS = $(myman_pages)
63 noinst_MANS = gnupg.7
64
65 watchgnupg_SOURCE = gnupg.texi
66
67
68 CLEANFILES = faq.raw.xref
69
70 DISTCLEANFILES = gnupg.tmp gnupg.ops yat2m-stamp.tmp yat2m-stamp \
71                  $(myman_pages) gnupg.7
72
73 yat2m_SOURCES = yat2m.c
74
75
76
77 .fig.png:
78         fig2dev -L png `test -f '$<' || echo '$(srcdir)/'`$< $@
79
80 .fig.jpg:
81         fig2dev -L jpg `test -f '$<' || echo '$(srcdir)/'`$< $@
82
83 .fig.eps:
84         fig2dev -L eps `test -f '$<' || echo '$(srcdir)/'`$< $@
85
86 .fig.pdf:
87         fig2dev -L pdf `test -f '$<' || echo '$(srcdir)/'`$< $@
88
89
90 FAQ : faq.raw
91 if WORKING_FAQPROG
92         $(FAQPROG) -f $<  $@ || $(FAQPROG) -f $< $@
93 else
94         : Warning: missing faqprog.pl, cannot make $@
95         echo "No $@ due to missing faqprog.pl" > $@
96         echo "See ftp://ftp.gnupg.org/gcrypt/contrib/faqprog.pl" >> $@
97 endif
98
99 faq.html : faq.raw
100 if WORKING_FAQPROG
101         $(FAQPROG) -h -f $< $@ 2>&1 || $(FAQPROG) -h -f $< $@
102 else
103         : Warning: missing faqprog.pl, cannot make $@
104         echo "No $@ due to missing faqprog.pl" > $@
105         echo "See ftp://ftp.gnupg.org/gcrypt/contrib/faqprog.pl" >> $@
106 endif
107
108
109 yat2m-stamp: $(myman_sources)
110         @rm -f yat2m-stamp.tmp
111         @touch yat2m-stamp.tmp
112         for file in $(myman_sources) ; do \
113               ./yat2m $(YAT2M_OPTIONS) --store \
114                   `test -f '$$file' || echo '$(srcdir)/'`$$file ; done
115         @mv -f yat2m-stamp.tmp $@
116
117 yat2m-stamp: yat2m
118
119 $(myman_pages) gnupg.7 : yat2m-stamp
120         @if test -f $@; then :; else \
121             trap 'rm -rf yat2m-stamp yat2m-lock' 1 2 13 15; \
122                if mkdir yat2m-lock 2>/dev/null; then \
123                  rm -f yat2m-stamp; \
124                  $(MAKE) $(AM_MAKEFLAGS) yat2m-stamp; \
125                  rmdir yat2m-lock; \
126                else \
127                  while test -d yat2m-lock; do sleep 1; done; \
128                  test -f yat2m-stamp; exit $$?; \
129                fi; \
130              fi
131
132 # Make sure that gnupg.texi is touched if any other source file has
133 # been modified.  This is required so that the version.texi magic
134 # updates the release date.
135 gnupg.texi : $(gnupg_TEXINFOS)
136         touch $(srcdir)/gnupg.texi
137
138 install-html-local:
139         cp $(srcdir)/gnupg-logo.png gnupg.html/
140
141 online: gnupg.html gnupg.pdf
142         set -e; \
143         echo "Uploading current manuals to www.gnupg.org ..."; \
144         cp gnupg-logo.png gnupg.html/; \
145         user=werner ; \
146         (cd gnupg.html && rsync -vr --exclude='.svn' .  \
147           $${user}@cvs.gnupg.org:webspace/manuals/gnupg/ ); \
148         rsync -v gnupg.pdf $${user}@cvs.gnupg.org:webspace/manuals/
149