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 isl_cat \
19 isl_closure isl_bound isl_schedule isl_codegen isl_test_int \
20 isl_flow isl_flow_cmp isl_schedule_cmp
21 TESTS = isl_test codegen_test.sh pip_test.sh bound_test.sh isl_test_int \
22 flow_test.sh schedule_test.sh
24 CPP_H = include/isl/cpp.h
26 noinst_PROGRAMS += isl_test_cpp
32 noinst_PROGRAMS += isl_test_cpp-checked isl_test_cpp-checked-conversion
33 TESTS += isl_test_cpp-checked isl_test_cpp-checked-conversion
35 TESTS += isl_test_python.py
36 noinst_PYTHON = interface/isl.py
37 isl_test_python.py: interface/isl.py libisl.la
42 AM_TESTS_ENVIRONMENT = \
43 export PYTHONPATH=interface; \
44 export ISL_DYLD_LIBRARY_PATH=.libs; \
45 export LD_LIBRARY_PATH=".libs:$(LD_LIBRARY_PATH)";
46 PY_LOG_COMPILER = $(PYTHON)
54 imath_wrap/gmp_compat.h \
58 imath_wrap/gmp_compat.c \
62 noinst_PROGRAMS += isl_test_imath
63 TESTS += isl_test_imath
66 MP_SRC += isl_int_sioimath.h \
70 MP_SRC += isl_val_imath.c
77 if NEED_GET_MEMORY_FUNCTIONS
78 GET_MEMORY_FUNCTIONS=mp_get_memory_functions.c
82 $(GET_MEMORY_FUNCTIONS) \
87 MP_INCLUDE_H = include/isl/val_gmp.h
90 includes = -I. -I$(srcdir) -I$(srcdir)/include -Iinclude/
91 AM_CPPFLAGS = $(includes) @MP_CPPFLAGS@
92 AM_CFLAGS = @WARNING_FLAGS@ @MP_CFLAGS@
104 isl_ast_build_private.h \
105 isl_ast_build_expr.c \
106 isl_ast_build_expr.h \
109 isl_ast_graft_private.h \
110 isl_basis_reduction.h \
111 basis_reduction_tab.c \
121 isl_constraint_private.h \
130 isl_factorization.c \
131 isl_factorization.h \
137 isl_id_to_ast_expr.c \
145 isl_local_private.h \
148 isl_local_space_private.h \
157 isl_map_to_basic_set.c \
166 isl_options_private.h \
168 isl_output_private.h \
169 isl_point_private.h \
171 isl_polynomial_private.h \
173 isl_printer_private.h \
185 isl_schedule_band.c \
186 isl_schedule_band.h \
187 isl_schedule_node.c \
188 isl_schedule_node_private.h \
189 isl_schedule_read.c \
190 isl_schedule_tree.c \
191 isl_schedule_tree.h \
192 isl_schedule_private.h \
193 isl_schedule_constraints.c \
194 isl_schedule_constraints.h \
200 isl_space_private.h \
202 isl_stream_private.h \
205 isl_set_to_ast_graft_list.c \
206 isl_set_to_ast_graft_list.h \
213 isl_transitive_closure.c \
215 isl_union_map_private.h \
216 isl_union_set_private.h \
222 isl_vertices_private.h \
225 libisl_la_LIBADD = @MP_LIBS@
226 libisl_la_LDFLAGS = -version-info @versioninfo@ \
229 isl_test_LDFLAGS = @MP_LDFLAGS@
230 isl_test_LDADD = libisl.la @MP_LIBS@
232 isl_test_int_LDFLAGS = @MP_LDFLAGS@
233 isl_test_int_LDADD = libisl.la @MP_LIBS@
236 isl_test_imath_LDFLAGS = @MP_LDFLAGS@
237 isl_test_imath_LDADD = libisl.la @MP_LIBS@
240 isl_polyhedron_sample_LDADD = libisl.la
241 isl_polyhedron_sample_SOURCES = \
244 isl_pip_LDFLAGS = @MP_LDFLAGS@
245 isl_pip_LDADD = libisl.la @MP_LIBS@
249 isl_schedule_LDFLAGS = @MP_LDFLAGS@
250 isl_schedule_LDADD = libisl.la @MP_LIBS@
251 isl_schedule_SOURCES = \
254 isl_schedule_cmp_LDFLAGS = @MP_LDFLAGS@
255 isl_schedule_cmp_LDADD = libisl.la @MP_LIBS@
256 isl_schedule_cmp_SOURCES = \
259 isl_flow_LDFLAGS = @MP_LDFLAGS@
260 isl_flow_LDADD = libisl.la @MP_LIBS@
264 isl_flow_cmp_LDFLAGS = @MP_LDFLAGS@
265 isl_flow_cmp_LDADD = libisl.la @MP_LIBS@
266 isl_flow_cmp_SOURCES = \
269 isl_codegen_LDFLAGS = @MP_LDFLAGS@
270 isl_codegen_LDADD = libisl.la @MP_LIBS@
271 isl_codegen_SOURCES = \
274 isl_bound_LDFLAGS = @MP_LDFLAGS@
275 isl_bound_LDADD = libisl.la @MP_LIBS@
276 isl_bound_SOURCES = \
279 isl_polyhedron_minimize_LDFLAGS = @MP_LDFLAGS@
280 isl_polyhedron_minimize_LDADD = libisl.la @MP_LIBS@
281 isl_polyhedron_minimize_SOURCES = \
282 polyhedron_minimize.c
284 isl_polytope_scan_LDADD = libisl.la
285 isl_polytope_scan_SOURCES = \
288 isl_polyhedron_detect_equalities_LDADD = libisl.la
289 isl_polyhedron_detect_equalities_SOURCES = \
290 polyhedron_detect_equalities.c
292 isl_cat_LDADD = libisl.la
296 isl_closure_LDADD = libisl.la
297 isl_closure_SOURCES = \
300 isl_test_cpp_SOURCES = \
303 isl_test_cpp_LDFLAGS = @MP_LDFLAGS@
304 isl_test_cpp_LDADD = libisl.la @MP_LIBS@
306 isl_test_cpp_checked_SOURCES = \
307 isl_test_cpp-checked.cc \
308 include/isl/cpp-checked.h
309 isl_test_cpp_checked_LDFLAGS = @MP_LDFLAGS@
310 isl_test_cpp_checked_LDADD = libisl.la @MP_LIBS@
312 isl_test_cpp_checked_conversion_SOURCES = \
313 isl_test_cpp-checked-conversion.cc \
314 include/isl/cpp-checked-conversion.h
315 isl_test_cpp_checked_conversion_LDFLAGS = @MP_LDFLAGS@
316 isl_test_cpp_checked_conversion_LDADD = libisl.la @MP_LIBS@
318 # dummy library that captures the dependencies on all headers
319 # that are relevant for the bindings
320 noinst_LIBRARIES = libdep.a
321 libdep_a_SOURCES = dep.c
325 interface/isldlname.py: libisl.la
326 $(AM_V_GEN) $(GREP) dlname $< | $(SED) -e 's/dlname/isl_dlname/' > $@
327 interface/isl.py: interface/extract_interface$(BUILD_EXEEXT) libdep.a \
328 python/isl.py.top interface/isldlname.py
329 (cat interface/isldlname.py $(srcdir)/python/isl.py.top && \
330 interface/extract_interface$(BUILD_EXEEXT) --language=python \
331 $(includes) $(srcdir)/all.h) \
332 > $@ || (rm $@ && false)
334 include/isl/cpp.h: interface/extract_interface$(BUILD_EXEEXT) libdep.a \
335 cpp/cpp.h.top cpp/cpp.h.bot
336 $(MKDIR_P) "include/isl" && \
337 (cat $(srcdir)/cpp/cpp.h.top $(srcdir)/all.h && \
338 interface/extract_interface$(BUILD_EXEEXT) --language=cpp \
339 $(includes) $(srcdir)/all.h && \
340 cat $(srcdir)/cpp/cpp.h.bot) \
341 > $@ || (rm $@ && false)
343 include/isl/cpp-checked.h: interface/extract_interface$(BUILD_EXEEXT) libdep.a \
344 cpp/cpp-checked.h.top cpp/cpp-checked.h.bot
345 $(MKDIR_P) "include/isl" && \
346 (cat $(srcdir)/cpp/cpp-checked.h.top $(srcdir)/all.h && \
347 interface/extract_interface$(BUILD_EXEEXT) \
348 --language=cpp-checked \
349 $(includes) $(srcdir)/all.h && \
350 cat $(srcdir)/cpp/cpp-checked.h.bot) \
351 > $@ || (rm $@ && false)
353 include/isl/cpp-checked-conversion.h: \
354 interface/extract_interface$(BUILD_EXEEXT) \
356 cpp/cpp-checked-conversion.h.top \
357 cpp/cpp-checked-conversion.h.bot
358 $(MKDIR_P) "include/isl" && \
359 (cat $(srcdir)/cpp/cpp-checked-conversion.h.top && \
360 interface/extract_interface$(BUILD_EXEEXT) \
361 --language=cpp-checked-conversion \
362 $(includes) $(srcdir)/all.h && \
363 cat $(srcdir)/cpp/cpp-checked-conversion.h.bot) \
364 > $@ || (rm $@ && false)
368 nodist_pkginclude_HEADERS = \
370 pkginclude_HEADERS = \
374 include/isl/aff_type.h \
377 include/isl/ast_type.h \
378 include/isl/ast_build.h \
379 include/isl/constraint.h \
381 include/isl/fixed_box.h \
384 include/isl/id_type.h \
385 include/isl/id_to_ast_expr.h \
386 include/isl/id_to_id.h \
387 include/isl/id_to_pw_aff.h \
391 include/isl/hmap_templ.c \
393 include/isl/local_space.h \
397 include/isl/map_to_basic_set.h \
398 include/isl/map_type.h \
399 include/isl/maybe.h \
400 include/isl/maybe_ast_expr.h \
401 include/isl/maybe_basic_set.h \
402 include/isl/maybe_id.h \
403 include/isl/maybe_pw_aff.h \
404 include/isl/maybe_templ.h \
405 include/isl/multi.h \
407 include/isl/options.h \
408 include/isl/point.h \
409 include/isl/polynomial.h \
410 include/isl/polynomial_type.h \
411 include/isl/printer.h \
412 include/isl/printer_type.h \
413 include/isl/schedule.h \
414 include/isl/schedule_node.h \
415 include/isl/schedule_type.h \
417 include/isl/set_type.h \
418 include/isl/space.h \
419 include/isl/space_type.h \
420 include/isl/stream.h \
421 include/isl/stride_info.h \
422 include/isl/union_map.h \
423 include/isl/union_map_type.h \
424 include/isl/union_set.h \
425 include/isl/union_set_type.h \
427 include/isl/val_type.h \
429 include/isl/version.h \
430 include/isl/vertices.h
436 include/isl/cpp-checked.h \
437 include/isl/cpp-checked-conversion.h
440 BUILT_SOURCES = gitversion.h $(CPP_INTERFACES)
443 interface/isldlname.py \
458 isl_aff_lex_templ.c \
459 isl_align_params_templ.c \
460 isl_align_params_bin_templ.c \
461 basis_reduction_templ.c \
462 isl_bind_domain_templ.c \
465 isl_check_named_params_templ.c \
466 check_reparse_templ.c \
467 check_reparse_test_templ.c \
468 check_single_reference_templ.c \
469 check_type_range_templ.c \
470 isl_copy_tuple_id_templ.c \
471 isl_domain_factor_templ.c \
473 isl_ilp_opt_multi_val_templ.c \
474 isl_ilp_opt_val_templ.c \
475 has_single_reference_templ.c \
476 isl_insert_domain_templ.c \
480 isl_map_bound_templ.c \
481 isl_map_lexopt_templ.c \
482 isl_maybe_ast_graft_list.h \
485 isl_multi_bind_templ.c \
486 isl_multi_explicit_domain.c \
487 isl_multi_pw_aff_explicit_domain.c \
488 isl_multi_union_pw_aff_explicit_domain.c \
489 isl_multi_no_explicit_domain.c \
490 isl_multi_no_domain_templ.c \
493 isl_multi_add_constant_templ.c \
494 isl_multi_align_templ.c \
495 isl_multi_align_set.c \
496 isl_multi_align_union_set.c \
497 isl_multi_apply_templ.c \
498 isl_multi_apply_set.c \
499 isl_multi_apply_union_set.c \
500 isl_multi_arith_templ.c \
501 isl_multi_bind_domain_templ.c \
503 isl_multi_coalesce.c \
504 isl_multi_dim_id_templ.c \
506 isl_multi_domain_templ.c \
508 isl_multi_from_base_templ.c \
511 isl_multi_insert_domain_templ.c \
512 isl_multi_intersect.c \
513 isl_multi_identity_templ.c \
514 isl_multi_locals_templ.c \
515 isl_multi_min_max_templ.c \
516 isl_multi_move_dims_templ.c \
517 isl_multi_nan_templ.c \
518 isl_multi_param_templ.c \
519 isl_multi_product_templ.c \
520 isl_multi_read_no_explicit_domain_templ.c \
521 isl_multi_splice_templ.c \
522 isl_multi_tuple_id_templ.c \
523 isl_multi_unbind_params_templ.c \
524 isl_multi_union_add_templ.c \
525 isl_multi_zero_templ.c \
526 isl_multi_zero_space_templ.c \
527 isl_opt_mpa_templ.c \
531 print_yaml_field_templ.c \
533 isl_project_out_all_params_templ.c \
537 isl_pw_add_constant_templ.c \
538 isl_pw_add_constant_multi_val_templ.c \
539 isl_pw_add_constant_val_templ.c \
540 isl_pw_bind_domain_templ.c \
543 isl_pw_insert_dims_templ.c \
544 isl_pw_insert_domain_templ.c \
545 isl_pw_lift_templ.c \
546 isl_pw_locals_templ.c \
547 isl_pw_morph_templ.c \
548 isl_pw_move_dims_templ.c \
551 isl_pw_pullback_templ.c \
552 isl_pw_range_tuple_id_templ.c \
555 read_in_string_templ.c \
558 set_list_from_map_list_inl.c \
559 isl_tab_lexopt_templ.c \
560 isl_test_list_templ.c \
561 isl_test_plain_equal_templ.c \
562 isl_type_check_equal_space_templ.c \
563 isl_type_has_equal_space_bin_templ.c \
564 isl_type_has_equal_space_templ.c \
565 isl_type_has_space_templ.c \
566 isl_unbind_params_templ.c \
574 isl_union_locals_templ.c \
575 isl_union_map_lex_templ.c \
577 isl_union_pw_templ.c \
580 doc/SubmittingPatches \
581 doc/implementation.tex \
596 isl_test_cpp-generic.cc \
601 echo @GIT_HEAD_VERSION@ > $(distdir)/GIT_HEAD_ID
602 (cd doc; make manual.pdf)
603 cp doc/manual.pdf $(distdir)/doc/
605 pkgconfigdir=$(pkgconfig_libdir)
606 pkgconfig_DATA = $(pkgconfig_libfile)
608 gitversion.h: @GIT_HEAD@
609 $(AM_V_GEN)echo '#define GIT_HEAD_ID "'@GIT_HEAD_VERSION@'"' > $@
611 install-data-local: $(srcdir)/libisl-gdb.py
612 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
613 $(builddir)/libisl.la`; \
615 '') echo Cannot find isl library name. GDB bindings not installed.;; \
616 *) echo $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \
617 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \
618 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"; \
619 $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \
620 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \
624 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
625 $(builddir)/libisl.la`; \
626 if test -n "$${libisl}"; then \
627 rm -f $(DESTDIR)$(libdir)/$$libisl-gdb.py; \