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
22 CPP_H = include/isl/cpp.h
24 noinst_PROGRAMS += isl_test_cpp
30 noinst_PROGRAMS += isl_test_cpp-checked isl_test_cpp-checked-conversion
31 TESTS += isl_test_cpp-checked isl_test_cpp-checked-conversion
34 TESTS += isl_test_python.py
35 isl_test_python.py: interface/isl.py libisl.la
39 AM_TESTS_ENVIRONMENT = \
40 export PYTHONPATH=interface; \
41 export LD_LIBRARY_PATH=.libs;
42 PY_LOG_COMPILER = $(PYTHON)
50 imath_wrap/gmp_compat.h \
54 imath_wrap/gmp_compat.c \
58 noinst_PROGRAMS += isl_test_imath
59 TESTS += isl_test_imath
62 MP_SRC += isl_int_sioimath.h \
66 MP_SRC += isl_val_imath.c
73 if NEED_GET_MEMORY_FUNCTIONS
74 GET_MEMORY_FUNCTIONS=mp_get_memory_functions.c
78 $(GET_MEMORY_FUNCTIONS) \
83 MP_INCLUDE_H = include/isl/val_gmp.h
86 includes = -I. -I$(srcdir) -I$(srcdir)/include -Iinclude/
87 AM_CPPFLAGS = $(includes) @MP_CPPFLAGS@
88 AM_CFLAGS = @WARNING_FLAGS@
100 isl_ast_build_private.h \
101 isl_ast_build_expr.c \
102 isl_ast_build_expr.h \
105 isl_ast_graft_private.h \
106 isl_basis_reduction.h \
107 basis_reduction_tab.c \
117 isl_constraint_private.h \
126 isl_factorization.c \
127 isl_factorization.h \
134 isl_id_to_ast_expr.c \
143 isl_local_space_private.h \
152 isl_map_to_basic_set.c \
161 isl_options_private.h \
163 isl_output_private.h \
164 isl_point_private.h \
166 isl_polynomial_private.h \
168 isl_printer_private.h \
180 isl_schedule_band.c \
181 isl_schedule_band.h \
182 isl_schedule_node.c \
183 isl_schedule_node_private.h \
184 isl_schedule_read.c \
185 isl_schedule_tree.c \
186 isl_schedule_tree.h \
187 isl_schedule_private.h \
188 isl_schedule_constraints.c \
189 isl_schedule_constraints.h \
195 isl_space_private.h \
197 isl_stream_private.h \
206 isl_transitive_closure.c \
208 isl_union_map_private.h \
209 isl_union_set_private.h \
215 isl_vertices_private.h \
218 libisl_la_LIBADD = @MP_LIBS@
219 libisl_la_LDFLAGS = -version-info @versioninfo@ \
222 isl_test_LDFLAGS = @MP_LDFLAGS@
223 isl_test_LDADD = libisl.la @MP_LIBS@
225 isl_test_int_LDFLAGS = @MP_LDFLAGS@
226 isl_test_int_LDADD = libisl.la @MP_LIBS@
229 isl_test_imath_LDFLAGS = @MP_LDFLAGS@
230 isl_test_imath_LDADD = libisl.la @MP_LIBS@
233 isl_polyhedron_sample_LDADD = libisl.la
234 isl_polyhedron_sample_SOURCES = \
237 isl_pip_LDFLAGS = @MP_LDFLAGS@
238 isl_pip_LDADD = libisl.la @MP_LIBS@
242 isl_schedule_LDFLAGS = @MP_LDFLAGS@
243 isl_schedule_LDADD = libisl.la @MP_LIBS@
244 isl_schedule_SOURCES = \
247 isl_schedule_cmp_LDFLAGS = @MP_LDFLAGS@
248 isl_schedule_cmp_LDADD = libisl.la @MP_LIBS@
249 isl_schedule_cmp_SOURCES = \
252 isl_flow_LDFLAGS = @MP_LDFLAGS@
253 isl_flow_LDADD = libisl.la @MP_LIBS@
257 isl_flow_cmp_LDFLAGS = @MP_LDFLAGS@
258 isl_flow_cmp_LDADD = libisl.la @MP_LIBS@
259 isl_flow_cmp_SOURCES = \
262 isl_codegen_LDFLAGS = @MP_LDFLAGS@
263 isl_codegen_LDADD = libisl.la @MP_LIBS@
264 isl_codegen_SOURCES = \
267 isl_bound_LDFLAGS = @MP_LDFLAGS@
268 isl_bound_LDADD = libisl.la @MP_LIBS@
269 isl_bound_SOURCES = \
272 isl_polyhedron_minimize_LDFLAGS = @MP_LDFLAGS@
273 isl_polyhedron_minimize_LDADD = libisl.la @MP_LIBS@
274 isl_polyhedron_minimize_SOURCES = \
275 polyhedron_minimize.c
277 isl_polytope_scan_LDADD = libisl.la
278 isl_polytope_scan_SOURCES = \
281 isl_polyhedron_detect_equalities_LDADD = libisl.la
282 isl_polyhedron_detect_equalities_SOURCES = \
283 polyhedron_detect_equalities.c
285 isl_cat_LDADD = libisl.la
289 isl_closure_LDADD = libisl.la
290 isl_closure_SOURCES = \
293 isl_test_cpp_CXXFLAGS = @CXX11FLAGS@
294 isl_test_cpp_SOURCES = \
297 isl_test_cpp_LDFLAGS = @MP_LDFLAGS@
298 isl_test_cpp_LDADD = libisl.la @MP_LIBS@
300 isl_test_cpp_checked_CXXFLAGS = @CXX11FLAGS@
301 isl_test_cpp_checked_SOURCES = \
302 isl_test_cpp-checked.cc \
303 include/isl/cpp-checked.h
304 isl_test_cpp_checked_LDFLAGS = @MP_LDFLAGS@
305 isl_test_cpp_checked_LDADD = libisl.la @MP_LIBS@
307 isl_test_cpp_checked_conversion_CXXFLAGS = @CXX11FLAGS@
308 isl_test_cpp_checked_conversion_SOURCES = \
309 isl_test_cpp-checked-conversion.cc \
310 include/isl/cpp-checked-conversion.h
311 isl_test_cpp_checked_conversion_LDFLAGS = @MP_LDFLAGS@
312 isl_test_cpp_checked_conversion_LDADD = libisl.la @MP_LIBS@
314 # dummy library that captures the dependencies on all headers
315 # that are relevant for the bindings
316 noinst_LIBRARIES = libdep.a
317 libdep_a_SOURCES = all.c
320 interface/isl.py: interface/extract_interface libdep.a python/isl.py.top
321 (cat $(srcdir)/python/isl.py.top && \
322 interface/extract_interface$(EXEEXT) --language=python \
323 $(includes) $(srcdir)/all.h) \
324 > $@ || (rm $@ && false)
326 include/isl/cpp.h: interface/extract_interface libdep.a \
327 cpp/cpp.h.top cpp/cpp.h.pre cpp/cpp.h.bot
328 $(MKDIR_P) "include/isl/cpp" && \
329 (cat $(srcdir)/cpp/cpp.h.top $(srcdir)/all.h \
330 $(srcdir)/cpp/cpp.h.pre && \
331 interface/extract_interface$(EXEEXT) --language=cpp \
332 $(includes) $(srcdir)/all.h && \
333 cat $(srcdir)/cpp/cpp.h.bot) \
334 > $@ || (rm $@ && false)
336 include/isl/cpp-checked.h: interface/extract_interface libdep.a \
337 cpp/cpp-checked.h.top \
338 cpp/cpp-checked.h.pre cpp/cpp-checked.h.bot
339 (cat $(srcdir)/cpp/cpp-checked.h.top $(srcdir)/all.h \
340 $(srcdir)/cpp/cpp-checked.h.pre && \
341 interface/extract_interface$(EXEEXT) \
342 --language=cpp-checked \
343 $(includes) $(srcdir)/all.h && \
344 cat $(srcdir)/cpp/cpp-checked.h.bot) \
345 > $@ || (rm $@ && false)
347 include/isl/cpp-checked-conversion.h: interface/extract_interface libdep.a \
348 cpp/cpp-checked-conversion.h.top \
349 cpp/cpp-checked-conversion.h.bot
350 (cat $(srcdir)/cpp/cpp-checked-conversion.h.top && \
351 interface/extract_interface$(EXEEXT) \
352 --language=cpp-checked-conversion \
353 $(includes) $(srcdir)/all.h && \
354 cat $(srcdir)/cpp/cpp-checked-conversion.h.bot) \
355 > $@ || (rm $@ && false)
358 nodist_pkginclude_HEADERS = \
360 pkginclude_HEADERS = \
364 include/isl/aff_type.h \
367 include/isl/ast_type.h \
368 include/isl/ast_build.h \
369 include/isl/constraint.h \
371 include/isl/fixed_box.h \
374 include/isl/id_type.h \
375 include/isl/id_to_ast_expr.h \
376 include/isl/id_to_id.h \
377 include/isl/id_to_pw_aff.h \
381 include/isl/hmap_templ.c \
383 include/isl/local_space.h \
387 include/isl/map_to_basic_set.h \
388 include/isl/map_type.h \
389 include/isl/maybe.h \
390 include/isl/maybe_ast_expr.h \
391 include/isl/maybe_basic_set.h \
392 include/isl/maybe_id.h \
393 include/isl/maybe_pw_aff.h \
394 include/isl/maybe_templ.h \
395 include/isl/multi.h \
397 include/isl/options.h \
398 include/isl/point.h \
399 include/isl/polynomial.h \
400 include/isl/polynomial_type.h \
401 include/isl/printer.h \
402 include/isl/printer_type.h \
403 include/isl/schedule.h \
404 include/isl/schedule_node.h \
405 include/isl/schedule_type.h \
407 include/isl/set_type.h \
408 include/isl/space.h \
409 include/isl/space_type.h \
410 include/isl/stream.h \
411 include/isl/stride_info.h \
412 include/isl/union_map.h \
413 include/isl/union_map_type.h \
414 include/isl/union_set.h \
415 include/isl/union_set_type.h \
417 include/isl/val_type.h \
419 include/isl/version.h \
420 include/isl/vertices.h
425 include/isl/cpp-checked.h \
426 include/isl/cpp-checked-conversion.h
428 BUILT_SOURCES = gitversion.h $(CPP_INTERFACES)
429 CLEANFILES = gitversion.h interface/isl.py $(CPP_INTERFACES)
441 basis_reduction_templ.c \
447 isl_map_lexopt_templ.c \
450 isl_multi_explicit_domain.c \
451 isl_multi_pw_aff_explicit_domain.c \
452 isl_multi_union_pw_aff_explicit_domain.c \
453 isl_multi_no_explicit_domain.c \
456 isl_multi_align_templ.c \
457 isl_multi_align_set.c \
458 isl_multi_align_union_set.c \
459 isl_multi_apply_templ.c \
460 isl_multi_apply_set.c \
461 isl_multi_apply_union_set.c \
463 isl_multi_coalesce.c \
465 isl_multi_domain_templ.c \
467 isl_multi_from_base_templ.c \
470 isl_multi_intersect.c \
471 isl_multi_identity_templ.c \
472 isl_multi_move_dims_templ.c \
473 isl_multi_product_templ.c \
474 isl_multi_splice_templ.c \
475 isl_multi_zero_templ.c \
485 read_in_string_templ.c \
488 set_list_from_map_list_inl.c \
489 isl_tab_lexopt_templ.c \
500 doc/SubmittingPatches \
501 doc/implementation.tex \
516 isl_test_cpp-generic.cc \
521 dist-hook: interface/isl.py
522 cp interface/isl.py $(distdir)/interface/
526 echo @GIT_HEAD_VERSION@ > $(distdir)/GIT_HEAD_ID
527 (cd doc; make manual.pdf)
528 cp doc/manual.pdf $(distdir)/doc/
530 pkgconfigdir=$(pkgconfig_libdir)
531 pkgconfig_DATA = $(pkgconfig_libfile)
533 gitversion.h: @GIT_HEAD@
534 $(AM_V_GEN)echo '#define GIT_HEAD_ID "'@GIT_HEAD_VERSION@'"' > $@
536 install-data-local: $(srcdir)/libisl-gdb.py
537 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
538 $(builddir)/libisl.la`; \
540 '') echo Cannot find isl library name. GDB bindings not installed.;; \
541 *) echo $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \
542 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \
543 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"; \
544 $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \
545 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \
549 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
550 $(builddir)/libisl.la`; \
551 if test -n "$${libisl}"; then \
552 rm -f $(DESTDIR)$(libdir)/$$libisl-gdb.py; \