2 MAYBE_INTERFACE = interface
4 interface/extract_interface: FORCE
5 $(MAKE) $(AM_MAKEFLAGS) -C interface extract_interface
7 SUBDIRS = . $(MAYBE_INTERFACE) doc
8 DIST_SUBDIRS = $(MAYBE_INTERFACE) doc
10 ACLOCAL_AMFLAGS = -I m4
11 AUTOMAKE_OPTIONS = nostdinc subdir-objects
13 lib_LTLIBRARIES = libisl.la
14 noinst_PROGRAMS = isl_test isl_polyhedron_sample isl_pip \
15 isl_polyhedron_minimize isl_polytope_scan \
16 isl_polyhedron_detect_equalities isl_cat \
17 isl_closure isl_bound isl_schedule isl_codegen isl_test_int \
18 isl_flow isl_flow_cmp isl_schedule_cmp
19 TESTS = isl_test codegen_test.sh pip_test.sh bound_test.sh isl_test_int \
20 flow_test.sh schedule_test.sh
23 noinst_PROGRAMS += isl_test_cpp-checked
24 TESTS += isl_test_cpp-checked
27 TESTS += isl_test_python.py
28 isl_test_python.py: interface/isl.py libisl.la
32 AM_TESTS_ENVIRONMENT = \
33 export PYTHONPATH=interface; \
34 export LD_LIBRARY_PATH=.libs;
35 PY_LOG_COMPILER = $(PYTHON)
43 imath_wrap/gmp_compat.h \
47 imath_wrap/gmp_compat.c \
51 noinst_PROGRAMS += isl_test_imath
52 TESTS += isl_test_imath
55 MP_SRC += isl_int_sioimath.h \
59 MP_SRC += isl_val_imath.c
66 if NEED_GET_MEMORY_FUNCTIONS
67 GET_MEMORY_FUNCTIONS=mp_get_memory_functions.c
71 $(GET_MEMORY_FUNCTIONS) \
76 MP_INCLUDE_H = include/isl/val_gmp.h
79 includes = -I. -I$(srcdir) -I$(srcdir)/include -Iinclude/
80 AM_CPPFLAGS = $(includes) @MP_CPPFLAGS@
81 AM_CFLAGS = @WARNING_FLAGS@
92 isl_ast_build_private.h \
93 isl_ast_build_expr.c \
94 isl_ast_build_expr.h \
97 isl_ast_graft_private.h \
98 isl_basis_reduction.h \
99 basis_reduction_tab.c \
108 isl_constraint_private.h \
117 isl_factorization.c \
118 isl_factorization.h \
125 isl_id_to_ast_expr.c \
134 isl_local_space_private.h \
143 isl_map_to_basic_set.c \
152 isl_options_private.h \
154 isl_output_private.h \
155 isl_point_private.h \
157 isl_polynomial_private.h \
159 isl_printer_private.h \
171 isl_schedule_band.c \
172 isl_schedule_band.h \
173 isl_schedule_node.c \
174 isl_schedule_node_private.h \
175 isl_schedule_read.c \
176 isl_schedule_tree.c \
177 isl_schedule_tree.h \
178 isl_schedule_private.h \
179 isl_schedule_constraints.c \
180 isl_schedule_constraints.h \
186 isl_space_private.h \
188 isl_stream_private.h \
197 isl_transitive_closure.c \
199 isl_union_map_private.h \
200 isl_union_set_private.h \
206 isl_vertices_private.h \
209 libisl_la_LIBADD = @MP_LIBS@
210 libisl_la_LDFLAGS = -version-info @versioninfo@ \
213 isl_test_LDFLAGS = @MP_LDFLAGS@
214 isl_test_LDADD = libisl.la @MP_LIBS@
216 isl_test_int_LDFLAGS = @MP_LDFLAGS@
217 isl_test_int_LDADD = libisl.la @MP_LIBS@
220 isl_test_imath_LDFLAGS = @MP_LDFLAGS@
221 isl_test_imath_LDADD = libisl.la @MP_LIBS@
224 isl_polyhedron_sample_LDADD = libisl.la
225 isl_polyhedron_sample_SOURCES = \
228 isl_pip_LDFLAGS = @MP_LDFLAGS@
229 isl_pip_LDADD = libisl.la @MP_LIBS@
233 isl_schedule_LDFLAGS = @MP_LDFLAGS@
234 isl_schedule_LDADD = libisl.la @MP_LIBS@
235 isl_schedule_SOURCES = \
238 isl_schedule_cmp_LDFLAGS = @MP_LDFLAGS@
239 isl_schedule_cmp_LDADD = libisl.la @MP_LIBS@
240 isl_schedule_cmp_SOURCES = \
243 isl_flow_LDFLAGS = @MP_LDFLAGS@
244 isl_flow_LDADD = libisl.la @MP_LIBS@
248 isl_flow_cmp_LDFLAGS = @MP_LDFLAGS@
249 isl_flow_cmp_LDADD = libisl.la @MP_LIBS@
250 isl_flow_cmp_SOURCES = \
253 isl_codegen_LDFLAGS = @MP_LDFLAGS@
254 isl_codegen_LDADD = libisl.la @MP_LIBS@
255 isl_codegen_SOURCES = \
258 isl_bound_LDFLAGS = @MP_LDFLAGS@
259 isl_bound_LDADD = libisl.la @MP_LIBS@
260 isl_bound_SOURCES = \
263 isl_polyhedron_minimize_LDFLAGS = @MP_LDFLAGS@
264 isl_polyhedron_minimize_LDADD = libisl.la @MP_LIBS@
265 isl_polyhedron_minimize_SOURCES = \
266 polyhedron_minimize.c
268 isl_polytope_scan_LDADD = libisl.la
269 isl_polytope_scan_SOURCES = \
272 isl_polyhedron_detect_equalities_LDADD = libisl.la
273 isl_polyhedron_detect_equalities_SOURCES = \
274 polyhedron_detect_equalities.c
276 isl_cat_LDADD = libisl.la
280 isl_closure_LDADD = libisl.la
281 isl_closure_SOURCES = \
284 isl_test_cpp_checked_CXXFLAGS = @CXX11FLAGS@
285 isl_test_cpp_checked_SOURCES = \
286 isl_test_cpp-checked.cc \
287 include/isl/cpp-checked.h
288 isl_test_cpp_checked_LDFLAGS = @MP_LDFLAGS@
289 isl_test_cpp_checked_LDADD = libisl.la @MP_LIBS@
291 # dummy library that captures the dependencies on all headers
292 # that are relevant for the bindings
293 noinst_LIBRARIES = libdep.a
294 libdep_a_SOURCES = all.c
297 interface/isl.py: interface/extract_interface libdep.a python/isl.py.top
298 (cat $(srcdir)/python/isl.py.top && \
299 interface/extract_interface$(EXEEXT) --language=python \
300 $(includes) $(srcdir)/all.h) \
301 > $@ || (rm $@ && false)
303 include/isl/cpp-checked.h: interface/extract_interface libdep.a \
304 cpp/cpp-checked.h.top \
305 cpp/cpp-checked.h.pre cpp/cpp-checked.h.bot
306 (cat $(srcdir)/cpp/cpp-checked.h.top $(srcdir)/all.h \
307 $(srcdir)/cpp/cpp-checked.h.pre && \
308 interface/extract_interface$(EXEEXT) \
309 --language=cpp-checked \
310 $(includes) $(srcdir)/all.h && \
311 cat $(srcdir)/cpp/cpp-checked.h.bot) \
312 > $@ || (rm $@ && false)
315 nodist_pkginclude_HEADERS = \
317 pkginclude_HEADERS = \
320 include/isl/aff_type.h \
323 include/isl/ast_type.h \
324 include/isl/ast_build.h \
325 include/isl/constraint.h \
329 include/isl/id_to_ast_expr.h \
330 include/isl/id_to_id.h \
331 include/isl/id_to_pw_aff.h \
335 include/isl/hmap_templ.c \
337 include/isl/local_space.h \
341 include/isl/map_to_basic_set.h \
342 include/isl/map_type.h \
343 include/isl/maybe.h \
344 include/isl/maybe_ast_expr.h \
345 include/isl/maybe_basic_set.h \
346 include/isl/maybe_id.h \
347 include/isl/maybe_pw_aff.h \
348 include/isl/maybe_templ.h \
349 include/isl/multi.h \
351 include/isl/options.h \
352 include/isl/point.h \
353 include/isl/polynomial.h \
354 include/isl/polynomial_type.h \
355 include/isl/printer.h \
356 include/isl/printer_type.h \
357 include/isl/schedule.h \
358 include/isl/schedule_node.h \
359 include/isl/schedule_type.h \
361 include/isl/set_type.h \
362 include/isl/space.h \
363 include/isl/stream.h \
364 include/isl/union_map.h \
365 include/isl/union_map_type.h \
366 include/isl/union_set.h \
367 include/isl/union_set_type.h \
370 include/isl/version.h \
371 include/isl/vertices.h
374 CPP_INTERFACE = include/isl/cpp-checked.h
376 BUILT_SOURCES = gitversion.h $(CPP_INTERFACE)
377 CLEANFILES = gitversion.h interface/isl.py $(CPP_INTERFACE)
389 basis_reduction_templ.c \
395 isl_map_lexopt_templ.c \
400 isl_multi_apply_templ.c \
401 isl_multi_apply_set.c \
402 isl_multi_apply_union_set.c \
404 isl_multi_coalesce.c \
409 isl_multi_intersect.c \
417 read_in_string_templ.c \
420 isl_tab_lexopt_templ.c \
430 doc/SubmittingPatches \
431 doc/implementation.tex \
446 isl_test_cpp-generic.cc \
451 dist-hook: interface/isl.py
452 cp interface/isl.py $(distdir)/interface/
456 echo @GIT_HEAD_VERSION@ > $(distdir)/GIT_HEAD_ID
457 (cd doc; make manual.pdf)
458 cp doc/manual.pdf $(distdir)/doc/
460 pkgconfigdir=$(pkgconfig_libdir)
461 pkgconfig_DATA = $(pkgconfig_libfile)
463 gitversion.h: @GIT_HEAD@
464 $(AM_V_GEN)echo '#define GIT_HEAD_ID "'@GIT_HEAD_VERSION@'"' > $@
466 install-data-local: $(srcdir)/libisl-gdb.py
467 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
468 $(builddir)/libisl.la`; \
470 '') echo Cannot find isl library name. GDB bindings not installed.;; \
471 *) echo $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \
472 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \
473 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"; \
474 $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \
475 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \
479 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
480 $(builddir)/libisl.la`; \
481 if test -n "$${libisl}"; then \
482 rm -f $(DESTDIR)$(libdir)/$$libisl-gdb.py; \