3 MAYBE_INTERFACE = interface
5 interface/extract_interface$(BUILD_EXEEXT): FORCE
6 $(MAKE) $(AM_MAKEFLAGS) -C interface extract_interface$(BUILD_EXEEXT)
9 SUBDIRS = . $(MAYBE_INTERFACE) doc
10 DIST_SUBDIRS = $(MAYBE_INTERFACE) doc
12 ACLOCAL_AMFLAGS = -I m4
13 AUTOMAKE_OPTIONS = nostdinc subdir-objects
15 lib_LTLIBRARIES = libisl.la
16 noinst_PROGRAMS = isl_test isl_polyhedron_sample isl_pip \
17 isl_polyhedron_minimize isl_polytope_scan \
18 isl_polyhedron_detect_equalities \
19 isl_polyhedron_remove_redundant_equalities isl_cat \
20 isl_closure isl_bound isl_schedule isl_codegen isl_test_int \
21 isl_flow isl_flow_cmp isl_schedule_cmp
22 TESTS = isl_test codegen_test.sh pip_test.sh bound_test.sh isl_test_int \
23 flow_test.sh schedule_test.sh
24 CPP_H = $(srcdir)/include/isl/cpp.h $(srcdir)/include/isl/typed_cpp.h
26 noinst_PROGRAMS += isl_test2 isl_test_cpp
27 TESTS += isl_test2 isl_test_cpp isl_test_cpp_failed.sh
30 noinst_PROGRAMS += isl_test_cpp17 isl_test_cpp17-checked
31 TESTS += isl_test_cpp17 isl_test_cpp17-checked
34 noinst_PROGRAMS += isl_test_cpp-checked isl_test_cpp-checked-conversion
35 TESTS += isl_test_cpp-checked isl_test_cpp-checked-conversion
38 TESTS += isl_test_python.py
39 noinst_PYTHON = interface/isl.py
40 isl_test_python.py: interface/isl.py libisl.la
43 AM_TESTS_ENVIRONMENT = \
44 export PYTHONPATH=interface; \
45 export ISL_DYLD_LIBRARY_PATH=.libs; \
46 export LD_LIBRARY_PATH=".libs:$(LD_LIBRARY_PATH)";
47 PY_LOG_COMPILER = $(PYTHON)
55 imath_wrap/gmp_compat.h \
59 imath_wrap/gmp_compat.c \
63 noinst_PROGRAMS += isl_test_imath
64 TESTS += isl_test_imath
67 MP_SRC += isl_int_sioimath.h \
71 MP_SRC += isl_val_imath.c
78 if NEED_GET_MEMORY_FUNCTIONS
79 GET_MEMORY_FUNCTIONS=mp_get_memory_functions.c
83 $(GET_MEMORY_FUNCTIONS) \
88 MP_INCLUDE_H = include/isl/val_gmp.h
91 includes = -I. -I$(srcdir) -I$(srcdir)/include -Iinclude/
92 AM_CPPFLAGS = $(includes) @MP_CPPFLAGS@
93 AM_CFLAGS = @WARNING_FLAGS@ @MP_CFLAGS@
105 isl_ast_build_private.h \
106 isl_ast_build_expr.c \
107 isl_ast_build_expr.h \
110 isl_ast_graft_private.h \
111 isl_basis_reduction.h \
112 basis_reduction_tab.c \
122 isl_constraint_private.h \
131 isl_factorization.c \
132 isl_factorization.h \
139 isl_id_to_ast_expr.c \
147 isl_local_private.h \
150 isl_local_space_private.h \
159 isl_map_to_basic_set.c \
169 isl_options_private.h \
171 isl_output_private.h \
172 isl_point_private.h \
174 isl_polynomial_private.h \
176 isl_printer_private.h \
188 isl_schedule_band.c \
189 isl_schedule_band.h \
190 isl_schedule_node.c \
191 isl_schedule_node_private.h \
192 isl_schedule_read.c \
193 isl_schedule_tree.c \
194 isl_schedule_tree.h \
195 isl_schedule_private.h \
196 isl_schedule_constraints.c \
197 isl_schedule_constraints.h \
200 isl_scheduler_clustering.c \
201 isl_scheduler_clustering.h \
202 isl_scheduler_scc.c \
203 isl_scheduler_scc.h \
208 isl_space_private.h \
210 isl_stream_private.h \
213 isl_set_to_ast_graft_list.c \
214 isl_set_to_ast_graft_list.h \
221 isl_transitive_closure.c \
223 isl_union_map_private.h \
224 isl_union_set_private.h \
230 isl_vertices_private.h \
233 libisl_la_LIBADD = @MP_LIBS@
234 libisl_la_LDFLAGS = -version-info @versioninfo@ \
237 isl_test_LDFLAGS = @MP_LDFLAGS@
238 isl_test_LDADD = libisl.la @MP_LIBS@
240 isl_test2_SOURCES = \
242 $(srcdir)/include/isl/cpp.h
243 isl_test2_LDFLAGS = @MP_LDFLAGS@
244 isl_test2_LDADD = libisl.la @MP_LIBS@
246 isl_test_int_LDFLAGS = @MP_LDFLAGS@
247 isl_test_int_LDADD = libisl.la @MP_LIBS@
250 isl_test_imath_LDFLAGS = @MP_LDFLAGS@
251 isl_test_imath_LDADD = libisl.la @MP_LIBS@
254 isl_polyhedron_sample_LDADD = libisl.la
255 isl_polyhedron_sample_SOURCES = \
258 isl_pip_LDFLAGS = @MP_LDFLAGS@
259 isl_pip_LDADD = libisl.la @MP_LIBS@
263 isl_schedule_LDFLAGS = @MP_LDFLAGS@
264 isl_schedule_LDADD = libisl.la @MP_LIBS@
265 isl_schedule_SOURCES = \
268 isl_schedule_cmp_LDFLAGS = @MP_LDFLAGS@
269 isl_schedule_cmp_LDADD = libisl.la @MP_LIBS@
270 isl_schedule_cmp_SOURCES = \
273 isl_flow_LDFLAGS = @MP_LDFLAGS@
274 isl_flow_LDADD = libisl.la @MP_LIBS@
278 isl_flow_cmp_LDFLAGS = @MP_LDFLAGS@
279 isl_flow_cmp_LDADD = libisl.la @MP_LIBS@
280 isl_flow_cmp_SOURCES = \
283 isl_codegen_LDFLAGS = @MP_LDFLAGS@
284 isl_codegen_LDADD = libisl.la @MP_LIBS@
285 isl_codegen_SOURCES = \
288 isl_bound_LDFLAGS = @MP_LDFLAGS@
289 isl_bound_LDADD = libisl.la @MP_LIBS@
290 isl_bound_SOURCES = \
293 isl_polyhedron_minimize_LDFLAGS = @MP_LDFLAGS@
294 isl_polyhedron_minimize_LDADD = libisl.la @MP_LIBS@
295 isl_polyhedron_minimize_SOURCES = \
296 polyhedron_minimize.c
298 isl_polytope_scan_LDADD = libisl.la
299 isl_polytope_scan_SOURCES = \
302 isl_polyhedron_detect_equalities_LDADD = libisl.la
303 isl_polyhedron_detect_equalities_SOURCES = \
304 polyhedron_detect_equalities.c
306 isl_polyhedron_remove_redundant_equalities_LDADD = libisl.la
307 isl_polyhedron_remove_redundant_equalities_SOURCES = \
308 polyhedron_remove_redundant_equalities.c
310 isl_cat_LDADD = libisl.la
314 isl_closure_LDADD = libisl.la
315 isl_closure_SOURCES = \
318 isl_test_cpp_CPPFLAGS = $(AM_CPPFLAGS) -UCOMPILE_ERROR
319 isl_test_cpp_SOURCES = \
321 $(srcdir)/include/isl/cpp.h
322 isl_test_cpp_LDFLAGS = @MP_LDFLAGS@
323 isl_test_cpp_LDADD = libisl.la @MP_LIBS@
325 # This program is not meant to be compiled by default.
326 # In fact it is meant not to be compilable.
327 # It is identical to isl_test_cpp, except that it gets compiled
328 # with the COMPILE_ERROR flag set.
329 EXTRA_PROGRAMS = isl_test_cpp_failed
330 isl_test_cpp_failed_CPPFLAGS = $(AM_CPPFLAGS) -DCOMPILE_ERROR
331 isl_test_cpp_failed_SOURCES = \
333 $(srcdir)/include/isl/cpp.h
334 isl_test_cpp_failed_LDFLAGS = @MP_LDFLAGS@
335 isl_test_cpp_failed_LDADD = libisl.la @MP_LIBS@
337 isl_test_cpp17_SOURCES = \
339 $(srcdir)/include/isl/cpp.h
340 isl_test_cpp17_LDFLAGS = @MP_LDFLAGS@
341 isl_test_cpp17_LDADD = libisl.la @MP_LIBS@
343 isl_test_cpp_checked_SOURCES = \
344 isl_test_cpp-checked.cc \
345 $(srcdir)/include/isl/cpp-checked.h
346 isl_test_cpp_checked_LDFLAGS = @MP_LDFLAGS@
347 isl_test_cpp_checked_LDADD = libisl.la @MP_LIBS@
349 isl_test_cpp17_checked_SOURCES = \
350 isl_test_cpp17-checked.cc \
351 $(srcdir)/include/isl/cpp.h
352 isl_test_cpp17_checked_LDFLAGS = @MP_LDFLAGS@
353 isl_test_cpp17_checked_LDADD = libisl.la @MP_LIBS@
355 isl_test_cpp_checked_conversion_SOURCES = \
356 isl_test_cpp-checked-conversion.cc \
357 $(srcdir)/include/isl/cpp-checked-conversion.h
358 isl_test_cpp_checked_conversion_LDFLAGS = @MP_LDFLAGS@
359 isl_test_cpp_checked_conversion_LDADD = libisl.la @MP_LIBS@
361 # dummy library that captures the dependencies on all headers
362 # that are relevant for the bindings
363 noinst_LIBRARIES = libdep.a
364 libdep_a_SOURCES = dep.c
368 CP_IF_DIFFERENT = "$(srcdir)/cp_if_different.sh"
369 .gen/isl.py.core: interface/extract_interface$(BUILD_EXEEXT) libdep.a
370 $(AM_V_GEN)$(MKDIR_P) ".gen" && \
371 interface/extract_interface$(BUILD_EXEEXT) \
372 --language=python $(includes) $(srcdir)/all.h \
373 > .gen/isl.py.Tcore && mv .gen/isl.py.Tcore $@
374 $(srcdir)/interface/isl.py.core: .gen/isl.py.core
375 $(AM_V_at)$(CP_IF_DIFFERENT) .gen/isl.py.core $@
377 .gen/cpp.h: interface/extract_interface$(BUILD_EXEEXT) \
378 libdep.a cpp/cpp.h.top cpp/cpp.h.bot
379 $(AM_V_GEN)$(MKDIR_P) ".gen" && \
380 (cat $(srcdir)/cpp/cpp.h.top $(srcdir)/all.h && \
381 interface/extract_interface$(BUILD_EXEEXT) --language=cpp \
382 $(includes) $(srcdir)/all.h && \
383 cat $(srcdir)/cpp/cpp.h.bot) \
384 > .gen/cpp.Th && mv .gen/cpp.Th $@
385 $(srcdir)/include/isl/cpp.h: .gen/cpp.h
386 $(AM_V_at)$(CP_IF_DIFFERENT) .gen/cpp.h $@
388 .gen/cpp-checked.h: \
389 interface/extract_interface$(BUILD_EXEEXT) libdep.a \
390 cpp/cpp-checked.h.top cpp/cpp-checked.h.bot
391 $(AM_V_GEN)$(MKDIR_P) ".gen" && \
392 (cat $(srcdir)/cpp/cpp-checked.h.top $(srcdir)/all.h && \
393 interface/extract_interface$(BUILD_EXEEXT) \
394 --language=cpp-checked \
395 $(includes) $(srcdir)/all.h && \
396 cat $(srcdir)/cpp/cpp-checked.h.bot) \
397 > .gen/cpp-checked.Th && \
398 mv .gen/cpp-checked.Th $@
399 $(srcdir)/include/isl/cpp-checked.h: .gen/cpp-checked.h
400 $(AM_V_at)$(CP_IF_DIFFERENT) .gen/cpp-checked.h $@
402 .gen/cpp-checked-conversion.h: \
403 interface/extract_interface$(BUILD_EXEEXT) \
405 cpp/cpp-checked-conversion.h.top \
406 cpp/cpp-checked-conversion.h.bot
407 $(AM_V_GEN)$(MKDIR_P) ".gen" && \
408 (cat $(srcdir)/cpp/cpp-checked-conversion.h.top && \
409 interface/extract_interface$(BUILD_EXEEXT) \
410 --language=cpp-checked-conversion \
411 $(includes) $(srcdir)/all.h && \
412 cat $(srcdir)/cpp/cpp-checked-conversion.h.bot) \
413 > .gen/cpp-checked-conversion.Th && \
414 mv .gen/cpp-checked-conversion.Th $@
415 $(srcdir)/include/isl/cpp-checked-conversion.h: .gen/cpp-checked-conversion.h
416 $(AM_V_at)$(CP_IF_DIFFERENT) .gen/cpp-checked-conversion.h $@
418 .gen/typed_cpp.h: interface/extract_interface$(BUILD_EXEEXT) \
419 libdep.a cpp/typed_cpp.h.top cpp/typed_cpp.h.bot
420 $(AM_V_GEN)$(MKDIR_P) ".gen" && \
421 (cat $(srcdir)/cpp/typed_cpp.h.top && \
422 interface/extract_interface$(BUILD_EXEEXT) \
423 --language=template-cpp \
424 $(includes) $(srcdir)/all.h && \
425 cat $(srcdir)/cpp/typed_cpp.h.bot) \
426 > .gen/typed_cpp.Th && mv .gen/typed_cpp.Th $@
427 $(srcdir)/include/isl/typed_cpp.h: .gen/typed_cpp.h
428 $(AM_V_at)$(CP_IF_DIFFERENT) .gen/typed_cpp.h $@
432 interface/isldlname.py: libisl.la
433 $(AM_V_GEN)$(MKDIR_P) "interface" && \
434 $(GREP) dlname libisl.la | \
435 $(SED) -e 's/dlname/isl_dlname/' > $@
436 interface/isl.py: python/isl.py.top interface/isldlname.py \
437 $(srcdir)/interface/isl.py.core
438 $(AM_V_GEN)cat interface/isldlname.py $(srcdir)/python/isl.py.top \
439 $(srcdir)/interface/isl.py.core > interface/isl.Tpy && \
440 mv interface/isl.Tpy $@
442 nodist_pkginclude_HEADERS = \
444 pkginclude_HEADERS = \
448 include/isl/aff_type.h \
451 include/isl/ast_type.h \
452 include/isl/ast_build.h \
453 include/isl/constraint.h \
455 include/isl/fixed_box.h \
458 include/isl/id_type.h \
459 include/isl/id_to_ast_expr.h \
460 include/isl/id_to_id.h \
461 include/isl/id_to_pw_aff.h \
465 include/isl/hmap_templ.c \
467 include/isl/local_space.h \
471 include/isl/map_to_basic_set.h \
472 include/isl/map_type.h \
473 include/isl/maybe.h \
474 include/isl/maybe_ast_expr.h \
475 include/isl/maybe_basic_set.h \
476 include/isl/maybe_id.h \
477 include/isl/maybe_pw_aff.h \
478 include/isl/maybe_templ.h \
479 include/isl/multi.h \
481 include/isl/options.h \
482 include/isl/point.h \
483 include/isl/polynomial.h \
484 include/isl/polynomial_type.h \
485 include/isl/printer.h \
486 include/isl/printer_type.h \
487 include/isl/schedule.h \
488 include/isl/schedule_node.h \
489 include/isl/schedule_type.h \
491 include/isl/set_type.h \
492 include/isl/space.h \
493 include/isl/space_type.h \
494 include/isl/stream.h \
495 include/isl/stride_info.h \
496 include/isl/union_map.h \
497 include/isl/union_map_type.h \
498 include/isl/union_set.h \
499 include/isl/union_set_type.h \
501 include/isl/val_type.h \
503 include/isl/version.h \
504 include/isl/vertices.h
507 $(srcdir)/include/isl/cpp.h \
508 $(srcdir)/include/isl/cpp-checked.h \
509 $(srcdir)/include/isl/cpp-checked-conversion.h \
510 $(srcdir)/include/isl/typed_cpp.h
513 BUILT_CPP_INTERFACES = $(CPP_INTERFACES)
516 BUILT_SOURCES = gitversion.h $(BUILT_CPP_INTERFACES) interface/isl.py
519 interface/isldlname.py \
522 interface/__pycache__/*.pyc
526 .gen/cpp-checked-conversion.h \
539 isl_aff_lex_templ.c \
540 isl_align_params_templ.c \
541 isl_align_params_bin_templ.c \
542 isl_ast_node_set_field_templ.c \
543 basis_reduction_templ.c \
544 isl_bind_domain_templ.c \
547 isl_check_named_params_templ.c \
548 check_parse_fail_test_templ.c \
549 check_reparse_templ.c \
550 check_reparse_test_templ.c \
551 check_single_reference_templ.c \
552 check_type_range_templ.c \
553 isl_copy_tuple_id_templ.c \
554 isl_domain_factor_templ.c \
555 isl_drop_unused_params_templ.c \
557 isl_from_range_templ.c \
558 isl_ilp_opt_fn_val_templ.c \
559 isl_ilp_opt_multi_val_templ.c \
560 isl_ilp_opt_val_templ.c \
561 has_single_reference_templ.c \
562 isl_insert_domain_templ.c \
566 isl_list_read_templ.c \
567 isl_list_read_yaml_templ.c \
568 isl_map_bound_templ.c \
569 isl_map_lexopt_templ.c \
570 isl_maybe_ast_graft_list.h \
573 isl_multi_bind_templ.c \
574 isl_multi_explicit_domain.c \
575 isl_multi_pw_aff_explicit_domain.c \
576 isl_multi_union_pw_aff_explicit_domain.c \
577 isl_multi_no_explicit_domain.c \
578 isl_multi_no_domain_templ.c \
581 isl_multi_add_constant_templ.c \
582 isl_multi_align_set.c \
583 isl_multi_align_union_set.c \
584 isl_multi_apply_templ.c \
585 isl_multi_apply_explicit_domain_templ.c \
586 isl_multi_apply_no_explicit_domain_templ.c \
587 isl_multi_apply_set_explicit_domain_templ.c \
588 isl_multi_apply_set_no_explicit_domain_templ.c \
589 isl_multi_apply_union_set_explicit_domain_templ.c \
590 isl_multi_arith_templ.c \
591 isl_multi_bin_val_templ.c \
592 isl_multi_bind_domain_templ.c \
593 isl_multi_check_domain_templ.c \
595 isl_multi_coalesce.c \
596 isl_multi_dim_id_templ.c \
598 isl_multi_domain_templ.c \
599 isl_multi_domain_reverse_templ.c \
601 isl_multi_from_base_templ.c \
602 isl_multi_from_tuple_templ.c \
605 isl_multi_insert_domain_templ.c \
606 isl_multi_intersect.c \
607 isl_multi_identity_templ.c \
608 isl_multi_locals_templ.c \
609 isl_multi_min_max_templ.c \
610 isl_multi_move_dims_templ.c \
611 isl_multi_nan_templ.c \
612 isl_multi_param_templ.c \
613 isl_multi_product_templ.c \
614 isl_multi_pw_aff_pullback_templ.c \
615 isl_multi_read_no_explicit_domain_templ.c \
616 isl_multi_splice_templ.c \
617 isl_multi_tuple_id_templ.c \
618 isl_multi_un_op_templ.c \
619 isl_multi_unbind_params_templ.c \
620 isl_multi_union_add_templ.c \
621 isl_multi_zero_templ.c \
622 isl_multi_zero_space_templ.c \
623 isl_opt_mpa_templ.c \
627 print_yaml_field_templ.c \
629 isl_project_out_all_params_templ.c \
630 isl_project_out_param_templ.c \
634 isl_pw_add_constant_templ.c \
635 isl_pw_add_constant_multi_val_templ.c \
636 isl_pw_add_constant_val_templ.c \
637 isl_pw_add_disjoint_templ.c \
638 isl_pw_bind_domain_templ.c \
639 isl_pw_domain_reverse_templ.c \
642 isl_pw_from_range_templ.c \
644 isl_pw_insert_dims_templ.c \
645 isl_pw_insert_domain_templ.c \
646 isl_pw_lift_templ.c \
647 isl_pw_locals_templ.c \
648 isl_pw_morph_templ.c \
649 isl_pw_move_dims_templ.c \
652 isl_pw_print_templ.c \
653 isl_pw_pullback_templ.c \
654 isl_pw_range_tuple_id_templ.c \
655 isl_pw_scale_templ.c \
656 isl_pw_split_dims_templ.c \
658 isl_pw_un_op_templ.c \
660 isl_read_from_str_templ.c \
661 read_in_string_templ.c \
664 set_list_from_map_list_inl.c \
665 isl_stream_read_pw_with_params_templ.c \
666 isl_stream_read_with_params_templ.c \
667 isl_tab_lexopt_templ.c \
668 isl_test_list_templ.c \
669 isl_test_plain_equal_templ.c \
670 isl_type_check_equal_space_templ.c \
671 isl_type_check_match_range_multi_val.c \
672 isl_type_has_equal_space_bin_templ.c \
673 isl_type_has_equal_space_templ.c \
674 isl_type_has_space_templ.c \
675 isl_unbind_params_templ.c \
682 isl_union_domain_reverse_templ.c \
684 isl_union_locals_templ.c \
685 isl_union_map_lex_templ.c \
687 isl_union_print_templ.c \
688 isl_union_pw_templ.c \
689 isl_union_sub_templ.c \
692 doc/SubmittingPatches \
693 doc/implementation.tex \
705 interface/isl.py.core \
709 isl_test_cpp-generic.cc \
710 isl_test_cpp_failed.sh \
711 isl_test_cpp17-generic.cc \
717 echo @GIT_HEAD_VERSION@ > $(distdir)/GIT_HEAD_ID
718 (cd doc; make manual.pdf)
719 cp doc/manual.pdf $(distdir)/doc/
720 chmod -R u+w $(distdir)/include/isl
721 cp $(CPP_INTERFACES) $(distdir)/include/isl
723 pkgconfigdir=$(pkgconfig_libdir)
724 pkgconfig_DATA = $(pkgconfig_libfile)
726 gitversion.h: @GIT_HEAD@
727 $(AM_V_GEN)echo '#define GIT_HEAD_ID "'@GIT_HEAD_VERSION@'"' > $@
729 install-data-local: $(srcdir)/libisl-gdb.py
730 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
731 $(builddir)/libisl.la`; \
733 '') echo Cannot find isl library name. GDB bindings not installed.;; \
734 *) echo $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \
735 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \
736 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"; \
737 $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \
738 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \
742 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
743 $(builddir)/libisl.la`; \
744 if test -n "$${libisl}"; then \
745 rm -f $(DESTDIR)$(libdir)/$$libisl-gdb.py; \