1SUBDIRS = include Test
2
3EXTRA_CPPFLAGS = -I$(srcdir)/include -Iinclude @CPPFLAGS@
4
5ACLOCAL_AMFLAGS = -I m4
6
7poly_src = $(srcdir)/applications
8poly_arith = $(srcdir)/source/arith
9
10CFILES= \
11	source/arith/errors.c \
12	source/kernel/errormsg.c \
13	source/kernel/vector.c \
14	source/kernel/matrix.c \
15	source/kernel/polyhedron.c \
16	source/kernel/polyparam.c \
17	source/kernel/param.c \
18	source/kernel/alpha.c \
19	source/ehrhart/ehrhart.c \
20	source/ehrhart/ext_ehrhart.c \
21	source/ehrhart/eval_ehrhart.c \
22	source/ehrhart/homogenization.c \
23	source/ehrhart/ranking.c \
24	source/kernel/matrix_addon.c \
25	source/kernel/matrix_permutations.c \
26	source/kernel/compress_parms.c \
27	source/kernel/SolveDio.c \
28	source/kernel/Lattice.c \
29	source/kernel/Matop.c \
30	source/kernel/NormalForms.c \
31	source/kernel/Zpolyhedron.c
32
33sources = $(CFILES) \
34	$(poly_arith)/assert.h \
35	$(poly_arith)/arithmetique.h \
36	$(poly_arith)/arithmetic_errors.h
37
38EXTRA_DIST = doc source/oldpolytest.c INSTALL COPYING
39
40lib_LTLIBRARIES = @polylibs@
41libpolylib32_la_LDFLAGS = -rpath $(libdir) -version-info @versioninfo@
42libpolylib32_la_SOURCES = $(sources)
43libpolylib32_la_CPPFLAGS = -DPOLYLIB_BITS=32 $(EXTRA_CPPFLAGS)
44libpolylib32_la_LIBADD = @LTLIBOBJS@
45libpolylib64_la_LDFLAGS = -rpath $(libdir) -version-info @versioninfo@
46libpolylib64_la_SOURCES = $(sources)
47libpolylib64_la_CPPFLAGS = -DPOLYLIB_BITS=64 $(EXTRA_CPPFLAGS)
48libpolylib64_la_LIBADD = @LTLIBOBJS@
49libpolylib128_la_LDFLAGS = -rpath $(libdir) -version-info @versioninfo@
50libpolylib128_la_SOURCES = $(sources)
51libpolylib128_la_CPPFLAGS = -DPOLYLIB_BITS=128  $(EXTRA_CPPFLAGS)
52libpolylib128_la_LIBADD = @LTLIBOBJS@
53libpolylibgmp_la_LDFLAGS = -rpath $(libdir) -version-info @versioninfo@
54libpolylibgmp_la_SOURCES = $(sources)
55libpolylibgmp_la_CPPFLAGS = -DGNUMP  $(EXTRA_CPPFLAGS)
56libpolylibgmp_la_LIBADD = @LTLIBOBJS@
57
58testlib_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
59example_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
60count_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
61c2p_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
62r2p_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
63findv_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
64disjoint_union_sep_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
65disjoint_union_adj_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
66ehrhart_quick_apx_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
67ehrhart_lower_bound_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
68ehrhart_upper_bound_CPPFLAGS = $(libpolylib@BITS@_la_CPPFLAGS)
69
70
71EXTRA_LTLIBRARIES = libpolylib32.la libpolylib64.la libpolylib128.la \
72		    libpolylibgmp.la
73
74# not using foreach GNU make extension
75no_inst_programs_32=Zpolytest32$(EXEEXT) polytest32$(EXEEXT) verif_ehrhart32$(EXEEXT) testCompressParms32$(EXEEXT)
76no_inst_programs_64=Zpolytest64$(EXEEXT) polytest64$(EXEEXT) verif_ehrhart64$(EXEEXT) testCompressParms64$(EXEEXT)
77no_inst_programs_gmp=Zpolytestgmp$(EXEEXT) polytestgmp$(EXEEXT) verif_ehrhartgmp$(EXEEXT) testCompressParmsgmp$(EXEEXT)
78
79noinst_PROGRAMS = \
80	testlib \
81	example \
82	count \
83	@multi_noinst_programs@
84
85multi_bin_programs_32=ehrhart_ranking32$(EXEEXT) ehrhart_union32$(EXEEXT) pp32$(EXEEXT) testehrhart32$(EXEEXT)
86multi_bin_programs_64=ehrhart_ranking64$(EXEEXT) ehrhart_union64$(EXEEXT) pp64$(EXEEXT) testehrhart64$(EXEEXT)
87multi_bin_programs_gmp=ehrhart_rankinggmp$(EXEEXT) ehrhart_uniongmp$(EXEEXT) ppgmp$(EXEEXT) testehrhartgmp$(EXEEXT)
88
89bin_PROGRAMS = \
90	c2p \
91	r2p \
92	findv \
93	disjoint_union_sep \
94	disjoint_union_adj \
95	ehrhart_quick_apx \
96	ehrhart_upper_bound \
97	ehrhart_lower_bound \
98	@multi_bin_programs@
99
100EXTRA_PROGRAMS = $(no_inst_programs_32) $(no_inst_programs_64) $(no_inst_programs_gmp) \
101				 $(multi_bin_programs_32) $(multi_bin_programs_64) $(multi_bin_programs_gmp)
102
103
104
105LDADD = @polylib@
106c2p_SOURCES = $(poly_src)/c2p.c
107c2p_DEPENDENCIES = @polylib@
108r2p_SOURCES = $(poly_src)/r2p.c
109r2p_DEPENDENCIES = @polylib@
110findv_SOURCES = $(poly_src)/findv.c
111findv_DEPENDENCIES = @polylib@
112disjoint_union_sep_SOURCES = $(poly_src)/disjoint_union_sep.c
113disjoint_union_sep_DEPENDENCIES = @polylib@
114disjoint_union_adj_SOURCES = $(poly_src)/disjoint_union_adj.c
115disjoint_union_adj_DEPENDENCIES = @polylib@
116ehrhart_quick_apx_SOURCES = $(poly_src)/ehrhart_quick_apx.c
117ehrhart_quick_apx_DEPENDENCIES = @polylib@
118ehrhart_upper_bound_SOURCES =  $(poly_src)/ehrhart_upper_bound.c
119ehrhart_upper_bound_DEPENDENCIES = @polylib@
120ehrhart_lower_bound_SOURCES =  $(poly_src)/ehrhart_lower_bound.c
121ehrhart_lower_bound_DEPENDENCIES = @polylib@
122testlib_SOURCES = $(poly_src)/testlib.c
123testlib_DEPENDENCIES = @polylib@
124example_SOURCES = $(poly_src)/example.c
125example_DEPENDENCIES = @polylib@
126count_SOURCES = source/count.c
127count_DEPENDENCIES = @polylib@
128Zpolytest32_CPPFLAGS = $(libpolylib32_la_CPPFLAGS)
129Zpolytest32_SOURCES = $(poly_src)/Zpolytest.c
130Zpolytest32_LDADD = libpolylib32.la
131Zpolytest64_CPPFLAGS = $(libpolylib64_la_CPPFLAGS)
132Zpolytest64_SOURCES = $(poly_src)/Zpolytest.c
133Zpolytest64_LDADD = libpolylib64.la
134Zpolytestgmp_CPPFLAGS = $(libpolylibgmp_la_CPPFLAGS)
135Zpolytestgmp_SOURCES = $(poly_src)/Zpolytest.c
136Zpolytestgmp_LDADD = libpolylibgmp.la
137ehrhart_ranking32_CPPFLAGS = $(libpolylib32_la_CPPFLAGS)
138ehrhart_ranking32_SOURCES = $(poly_src)/ehrhart_ranking.c
139ehrhart_ranking32_LDADD = libpolylib32.la
140ehrhart_ranking64_CPPFLAGS = $(libpolylib64_la_CPPFLAGS)
141ehrhart_ranking64_SOURCES = $(poly_src)/ehrhart_ranking.c
142ehrhart_ranking64_LDADD = libpolylib64.la
143ehrhart_rankinggmp_CPPFLAGS = $(libpolylibgmp_la_CPPFLAGS)
144ehrhart_rankinggmp_SOURCES = $(poly_src)/ehrhart_ranking.c
145ehrhart_rankinggmp_LDADD = libpolylibgmp.la
146ehrhart_union32_CPPFLAGS = $(libpolylib32_la_CPPFLAGS)
147ehrhart_union32_SOURCES = $(poly_src)/ehrhart_union.c
148ehrhart_union32_LDADD = libpolylib32.la
149ehrhart_union64_CPPFLAGS = $(libpolylib64_la_CPPFLAGS)
150ehrhart_union64_SOURCES = $(poly_src)/ehrhart_union.c
151ehrhart_union64_LDADD = libpolylib64.la
152ehrhart_uniongmp_CPPFLAGS = $(libpolylibgmp_la_CPPFLAGS)
153ehrhart_uniongmp_SOURCES = $(poly_src)/ehrhart_union.c
154ehrhart_uniongmp_LDADD = libpolylibgmp.la
155polytest32_CPPFLAGS = $(libpolylib32_la_CPPFLAGS)
156polytest32_SOURCES = $(poly_src)/polytest.c
157polytest32_LDADD = libpolylib32.la
158polytest64_CPPFLAGS = $(libpolylib64_la_CPPFLAGS)
159polytest64_SOURCES = $(poly_src)/polytest.c
160polytest64_LDADD = libpolylib64.la
161polytestgmp_CPPFLAGS = $(libpolylibgmp_la_CPPFLAGS)
162polytestgmp_SOURCES = $(poly_src)/polytest.c
163polytestgmp_LDADD = libpolylibgmp.la
164pp32_CPPFLAGS = $(libpolylib32_la_CPPFLAGS)
165pp32_SOURCES = $(poly_src)/pp.c
166pp32_LDADD = libpolylib32.la
167pp64_CPPFLAGS = $(libpolylib64_la_CPPFLAGS)
168pp64_SOURCES = $(poly_src)/pp.c
169pp64_LDADD = libpolylib64.la
170ppgmp_CPPFLAGS = $(libpolylibgmp_la_CPPFLAGS)
171ppgmp_SOURCES = $(poly_src)/pp.c
172ppgmp_LDADD = libpolylibgmp.la
173testehrhart32_CPPFLAGS = $(libpolylib32_la_CPPFLAGS)
174testehrhart32_SOURCES = $(poly_src)/testehrhart.c
175testehrhart32_LDADD = libpolylib32.la
176testehrhart64_CPPFLAGS = $(libpolylib64_la_CPPFLAGS)
177testehrhart64_SOURCES = $(poly_src)/testehrhart.c
178testehrhart64_LDADD = libpolylib64.la
179testehrhartgmp_CPPFLAGS = $(libpolylibgmp_la_CPPFLAGS)
180testehrhartgmp_SOURCES = $(poly_src)/testehrhart.c
181testehrhartgmp_LDADD = libpolylibgmp.la
182testCompressParms32_CPPFLAGS = $(libpolylib32_la_CPPFLAGS)
183testCompressParms32_SOURCES = $(poly_src)/testCompressParms.c
184testCompressParms32_LDADD = libpolylib32.la
185testCompressParms64_CPPFLAGS = $(libpolylib64_la_CPPFLAGS)
186testCompressParms64_SOURCES = $(poly_src)/testCompressParms.c
187testCompressParms64_LDADD = libpolylib64.la
188testCompressParmsgmp_CPPFLAGS = $(libpolylibgmp_la_CPPFLAGS)
189testCompressParmsgmp_SOURCES = $(poly_src)/testCompressParms.c
190testCompressParmsgmp_LDADD = libpolylibgmp.la
191verif_ehrhart32_CPPFLAGS = $(libpolylib32_la_CPPFLAGS)
192verif_ehrhart32_SOURCES = $(poly_src)/verif_ehrhart.c
193verif_ehrhart32_LDADD = libpolylib32.la
194verif_ehrhart64_CPPFLAGS = $(libpolylib64_la_CPPFLAGS)
195verif_ehrhart64_SOURCES = $(poly_src)/verif_ehrhart.c
196verif_ehrhart64_LDADD = libpolylib64.la
197verif_ehrhartgmp_CPPFLAGS = $(libpolylibgmp_la_CPPFLAGS)
198verif_ehrhartgmp_SOURCES = $(poly_src)/verif_ehrhart.c
199verif_ehrhartgmp_LDADD = libpolylibgmp.la
200
201check: tests
202
203tests: all
204	(cd Test; $(MAKE) tests)
205
206longtest: all
207	(cd Test; $(MAKE) long_tests)
208
209# Make the 'javadoc' style documentation
210document:
211	-mkdir doc
212	$(DOXYGEN) polylib.doxygen
213
214dist-hook: document
215	rm -rf `find $(distdir)/doc -name CVS`
216
217clean-local:
218	rm -rf doc
219distclean-local:
220	rm -f polylib*.pc polylib*-uninstalled.pc polylib*-uninstalled.sh polylib*.pc.in
221
222install-data-local:
223	@test -z "$(pkgconfig_libdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfig_libdir)"
224	$(INSTALL_DATA) $(pkgconfig_libfile) "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)"
225
226uninstall-local:
227	rm -f "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)"
228