1##  Makefile.am -- an automake template for Makefile.in file
2##  Copyright (C) 2009 Chris Bagwell and Sane Developers.
3##
4##  This file is part of the "Sane" build infra-structure.  See
5##  included LICENSE file for license information.
6
7man1_MANS = scanimage.1 sane-config.1 sane-find-scanner.1 gamma4scanimage.1
8EXTRA_DIST = scanimage.man sane-config.man sane-find-scanner.man \
9  gamma4scanimage.man
10
11# Create a list of man pages for only backends that are compiled in so
12# that is all that gets installed.  Also, build a complete list of all
13# backend man pages.  This allows a user to optionally generate all
14# man pages in HTML form for things like posting to a web site.
15#
16# Backend man pages bypass standard automake man5_MANS because there is not
17# a man page for every supported backend.  We could get rid of
18# custom install/uninstall if we required man pages for every backend.
19
20BACKEND_5MANS = sane-abaton.5 sane-agfafocus.5 sane-apple.5 sane-as6e.5 \
21        sane-canon_lide70.5 \
22	sane-dll.5 sane-dc25.5 sane-dmc.5 sane-epson.5 sane-epson2.5 sane-epsonds.5 \
23	sane-escl.5 sane-hp.5 sane-gphoto2.5 sane-leo.5 sane-lexmark.5 \
24	sane-matsushita.5 sane-microtek.5 sane-microtek2.5 sane-mustek.5 \
25	sane-nec.5 sane-net.5 sane-pie.5 sane-pieusb.5 sane-pint.5 sane-pnm.5 \
26	sane-umax.5 sane-qcam.5 sane-scsi.5 sane-artec.5 sane-kodak.5 sane-kodakaio.5 \
27	sane-fujitsu.5 sane-sharp.5 sane-s9036.5 sane-tamarack.5 \
28	sane-ricoh.5 sane-ricoh2.5 sane-avision.5 sane-plustek.5 sane-st400.5 \
29	sane-mustek_pp.5 sane-dc210.5 sane-v4l.5 sane-snapscan.5 \
30	sane-canon.5 sane-coolscan.5 sane-bh.5 sane-dc240.5 \
31	sane-umax_pp.5 sane-umax1220u.5 sane-sm3600.5 sane-usb.5 \
32	sane-mustek_usb.5 sane-sceptre.5 sane-canon_pp.5 sane-canon630u.5 \
33        sane-teco1.5 sane-teco2.5 sane-teco3.5 sane-test.5 sane-sp15c.5 \
34	sane-coolscan2.5 sane-hpsj5s.5 sane-gt68xx.5 sane-artec_eplus48u.5 \
35	sane-ma1509.5 sane-ibm.5 sane-hp5400.5 sane-plustek_pp.5 sane-u12.5 \
36	sane-niash.5 sane-sm3840.5 sane-genesys.5 sane-hp4200.5 \
37	sane-mustek_usb2.5 sane-hp3500.5 sane-pixma.5 sane-stv680.5 \
38	sane-hp5590.5 sane-hpljm1005.5 sane-cardscan.5 sane-hp3900.5 \
39	sane-epjitsu.5 sane-hs2p.5 sane-canon_dr.5 sane-xerox_mfp.5 \
40	sane-rts8891.5 sane-coolscan3.5 sane-kvs1025.5 sane-kvs20xx.5 \
41	sane-kvs40xx.5 sane-p5.5 sane-magicolor.5
42
43EXTRA_DIST += sane-abaton.man sane-agfafocus.man sane-apple.man sane-as6e.man \
44        sane-canon_lide70.man \
45	sane-dll.man sane-dc25.man sane-dmc.man sane-epson.man \
46	sane-epson2.man sane-epsonds.man sane-escl.man sane-hp.man sane-gphoto2.man \
47	sane-leo.man sane-lexmark.man sane-matsushita.man sane-microtek.man \
48	sane-microtek2.man sane-mustek.man sane-nec.man sane-net.man \
49	sane-pie.man sane-pieusb.man sane-pint.man sane-pnm.man sane-umax.man \
50	sane-qcam.man sane-scsi.man sane-artec.man sane-fujitsu.man \
51	sane-sharp.man sane-s9036.man sane-tamarack.man sane-kodak.man sane-kodakaio.man\
52	sane-ricoh.man sane-ricoh2.man sane-avision.man sane-plustek.man sane-st400.man \
53	sane-mustek_pp.man sane-dc210.man sane-v4l.man sane-snapscan.man \
54	sane-canon.man sane-coolscan.man sane-bh.man sane-dc240.man \
55	sane-umax_pp.man sane-umax1220u.man sane-sm3600.man sane-usb.man \
56	sane-mustek_usb.man sane-sceptre.man sane-canon_pp.man \
57	sane-canon630u.man sane-teco1.man sane-teco2.man \
58	sane-teco3.man sane-test.man sane-sp15c.man sane-coolscan2.man \
59	sane-hpsj5s.man sane-gt68xx.man sane-artec_eplus48u.man \
60	sane-ma1509.man sane-ibm.man sane-hp5400.man sane-plustek_pp.man \
61	sane-u12.man sane-niash.man sane-sm3840.man sane-genesys.man \
62	sane-hp4200.man sane-mustek_usb2.man sane-hp3500.man \
63	sane-pixma.man sane-stv680.man sane-hp5590.man sane-hpljm1005.man \
64	sane-cardscan.man sane-hp3900.man sane-epjitsu.man sane-hs2p.man \
65	sane-canon_dr.man sane-xerox_mfp.man sane-rts8891.man \
66	sane-coolscan3.man sane-kvs1025.man sane-kvs20xx.man sane-kvs40xx.man \
67	sane-p5.man sane-magicolor.man
68
69man7_MANS = sane.7
70EXTRA_DIST += sane.man
71
72man8_MANS = saned.8
73EXTRA_DIST += saned.man
74
75MANPAGES = $(man1_MANS) $(BACKEND_5MANS) $(man7_MANS) $(man8_MANS)
76
77if CROSS_COMPILING
78HTML_PAGES =
79else
80HTML_PAGES = sane-backends.html sane-backends-external.html \
81	     sane-mfgs.html sane-mfgs-external.html
82endif
83doc_DATA = $(HTML_PAGES)
84
85all: bemans html-pages
86
87dist_doc_DATA = backend-writing.txt
88nobase_dist_doc_DATA = $(BEDOCS)
89EXTRA_DIST += descriptions.txt releases.md sane-logo2.jpg sane-logo.png \
90  sane.png
91
92MAN2HTML = nroff -c -man |\
93	  man2html -compress -topm 6 -botm 6 -nodepage -title $${page} \
94          -cgiurl '$$title.$$section.html'|\
95	  sed 's,<BODY>,<BODY BGCOLOR=\#FFFFFF TEXT=\#000000><H1 ALIGN=CENTER><IMG SRC="/images/sane.png" HEIGHT=117 WIDTH=346></H1>,'
96
97%.1 %.5 %.7 %.8: %.man
98	$(AM_V_GEN)
99	@if $(AM_V_P); then echo "Generating manpage $@..."; fi
100	@sed -e 's|@DATADIR@|$(datadir)|g' \
101	  -e 's|@CONFIGDIR@|$(configdir)|g' \
102	  -e 's|@DOCDIR@|$(docdir)|g' \
103	  -e 's|@LIBDIR@|$(libdir)/sane|g' \
104	  -e 's|@BINDIR@|$(bindir)|g' \
105	  -e 's|@SBINDIR@|$(sbindir)|g' \
106	  -e 's|@PACKAGEVERSION@|$(package_version)|g' $^ >$@
107
108bemans: $(BACKEND_5MANS)
109
110beman5dir = $(mandir)/man5
111install-beman5: $(BACKEND_5MANS)
112	test -z "$(beman5dir)" || $(MKDIR_P) "$(DESTDIR)$(beman5dir)"
113	@list="$(BACKEND_MANS_ENABLED) sane-dll.5 sane-scsi.5 sane-usb.5"; for man in $$list; do \
114	  if test ! -r $${man}; then continue; fi; \
115	  echo "installing $${man} in $(beman5dir)/$${man}..."; \
116	  $(INSTALL_DATA) $${man} $(DESTDIR)$(beman5dir)/$${man} \
117	  || exit 1; \
118	done
119
120BEDOCS = canon/canon.changes canon/canon.install2700F.txt
121BEDOCS += gt68xx/gt68xx.CHANGES gt68xx/gt68xx.TODO
122BEDOCS += leo/leo.txt
123BEDOCS += matsushita/matsushita.txt
124BEDOCS += mustek/mustek.CHANGES
125BEDOCS += mustek_usb/mustek_usb.CHANGES mustek_usb/mustek_usb.TODO
126BEDOCS += mustek_usb2/mustek_usb2.CHANGES mustek_usb2/mustek_usb2.TODO
127BEDOCS += niash/niash.TODO
128BEDOCS += plustek/FAQ \
129  plustek/Plustek-PARPORT-TODO.txt \
130  plustek/Plustek-PARPORT.changes plustek/Plustek-PARPORT.txt \
131  plustek/Plustek-USB-TODO.txt plustek/Plustek-USB.changes \
132  plustek/Plustek-USB.txt
133BEDOCS += sceptre/s1200.txt
134BEDOCS += teco/teco1.txt teco/teco2.txt teco/teco3.txt
135BEDOCS += u12/U12.changes u12/U12.todo
136BEDOCS += umax/negative-types.txt umax/sane-logo.jpg \
137  umax/sane-umax-advanced-options-doc.html \
138  umax/sane-umax-advanced.jpg umax/sane-umax-astra-doc.html \
139  umax/sane-umax-config-doc.html umax/sane-umax-doc.html \
140  umax/sane-umax-histogram.jpg umax/sane-umax-mirage-doc.html \
141  umax/sane-umax-not-listed-doc.html umax/sane-umax-others-doc.html \
142  umax/sane-umax-parport-doc.html umax/sane-umax-powerlook-doc.html \
143  umax/sane-umax-scanner-clones-doc.html umax/sane-umax-speed-doc.html \
144  umax/sane-umax-standard-options-doc.html \
145  umax/sane-umax-standard.jpg umax/sane-umax-text.jpg \
146  umax/sane-umax-text2.jpg umax/sane-umax-text4.jpg \
147  umax/sane-umax-uc-doc.html umax/sane-umax-vista-doc.html \
148  umax/sane-umax.jpg umax/umax.BUGS umax/umax.CHANGES umax/umax.FAQ \
149  umax/umax.TODO
150
151DESC_FILES = descriptions/abaton.desc descriptions/agfafocus.desc \
152  descriptions/apple.desc descriptions/artec.desc \
153  descriptions/artec_eplus48u.desc descriptions/as6e.desc \
154  descriptions/avision.desc descriptions/bh.desc descriptions/canon630u.desc \
155  descriptions/canon.desc descriptions/canon_dr.desc \
156  descriptions/canon_lide70.desc \
157  descriptions/canon_pp.desc descriptions/cardscan.desc \
158  descriptions/coolscan2.desc descriptions/coolscan.desc \
159  descriptions/coolscan3.desc \
160  descriptions/dc210.desc descriptions/dc240.desc descriptions/dc25.desc \
161  descriptions/dell1600n_net.desc descriptions/dll.desc descriptions/dmc.desc \
162  descriptions/epjitsu.desc descriptions/epson2.desc descriptions/epson.desc \
163  descriptions/epsonds.desc descriptions/escl.desc \
164  descriptions/fujitsu.desc descriptions/genesys.desc \
165  descriptions/gphoto2.desc descriptions/gt68xx.desc descriptions/hp3500.desc \
166  descriptions/hp3900.desc descriptions/hp4200.desc descriptions/hp5400.desc \
167  descriptions/hp5590.desc descriptions/hp.desc descriptions/hpljm1005.desc \
168  descriptions/hpsj5s.desc descriptions/hs2p.desc descriptions/ibm.desc \
169  descriptions/kodak.desc descriptions/kodakaio.desc descriptions/kvs1025.desc \
170  descriptions/kvs20xx.desc descriptions/kvs40xx.desc \
171  descriptions/leo.desc descriptions/lexmark.desc descriptions/ma1509.desc \
172  descriptions/magicolor.desc \
173  descriptions/matsushita.desc descriptions/microtek2.desc \
174  descriptions/microtek.desc descriptions/mustek.desc \
175  descriptions/mustek_pp.desc descriptions/mustek_usb2.desc \
176  descriptions/mustek_usb.desc descriptions/nec.desc descriptions/net.desc \
177  descriptions/niash.desc descriptions/pie.desc descriptions/pieusb.desc descriptions/pint.desc \
178  descriptions/p5.desc descriptions/pixma.desc descriptions/plustek.desc \
179  descriptions/plustek_pp.desc descriptions/pnm.desc descriptions/qcam.desc \
180  descriptions/ricoh.desc descriptions/ricoh2.desc \
181  descriptions/rts8891.desc descriptions/s9036.desc \
182  descriptions/sceptre.desc descriptions/sharp.desc descriptions/sm3600.desc \
183  descriptions/sm3840.desc descriptions/snapscan.desc descriptions/sp15c.desc \
184  descriptions/st400.desc descriptions/stv680.desc descriptions/tamarack.desc \
185  descriptions/teco1.desc descriptions/teco2.desc descriptions/teco3.desc \
186  descriptions/test.desc descriptions/u12.desc \
187  descriptions/umax1220u.desc descriptions/umax.desc \
188  descriptions/umax_pp.desc  descriptions/unsupported.desc \
189  descriptions/v4l.desc descriptions/xerox_mfp.desc
190EXTRA_DIST += $(DESC_FILES) descriptions/template.desc
191
192DESC_EXT_FILES = descriptions-external/ambir.desc \
193  descriptions-external/brother2.desc \
194  descriptions-external/brother.desc \
195  descriptions-external/brother-mfc4600.desc \
196  descriptions-external/cs3200f.desc \
197  descriptions-external/epkowa.desc \
198  descriptions-external/geniusvp2.desc \
199  descriptions-external/hp3770.desc \
200  descriptions-external/hp8200.desc \
201  descriptions-external/hpaio.desc \
202  descriptions-external/hpoj.desc \
203  descriptions-external/kodak-twain.desc \
204  descriptions-external/kyocera.desc \
205  descriptions-external/lhii.desc \
206  descriptions-external/mustek_a3p1.desc \
207  descriptions-external/panamfs.desc \
208  descriptions-external/primascan.desc \
209  descriptions-external/primax.desc \
210  descriptions-external/samsung.desc \
211  descriptions-external/scangearmp2.desc \
212  descriptions-external/scanwit.desc \
213  descriptions-external/utsushi.desc \
214  descriptions-external/v4l2.desc \
215  descriptions-external/viceo.desc
216EXTRA_DIST += $(DESC_EXT_FILES) descriptions-external/template.desc
217
218install-data-local: install-beman5
219
220uninstall-local:
221	rm -rf $(DESTDIR)$(beman5dir)/sane-*.5
222
223html-man: $(MANPAGES)
224	@for page in $(MANPAGES); do \
225	  echo "translating $${page} to $${page}.html..."; \
226	  cat $${page} | $(MAN2HTML) > $${page}.html; \
227	done
228
229../tools/sane-desc:
230	cd ../tools ; $(MAKE) sane-desc
231
232sane-backends.html: $(DESC_FILES) ../tools/sane-desc
233	@../tools/sane-desc -m html-backends-split -s ${srcdir}/descriptions \
234	  -i "The following table summarizes the backends/drivers distributed \
235	  with $(PACKAGE)-$(VERSION), and the hardware or software they \
236	  support." -d 0 > sane-backends.html
237
238sane-backends-external.html: $(DESC_EXT_FILES) ../tools/sane-desc
239	@../tools/sane-desc -m html-backends-split \
240	  -s ${srcdir}/descriptions-external \
241	  -i "The following table summarizes the backends/drivers that \
242	  have not yet been included in the SANE distribution, and the \
243	  hardware or software they support." \
244	  -t "SANE: External Backends (Drivers)" -d 0 \
245	  > sane-backends-external.html
246
247sane-mfgs.html: $(DESC_FILES) ../tools/sane-desc
248	@../tools/sane-desc -m html-mfgs -s ${srcdir}/descriptions \
249	  -i "The following table summarizes the devices supported \
250	  by $(PACKAGE)-$(VERSION)." \
251	  -d 0 > sane-mfgs.html
252
253sane-mfgs-external.html: $(DESC_EXT_FILES) ../tools/sane-desc
254	@../tools/sane-desc -m html-mfgs -s ${srcdir}/descriptions-external \
255	  -i "The following table summarizes the devices that \
256	  are supported by external backends." \
257	  -t "SANE: Devices Supported by External Backends" -d 0 \
258	  > sane-mfgs-external.html
259
260descriptions.db: $(DESC_FILES) ../tools/sane-desc
261	@../tools/sane-desc -m ascii -s ${srcdir}/descriptions \
262	  > descriptions.db
263
264descriptions-external.db: $(DESC_EXT_FILES) ../tools/sane-desc
265	@../tools/sane-desc -m ascii -s ${srcdir}/descriptions-external \
266	  > descriptions-external.db
267
268html-pages: $(HTML_PAGES)
269html-local: html-pages html-man
270
271distclean-local:
272	rm -f $(MANPAGES)
273	rm -f sane-backends.html sane-backends-external.html
274	rm -f sane-mfgs.html sane-mfgs-external.html
275	rm -f doxygen-sanei.conf doxygen-genesys.conf
276	-rm -rf sane sanei-html
277	for manpage in $(MANPAGES) ; do \
278	  rm -f $${manpage}.html ; \
279	done
280