1##	=============================================================
2##
3##	Automake definitions for the LiDIA LA package's library stuff
4##
5##	=============================================================
6
7AUTOMAKE_OPTIONS = 1.5 nostdinc
8
9ETAGS_ARGS = -C -l c++
10
11include $(top_srcdir)/Paths.def
12
13
14##	-------------
15##	INCLUDE PATHS
16##	-------------
17
18AM_CPPFLAGS = \
19	-I$(LIDIA_CONFIG_INCLUDEDIR) \
20	-I$(LIDIA_BASE_INCLUDEDIR) -I$(srcdir)/$(LIDIA_BASE_INCLUDEDIR) \
21	-I$(LIDIA_FF_INCLUDEDIR) -I$(srcdir)/$(LIDIA_FF_INCLUDEDIR) \
22	-I$(LIDIA_LA_INCLUDEDIR) -I$(srcdir)/$(LIDIA_LA_INCLUDEDIR)
23
24
25##	---------
26##	LIBRARIES
27##	---------
28
29noinst_LTLIBRARIES = libLiDIA-LA.la
30
31# We don't want to have $(LIBS) in the convenience library.
32# FIXME: This is not safe against command-line overrides.
33LIBS =
34
35
36##	---------------
37##	LIBRARY SOURCES
38##	---------------
39
40libLiDIA_LA_la_SOURCES = \
41	$(LIDIA_LA_SRCDIR)/bigfloat_matrix.cc \
42	$(LIDIA_LA_SRCDIR)/bigint_matrix.cc \
43	$(LIDIA_LA_SRCDIR)/bigmod_matrix.cc \
44	$(LIDIA_LA_SRCDIR)/crt_and_prime_handling.cc \
45	$(LIDIA_LA_SRCDIR)/file_adjoint.cc \
46	$(LIDIA_LA_SRCDIR)/hnf_instant.cc \
47	$(LIDIA_LA_SRCDIR)/instant_bigint_matrix.cc \
48	$(LIDIA_LA_SRCDIR)/instantiate/bm_bigfloat_dense.cc \
49	$(LIDIA_LA_SRCDIR)/instantiate/bm_bigfloat_normal.cc \
50	$(LIDIA_LA_SRCDIR)/instantiate/bm_bigfloat_sparse.cc \
51	$(LIDIA_LA_SRCDIR)/instantiate/bm_bigfloat_sub.cc \
52	$(LIDIA_LA_SRCDIR)/instantiate/bm_bigrational_dense.cc \
53	$(LIDIA_LA_SRCDIR)/instantiate/bm_bigrational_normal.cc \
54	$(LIDIA_LA_SRCDIR)/instantiate/bm_bigrational_sparse.cc \
55	$(LIDIA_LA_SRCDIR)/instantiate/bm_bigrational_sub.cc \
56	$(LIDIA_LA_SRCDIR)/instantiate/bv_bigfloat_int.cc \
57	$(LIDIA_LA_SRCDIR)/instantiate/bv_bigint_matrix.cc \
58	$(LIDIA_LA_SRCDIR)/instantiate/bv_bpp_matrix_bigint.cc \
59	$(LIDIA_LA_SRCDIR)/instantiate/bv_bpp_matrix_long.cc \
60	$(LIDIA_LA_SRCDIR)/instantiate/fm_bigfloat_dense.cc \
61	$(LIDIA_LA_SRCDIR)/instantiate/fm_bigfloat_normal.cc \
62	$(LIDIA_LA_SRCDIR)/instantiate/fm_bigfloat_sparse.cc \
63	$(LIDIA_LA_SRCDIR)/instantiate/fm_bigfloat_sub.cc \
64	$(LIDIA_LA_SRCDIR)/instantiate/fm_bigrational_dense.cc \
65	$(LIDIA_LA_SRCDIR)/instantiate/fm_bigrational_normal.cc \
66	$(LIDIA_LA_SRCDIR)/instantiate/fm_bigrational_sparse.cc \
67	$(LIDIA_LA_SRCDIR)/instantiate/fm_bigrational_sub.cc \
68	$(LIDIA_LA_SRCDIR)/instantiate/fm_double_dense.cc \
69	$(LIDIA_LA_SRCDIR)/instantiate/fm_double_normal.cc \
70	$(LIDIA_LA_SRCDIR)/instantiate/fm_double_sparse.cc \
71	$(LIDIA_LA_SRCDIR)/instantiate/fm_double_sub.cc \
72	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigfloat_dense.cc \
73	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigfloat_normal.cc \
74	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigfloat_sparse.cc \
75	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigfloat_sub.cc \
76	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigint_dense.cc \
77	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigint_normal.cc \
78	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigint_sparse.cc \
79	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigint_sub.cc \
80	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigrational_dense.cc \
81	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigrational_normal.cc \
82	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigrational_sparse.cc \
83	$(LIDIA_LA_SRCDIR)/instantiate/rm_bigrational_sub.cc \
84	$(LIDIA_LA_SRCDIR)/instantiate/rm_double_dense.cc \
85	$(LIDIA_LA_SRCDIR)/instantiate/rm_double_normal.cc \
86	$(LIDIA_LA_SRCDIR)/instantiate/rm_double_sparse.cc \
87	$(LIDIA_LA_SRCDIR)/instantiate/rm_double_sub.cc \
88	$(LIDIA_LA_SRCDIR)/instantiate/rm_int_dense.cc \
89	$(LIDIA_LA_SRCDIR)/instantiate/rm_int_normal.cc \
90	$(LIDIA_LA_SRCDIR)/instantiate/rm_int_sparse.cc \
91	$(LIDIA_LA_SRCDIR)/instantiate/rm_int_sub.cc \
92	$(LIDIA_LA_SRCDIR)/instantiate/rm_long_dense.cc \
93	$(LIDIA_LA_SRCDIR)/instantiate/rm_long_normal.cc \
94	$(LIDIA_LA_SRCDIR)/instantiate/rm_long_sparse.cc \
95	$(LIDIA_LA_SRCDIR)/instantiate/rm_long_sub.cc \
96	$(LIDIA_LA_SRCDIR)/m_multiple_gcd.cc \
97	$(LIDIA_LA_SRCDIR)/modular_instant.cc \
98	$(LIDIA_LA_SRCDIR)/trans_matrix.cc
99
100
101##	-------
102##	HEADERS
103##	-------
104
105matrixincludedir = $(pkgincludedir)/matrix
106
107matrixinclude_HEADERS = \
108	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/bigint_matrix_algorithms.cc \
109	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/bigint_matrix_algorithms.h \
110	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/crt_and_prime_handling.h \
111	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/dense_bigint_matrix_kernel.cc \
112	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/dense_bigint_matrix_kernel.h \
113	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/dense_bigint_matrix_modules.cc \
114	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/dense_bigint_matrix_modules.h \
115	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/dense_fp_matrix_kernel.cc \
116	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/dense_fp_matrix_kernel.h \
117	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/fp_matrix_algorithms.cc \
118	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/fp_matrix_algorithms.h \
119	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/hnf_conf.cc \
120	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/hnf_conf.h \
121	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/hnf_kernel.cc \
122	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/hnf_kernel.h \
123	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/modular_arithmetic.cc \
124	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/modular_arithmetic.h \
125	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/modular_functions.inl \
126	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/normalize_kernel.cc \
127	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/normalize_kernel.h \
128	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/sparse_bigint_matrix_kernel.cc \
129	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/sparse_bigint_matrix_kernel.h \
130	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/sparse_bigint_matrix_modules.cc \
131	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/sparse_bigint_matrix_modules.h \
132	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/sparse_fp_matrix_algorithms.cc \
133	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/sparse_fp_matrix_algorithms.h \
134	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/sparse_fp_matrix_kernel.cc \
135	$(LIDIA_LA_PKGINCLUDEDIR)/matrix/sparse_fp_matrix_kernel.h
136
137pkginclude_HEADERS = \
138	$(LIDIA_LA_PKGINCLUDEDIR)/base_power_product.cc \
139	$(LIDIA_LA_PKGINCLUDEDIR)/base_power_product.h \
140	$(LIDIA_LA_PKGINCLUDEDIR)/base_ppair.cc \
141	$(LIDIA_LA_PKGINCLUDEDIR)/base_ppair.h \
142	$(LIDIA_LA_PKGINCLUDEDIR)/bigfloat_matrix.h \
143	$(LIDIA_LA_PKGINCLUDEDIR)/bigint_matrix.h \
144	$(LIDIA_LA_PKGINCLUDEDIR)/bigmod_matrix.h \
145	$(LIDIA_LA_PKGINCLUDEDIR)/dense_bigint_matrix.h \
146	$(LIDIA_LA_PKGINCLUDEDIR)/dense_matrix.h \
147	$(LIDIA_LA_PKGINCLUDEDIR)/long_matrix.h \
148	$(LIDIA_LA_PKGINCLUDEDIR)/math_matrix.h \
149	$(LIDIA_LA_PKGINCLUDEDIR)/matrix.h \
150	$(LIDIA_LA_PKGINCLUDEDIR)/matrix_intern.h \
151	$(LIDIA_LA_PKGINCLUDEDIR)/sparse_matrix.h
152
153
154##	----
155##	DATA
156##	----
157
158dist_pkgdata_DATA = \
159	$(LIDIA_PKGDATADIR)/LIDIA_PRIMES
160
161
162##	----------------
163##	ADDITIONAL STUFF
164##	----------------
165
166EXTRA_DIST =
167
168
169##	-------------
170##	SPECIAL RULES
171##	-------------
172
173# Remove installation subdirectories after uninstalling, unless left non-empty.
174uninstall-hook:
175	rmdir	$(DESTDIR)$(matrixincludedir) \
176		$(DESTDIR)$(pkgincludedir) \
177		$(DESTDIR)$(pkgdatadir) \
178		2>/dev/null; :
179
180# Delete half-made targets when their commands fail
181.DELETE_ON_ERROR:
182
183