1##	================================================
2##
3##	Automake definitions for the LiDIA documentation
4##
5##	================================================
6
7AUTOMAKE_OPTIONS = 1.5 nostdinc
8
9## Because Automake cannot automatically handle LaTeX sources yet,
10## we have to provide the compilation rules explicitly.
11## Nevertheless, Automake generates the usual maintainer rules, like
12## those used by "make dist".
13
14MOSTLYCLEANFILES = \
15	*.aux *.toc *.lof *.lot *.bbl \
16	*.log *.[bdi]lg *.idx *.ind *.gl[os]
17
18CLEANFILES = \
19	LiDIA.dvi	LiDIA.ps	LiDIA.pdf	LiDIA.dsc \
20	LiDIA.dvi.gz	LiDIA.ps.gz	LiDIA.pdf.gz	LiDIA.dsc.gz \
21	LiDIA.dvi.bz2	LiDIA.ps.bz2	LiDIA.pdf.bz2	LiDIA.dsc.bz2
22
23
24##	-------------
25##	WHAT TO BUILD
26##	-------------
27
28noinst_DATA = LiDIA.dvi
29
30LiDIA_dvi_TEXSRCS = \
31	LiDIA.tex \
32		graphics.cfg \
33		color.cfg \
34		LiDIA.def \
35		copyright.tex \
36		overview.tex \
37			lidia_model.tex \
38		use.tex \
39		LiDIA_base.tex \
40			bigint.tex \
41			udigit_mod.tex \
42			bigmod.tex \
43			multi_bigmod.tex \
44			bigrational.tex \
45			xdouble.tex \
46			bigfloat.tex \
47			xbigfloat.tex \
48			bigcomplex.tex \
49			base_vector.tex \
50			math_vector.tex \
51			sort_vector.tex \
52			file_vector.tex \
53			lidia_vector.tex \
54			hash_table.tex \
55			indexed_hash_table.tex \
56			base_matrix.tex \
57			math_matrix.tex \
58			matrix_GL2Z.tex \
59			polynomial.tex \
60			big_polynomial.tex \
61			fact.tex \
62			single_factor.tex \
63			factorization.tex \
64			sf_bigint.tex \
65			modular_functions.tex \
66			nmbrthry_functions.tex \
67			crt.tex \
68			prime_list.tex \
69			prime_proof.tex \
70			power_functions.tex \
71			timer.tex \
72			handlers.tex \
73			basic_error.tex \
74			generic_error.tex \
75			cast_error.tex \
76			precondition_error.tex \
77			index_out_of_bounds_error.tex \
78			gmm.tex \
79			random_generator.tex \
80			lidia_signal.tex \
81		LiDIA_FF.tex \
82			gf2n.tex \
83			galois_field.tex \
84			galois_field_iterator.tex \
85			gf_element.tex \
86			gf_polynomial.tex \
87			Fp_polynomial.tex \
88			Fp_poly_modulus.tex \
89			gf_poly_modulus.tex \
90			Fp_rational_function.tex \
91			power_series.tex \
92			sf_Fp_polynomial.tex \
93			sf_gf_polynomial.tex \
94			fft_prime.tex \
95		LiDIA_LA.tex \
96			bigint_matrix.tex \
97			bigmod_matrix.tex \
98		LiDIA_LT.tex \
99			bigint_lattice.tex \
100			bigfloat_lattice.tex \
101		LiDIA_NF.tex \
102			quadratic_form.tex \
103			quadratic_order.tex \
104			qi_class.tex \
105			qi_class_real.tex \
106			quadratic_ideal.tex \
107			quadratic_number_standard.tex \
108			quadratic_number_power_product_basis.tex \
109			quadratic_number_power_product.tex \
110			field.tex \
111			order.tex \
112			alg_number.tex \
113			module.tex \
114			prime_ideal.tex \
115			sf_alg_ideal.tex \
116		LiDIA_EC.tex \
117			elliptic_curve_flags.tex \
118			elliptic_curve.tex \
119			point.tex \
120			elliptic_curve_bigint.tex \
121			point_bigint.tex \
122			curve_isomorphism.tex \
123			quartic.tex \
124			kodaira_code.tex \
125		LiDIA_ECO.tex \
126			eco_prime.tex \
127			meq_prime.tex \
128			trace_mod.tex \
129			trace_list.tex \
130		LiDIA_GEC.tex \
131			gec.tex \
132			gec_complex_multiplication.tex
133
134
135
136##	-----------
137##	EXTRA STUFF
138##	-----------
139
140EXTRA_DIST = \
141	${LiDIA_dvi_TEXSRCS} \
142	LiDIA.bib \
143	LiDIA.ist
144
145# Unused CVS stuff
146extra_stuff = \
147	FIG/lidia_model.fig \
148	.latex2html-init \
149	doc2html.awk \
150	filt.c \
151	make_lidia_index \
152	make_lidia_index.cmd \
153	man_pages.tex \
154	unused/bi_bf_lattice_basis.tex \
155	unused/bi_bf_lattice_gensys.tex \
156	unused/bigfloat_int.tex \
157	unused/double_int.tex \
158	unused/lattice_basis.tex \
159	unused/lattice_gensys.tex \
160	unused/use_vecmat.tex
161
162
163##	-------------
164##	SPECIAL RULES
165##	-------------
166
167# Convenience targets
168
169.PHONY: dvi pdf dsc ps psgz psbz2
170
171dvi: LiDIA.dvi
172pdf: LiDIA.pdf
173dsc: LiDIA.dsc
174ps: LiDIA.ps
175psgz: LiDIA.ps.gz
176psbz2: LiDIA.ps.bz2
177
178
179# Environment settings, Programs, and Flags
180TEX_ENV = TEXINPUTS="${srcdir}${PATH_SEPARATOR}$$TEXINPUTS"
181BIBTEX_ENV = BIBINPUTS="${srcdir}"
182MAKEINDEX_ENV = INDEXSTYLE="${srcdir}"
183DVIPS_ENV = TEXINPUTS="${srcdir}"
184
185MAKEINDEX_OPTIONS = -s LiDIA.ist
186DVIPS_OPTIONS = -ta4
187
188# GNU texi2dvi supports LaTeX/bibtex/makeindex loops and adds the source
189# dir to the search paths (except for BibTeX), thus is very practical here.
190#
191# don't capitalize LaTeX to work around Debian bug 472758
192LATEX2DVI = $(TEXI2DVI) -l latex
193LATEX2PDF = ${LATEX2DVI} -p
194
195LATEX2DVI_ENV = \
196	TEX="$(LATEX)" PDFTEX="$(PDFLATEX)" $(TEX_ENV) \
197	BIBTEX="$(BIBTEX)" $(BIBTEX_ENV) \
198	MAKEINDEX="$(MAKEINDEX) $(MAKEINDEX_OPTIONS)" $(MAKEINDEX_ENV)
199LATEX2PDF_ENV = ${LATEX2DVI_ENV}
200
201# What to put into the environment's GZIP/BZIP2 vars when using gzip/bzip2
202GZIP_ENV = -9
203BZIP_ENV =
204BZIP2_ENV = -9
205
206## Build rules
207
208# For compatibility, $< is used in implicit rules only,
209# and GNU Make's implicit pattern rules (%) are used only for
210# targets that usually do not need to be (re)made.
211# Whenever possible, specifications of implicit rules use the
212# less flexible but more portable suffix form.
213
214SUFFIXES = .tex .dvi .pdf .ps .dsc
215
216.tex.dvi:
217	${LATEX2DVI_ENV} ${LATEX2DVI} $<
218
219.tex.pdf:
220	${LATEX2PDF_ENV} ${LATEX2PDF} $<
221
222.dvi.ps:
223	${DVIPS_ENV} ${DVIPS} ${DVIPS_OPTIONS} -o $@ $<
224
225.pdf.dsc:
226	pdf2dsc $< $@
227
228LiDIA.dvi LiDIA.pdf: ${LiDIA_dvi_TEXSRCS}
229
230# Pattern rules for producing compressed targets.
231# The given rules preserve the uncompressed file, thus unnecessary
232# "make" invocations do not rebuild anything.
233%.gz: %
234	GZIP='$(GZIP_ENV)' gzip -c $< >$@
235
236%.bz2: %
237	BZIP='$(BZIP_ENV)' BZIP2='$(BZIP2_ENV)' bzip2 -c $< >$@
238
239# The explicit compression rules for `LiDIA.ps', for non-GNU Makes
240LiDIA.ps.gz: LiDIA.ps
241	GZIP='$(GZIP_ENV)' gzip -c LiDIA.ps >$@
242
243LiDIA.ps.bz2: LiDIA.ps
244	BZIP='$(BZIP_ENV)' BZIP2='$(BZIP2_ENV)' bzip2 -c LiDIA.ps >$@
245
246# This directory is not specific to a certain sub-package, therefore all its
247# stuff goes into the base (or full) distribution and is removed from other
248# distributions.
249dist-hook:
250	case ' $(PKG_DIRS) ' in \
251	  *' base '*) ;; \
252	  *) rm -rf $(distdir) ;; \
253	esac
254
255# Delete half-made targets when their commands fail
256.DELETE_ON_ERROR:
257
258