use test scripts for performing tests
[barvinok.git] / Makefile.am
blob45c2ef014e35b69b023385803efb360f22b6f380
1 if BUNDLED_POLYLIB
2     MAYBE_POLYLIB = polylib
3     POLYLIB_LA = $(top_builddir)/polylib/libpolylibgmp.la
4 endif
5 if BUNDLED_ISL
6     MAYBE_ISL = isl
7     ISL_LA = $(top_builddir)/isl/libisl.la
8     LOCAL_ISL_LA = isl/libisl.la
9 endif
10 if BUILD_ISL
11     ISL_LA = $(ISL_BUILDDIR)/libisl.la
12 endif
13 if BUNDLED_PET
14     MAYBE_PET = pet
15     PET_LA = $(top_builddir)/pet/libpet.la
16 endif
17 if BUILD_PET
18     PET_LA = $(PET_BUILDDIR)/libpet.la
19 endif
20 if USE_ZSOLVE
21     MAYBE_ZSOLVE = zsolve
22 endif
23 SUBDIRS = $(MAYBE_POLYLIB) $(MAYBE_ISL) $(MAYBE_PET) \
24                 $(MAYBE_ZSOLVE) . doc
25 DIST_SUBDIRS = $(MAYBE_POLYLIB) $(MAYBE_ISL) $(MAYBE_PET) \
26                 zsolve doc
28 FORCE:
29 polylib/libpolylibgmp.la: FORCE
30         cd polylib; $(MAKE) $(AM_MAKEFLAGS) libpolylibgmp.la
31 isl/libisl.la: FORCE
32         cd isl; $(MAKE) $(AM_MAKEFLAGS) libisl.la
33 pet/libpet.la: $(LOCAL_ISL_LA) FORCE
34         cd pet; $(MAKE) $(AM_MAKEFLAGS) libpet.la
35 zsolve/libzsolve.la: FORCE
36         cd zsolve; $(MAKE) $(AM_MAKEFLAGS) libzsolve.la
38 AM_CPPFLAGS = @POLYLIB_CPPFLAGS@ \
39               @ISL_CFLAGS@ @NTL_CPPFLAGS@
40 AM_LDFLAGS = @BV_LDFLAGS@ @POLYLIB_LDFLAGS@ @NTL_LDFLAGS@
42 LIB_ISL = $(ISL_LA) @ISL_LIBS@
43 LIB_PET = $(PET_LA) @PET_LIBS@
44 LIB_POLYLIB = $(POLYLIB_LA) @POLYLIB_LIBS@
46 lib_LTLIBRARIES = libbarvinok.la
47 bin_PROGRAMS = barvinok_count barvinok_enumerate barvinok_enumerate_e \
48                   barvinok_ehrhart iscc
49 noinst_PROGRAMS = test testlib randomtest \
50                   barvinok_union polytope_volume test_approx \
51                   barvinok_summate \
52                   4coins lexmin \
53                   @bv_cone_hilbert_basis@ cone_integer_hull \
54                   polyhedron_integer_hull vector_partition_chambers \
55                   semigroup_holes \
56                   barvinok_bound test_bound
57 EXTRA_PROGRAMS = cone_hilbert_basis
58 pkginclude_HEADERS = \
59     barvinok/NTL_QQ.h \
60     barvinok/isl.h \
61     barvinok/barvinok.h \
62     barvinok/util.h \
63     barvinok/evalue.h \
64     barvinok/genfun.h \
65     barvinok/options.h \
66     barvinok/polylib.h \
67     barvinok/sample.h \
68     barvinok/basis_reduction.h
69 nodist_pkginclude_HEADERS = \
70     barvinok/NTL.h \
71     barvinok/set.h
72 LINK = $(CXXLINK)
74 if HAVE_CDDLIB
75     BR_CDD = basis_reduction_cdd.cc initcdd.cc
76     POLYSIGN_CDD = polysign_cddf.cc polysign_cdd.cc
77 endif
78 if HAVE_GLPK
79     BR_GLPK = basis_reduction_glpk.c
80     POLYSIGN_GLPK = polysign_glpk.c
81 endif
82 if HAVE_TOPCOM
83     TOPCOM = topcom.c topcom.h
84 endif
85 if USE_ZSOLVE
86     HILBERT_C = hilbert.c
87 endif
88 libbarvinok_la_SOURCES = \
89     barvinok/evalue.h \
90     barvinok/genfun.h \
91     barvinok/util.h \
92     barvinok/barvinok.h \
93     NTL_QQ.cc \
94     basis_reduction.c \
95     evalue.c \
96     genfun.cc \
97     util.c \
98     version.c \
99     bernoulli.c \
100     bernoulli.h \
101     bfcounter.cc \
102     bfcounter.h \
103     binomial.c \
104     binomial.h \
105     conversion.cc \
106     conversion.h \
107     counter.cc \
108     counter.h \
109     decomposer.cc \
110     decomposer.h \
111     dpoly.cc \
112     dpoly.h \
113     euler.cc \
114     euler.h \
115     evalue_isl.c \
116     genfun_constructor.cc \
117     genfun_constructor.h \
118     $(HILBERT_C) \
119     hilbert.h \
120     hull.c \
121     hull.h \
122     ilp.c \
123     ilp.h \
124     isl_aff_polylib.c \
125     isl_aff_polylib.h \
126     isl_map_polylib.c \
127     isl_map_polylib.h \
128     isl_set_polylib.h \
129     isl_param_util.c \
130     isl_param_util.h \
131     lattice_point.cc \
132     lattice_point.h \
133     lattice_width.c \
134     lattice_width.h \
135     laurent.cc \
136     laurent.h \
137     laurent_old.cc \
138     laurent_old.h \
139     normalization.c \
140     normalization.h \
141     options.c \
142     param_polynomial.cc \
143     param_polynomial.h \
144     param_util.c \
145     param_util.h \
146     $(POLYSIGN_CDD) \
147     $(POLYSIGN_GLPK) \
148     polysign.c \
149     polysign_isl.c \
150     polysign_polylib.c \
151     polysign.h \
152     power.h \
153     reduce_domain.c \
154     reduce_domain.h \
155     reducer.cc \
156     reducer.h \
157     remove_equalities.h \
158     remove_equalities.c \
159     sample.c \
160     scale.c \
161     scale.h \
162     scarf.cc \
163     section_array.h \
164     series.cc \
165     $(TOPCOM) \
166     summate.c \
167     summate.h \
168     vertex_cone.cc \
169     vertex_cone.h \
170     volume.c \
171     volume.h \
172     mat_util.cc \
173     mat_util.h \
174     matrix_read.cc \
175     matrix_read.h \
176     barvinok.cc \
177     barvinok_e.cc \
178     $(BR_CDD) \
179     $(BR_GLPK)
180 EXTRA_libbarvinok_la_SOURCES = \
181     basis_reduction_cdd.cc \
182     basis_reduction_glpk.c \
183     hilbert.c \
184     polysign_cddf.cc \
185     polysign_cdd.cc \
186     polysign.c \
187     initcdd.cc \
188     initcdd.h \
189     topcom.c \
190     topcom.h
191 if USE_ZSOLVE
192     ZSOLVE_LA = zsolve/libzsolve.la
193 endif
194 libbarvinok_la_LIBADD = @LTLIBOBJS@ $(LIB_ISL) \
195                              $(LIB_POLYLIB) $(ZSOLVE_LA)
196 libbarvinok_la_LDFLAGS = @BV_LIB_LDFLAGS@ -version-info @versioninfo@ \
197                                 $(AM_LDFLAGS)
198 LDADD = libbarvinok.la $(LIB_ISL) $(LIB_POLYLIB)
200 test_SOURCES = \
201         test.c
202 testlib_SOURCES = \
203         evalue_read.c \
204         evalue_read.h \
205         testlib.cc
206 barvinok_count_SOURCES = barvinok_count.c
207 barvinok_ehrhart_SOURCES = \
208         barvinok_ehrhart_options.c \
209         barvinok_ehrhart_options.h \
210         barvinok_ehrhart.cc \
211         evalue_convert_options.c \
212         evalue_convert.cc \
213         evalue_convert.h \
214         $(FDSTREAM)
215 barvinok_union_SOURCES = \
216         barvinok_union_options.c \
217         barvinok_union_options.h \
218         barvinok_union.cc
219 if USE_FDSTREAM
220 FDSTREAM = fdstream.cc fdstream.h
221 endif
222 barvinok_enumerate_SOURCES = \
223         barvinok_enumerate_options.c \
224         barvinok_enumerate_options.h \
225         barvinok_enumerate.cc \
226         evalue_convert_options.c \
227         evalue_convert.cc \
228         evalue_convert.h \
229         $(FDSTREAM) \
230         skewed_genfun.cc \
231         skewed_genfun.h \
232         verify.h \
233         verify.c \
234         verify_series.h \
235         verify_series.cc
236 EXTRA_barvinok_enumerate_SOURCES = fdstream.cc fdstream.h
237 barvinok_enumerate_e_SOURCES = \
238         barvinok_enumerate_e_options.c \
239         barvinok_enumerate_e_options.h \
240         barvinok_enumerate_e.cc \
241         evalue_convert_options.c \
242         evalue_convert.cc \
243         evalue_convert.h \
244         $(FDSTREAM) \
245         skewed_genfun.cc \
246         skewed_genfun.h \
247         verify.h \
248         verify.c \
249         verif_ehrhart.h \
250         verif_ehrhart.c \
251         verify_series.h \
252         verify_series.cc
253 EXTRA_barvinok_enumerate_e_SOURCES = fdstream.cc fdstream.h
254 barvinok_bound_SOURCES = \
255         bound.c \
256         verify.h \
257         verify.c
258 barvinok_summate_SOURCES = \
259         barvinok_summate.c \
260         verify.h \
261         verify.c
262 4coins_SOURCES = 4coins.cc
263 semigroup_holes_SOURCES = semigroup_holes.cc
264 lexmin_SOURCES = \
265         lexmin_options.c \
266         lexmin.h \
267         lexmin.cc \
268         edomain.cc \
269         edomain.h \
270         evalue_util.cc \
271         evalue_util.h \
272         verify.h \
273         verify.c
274 test_approx_SOURCES = \
275         test_approx.c \
276         verify.h \
277         verify.c
278 test_bound_SOURCES = \
279         test_bound.c \
280         verify.h \
281         verify.c
282 iscc_SOURCES =  \
283         isl_obj_list.h \
284         isl_obj_list.c \
285         isl_obj_str.h \
286         isl_obj_str.c \
287         iscc.c
288 iscc_CPPFLAGS = @PET_CFLAGS@ $(AM_CPPFLAGS)
289 iscc_LDADD = \
290         libbarvinok.la $(LIB_PET) $(LIB_ISL) \
291         $(LIB_POLYLIB)
293 if HAVE_ISL_BUILDDIR
294 # dummy library that captures the dependencies on all headers
295 # that are relevant for the bindings
296 noinst_LIBRARIES = libdep.a
297 libdep_a_CPPFLAGS = $(DEFAULT_INCLUDES) @ISL_CFLAGS@ -I"@ISL_SRCDIR@"
298 libdep_a_SOURCES = interface/all_barvinok.c
300 @ISL_BUILDDIR@/interface/extract_interface$(EXEEXT):
301         $(MAKE) -C @ISL_BUILDDIR@ interface/extract_interface$(EXEEXT)
303 isl.py: libdep.a interface/isl.py.top \
304                 @ISL_BUILDDIR@/interface/extract_interface$(EXEEXT)
305         (cat interface/isl.py.top && \
306                 @ISL_BUILDDIR@/interface/extract_interface$(EXEEXT) \
307                         --language=python \
308                         $(DEFAULT_INCLUDES) @ISL_CFLAGS@ -I"@ISL_SRCDIR@" \
309                         $(srcdir)/interface/all_barvinok.h) \
310                         > $@ || (rm $@ && false)
311 endif
313 TESTFILES = $(shell find $(top_srcdir)/tests -type f ! -path '*CVS*')
315 CLEANFILES = \
316         zsolve/graver \
317         zsolve/hilbert \
318         isl.py \
319         version.h
320 DISTCLEANFILES = \
321         barvinok-uninstalled.sh \
322         barvinok-uninstalled.pc \
323         barvinok.pc \
324         barvinok.pc.in \
325         barvinok/set.h \
326         barvinok/NTL.h \
327         interface/isl.py.top
329 EXTRA_DIST = \
330     LICENSE \
331     ChangeLog \
332     $(TESTFILES) \
333     latte2polylib.pl \
334     basis_reduction_templ.c \
335     cdd94e-test \
336     polysign_cdd_template.cc \
337     barvinok/NTL.h.broken \
338     barvinok/NTL.h.normal \
339     barvinok/set.h.broken \
340     barvinok/set.h.normal \
341     config_post.h \
342     doc/isl.tex \
343     doc/Internal.tex \
344     doc/applications.tex \
345     doc/barvinok.tex \
346     doc/polymake.tex \
347     doc/reports.tex \
348     doc/barvinok.bib \
349     doc/barvinok.gdf \
350     doc/chicago.bst \
351     doc/chicago.sty \
352     doc/glosstex.ist \
353     doc/mydefs.sty \
354     interface/all_barvinok.h \
355     interface/isl.py.top.no_pet \
356     interface/isl.py.top.pet \
357     polymake/Makefile.in \
358     polymake/README \
359     polymake/autogen.sh \
360     polymake/configure.in \
361     polymake/convert.cc \
362     polymake/convert.h \
363     polymake/h_star_vector.cc \
364     polymake/lattice_points.cc
366 ACLOCAL_AMFLAGS = -I m4
368 install-data-local:
369         @test -z "$(pkgconfig_libdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfig_libdir)"
370         $(INSTALL_DATA) $(pkgconfig_libfile) "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)"
372 uninstall-local:
373         rm -f "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)"
375 dist-hook: isl.py
376         cp isl.py $(distdir)/
377         (cd $(distdir)/polymake; \
378             ./autogen.sh; rm -rf autom4te.cache)
379         (cd doc; make barvinok.pdf)
380         cp doc/barvinok.pdf $(distdir)/doc/
381         if test -f $(top_srcdir)/.git/HEAD; then \
382             echo @GIT_HEAD_VERSION@ > $(distdir)/GIT_HEAD_ID; \
383         else \
384             echo $(GIT_HEAD_ID) > $(distdir)/GIT_HEAD_ID; \
385         fi
387 dist-git: dist
388         mv $(distdir).tar.gz @GIT_HEAD_VERSION@.tar.gz
390 TESTS = testlib check_enumerate.sh check_enumerate_e.sh check_test.sh \
391         check_lexmin.sh check_approx.sh check_pwqp.sh check_euler.sh \
392         check_iscc.sh check_union.sh
394 version.h: @GIT_HEAD@
395         echo '#define GIT_HEAD_ID "'@GIT_HEAD_VERSION@'"' > $@