1if HAVE_CLANG 2MAYBE_INTERFACE = interface 3FORCE: 4interface/extract_interface: FORCE 5 $(MAKE) $(AM_MAKEFLAGS) -C interface extract_interface 6endif 7SUBDIRS = . $(MAYBE_INTERFACE) doc 8DIST_SUBDIRS = $(MAYBE_INTERFACE) doc 9 10ACLOCAL_AMFLAGS = -I m4 11AUTOMAKE_OPTIONS = nostdinc subdir-objects 12 13lib_LTLIBRARIES = libisl.la 14noinst_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 19TESTS = isl_test codegen_test.sh pip_test.sh bound_test.sh isl_test_int \ 20 flow_test.sh schedule_test.sh 21if HAVE_CPP_ISL_H 22 CPP_H = include/isl/cpp.h 23if HAVE_CXX11 24 noinst_PROGRAMS += isl_test_cpp 25 TESTS += isl_test_cpp 26endif 27endif 28if HAVE_CLANG 29if HAVE_CXX11 30 noinst_PROGRAMS += isl_test_cpp-checked isl_test_cpp-checked-conversion 31 TESTS += isl_test_cpp-checked isl_test_cpp-checked-conversion 32endif 33if HAVE_PYTHON 34 TESTS += isl_test_python.py 35 isl_test_python.py: interface/isl.py libisl.la 36endif 37endif 38TEST_EXTENSIONS = .py 39AM_TESTS_ENVIRONMENT = \ 40 export PYTHONPATH=interface; \ 41 export LD_LIBRARY_PATH=.libs; 42PY_LOG_COMPILER = $(PYTHON) 43 44if IMATH_FOR_MP 45 46MP_SRC = \ 47 isl_imath.c \ 48 isl_imath.h \ 49 isl_int_imath.h \ 50 imath_wrap/gmp_compat.h \ 51 imath_wrap/imath.h \ 52 imath_wrap/imrat.h \ 53 imath_wrap/wrap.h \ 54 imath_wrap/gmp_compat.c \ 55 imath_wrap/imath.c \ 56 imath_wrap/imrat.c 57 58noinst_PROGRAMS += isl_test_imath 59TESTS += isl_test_imath 60 61if SMALL_INT_OPT 62MP_SRC += isl_int_sioimath.h \ 63 isl_int_sioimath.c \ 64 isl_val_sioimath.c 65else 66MP_SRC += isl_val_imath.c 67endif 68 69MP_INCLUDE_H = 70endif 71 72if GMP_FOR_MP 73if NEED_GET_MEMORY_FUNCTIONS 74GET_MEMORY_FUNCTIONS=mp_get_memory_functions.c 75endif 76 77MP_SRC = \ 78 $(GET_MEMORY_FUNCTIONS) \ 79 isl_int_gmp.h \ 80 isl_gmp.c \ 81 isl_val_gmp.c 82 83MP_INCLUDE_H = include/isl/val_gmp.h 84endif 85 86includes = -I. -I$(srcdir) -I$(srcdir)/include -Iinclude/ 87AM_CPPFLAGS = $(includes) @MP_CPPFLAGS@ 88AM_CFLAGS = @WARNING_FLAGS@ 89 90libisl_la_SOURCES = \ 91 $(MP_SRC) \ 92 isl_aff.c \ 93 isl_aff_map.c \ 94 isl_aff_private.h \ 95 isl_affine_hull.c \ 96 isl_arg.c \ 97 isl_ast.c \ 98 isl_ast_private.h \ 99 isl_ast_build.c \ 100 isl_ast_build_private.h \ 101 isl_ast_build_expr.c \ 102 isl_ast_build_expr.h \ 103 isl_ast_codegen.c \ 104 isl_ast_graft.c \ 105 isl_ast_graft_private.h \ 106 isl_basis_reduction.h \ 107 basis_reduction_tab.c \ 108 isl_bernstein.c \ 109 isl_bernstein.h \ 110 isl_blk.c \ 111 isl_blk.h \ 112 isl_bound.c \ 113 isl_bound.h \ 114 isl_box.c \ 115 isl_coalesce.c \ 116 isl_constraint.c \ 117 isl_constraint_private.h \ 118 isl_convex_hull.c \ 119 isl_ctx.c \ 120 isl_ctx_private.h \ 121 isl_deprecated.c \ 122 isl_dim_map.h \ 123 isl_dim_map.c \ 124 isl_equalities.c \ 125 isl_equalities.h \ 126 isl_factorization.c \ 127 isl_factorization.h \ 128 isl_farkas.c \ 129 isl_ffs.c \ 130 isl_flow.c \ 131 isl_fold.c \ 132 isl_hash.c \ 133 isl_hash_private.h \ 134 isl_id_to_ast_expr.c \ 135 isl_id_to_id.c \ 136 isl_id_to_pw_aff.c \ 137 isl_ilp.c \ 138 isl_ilp_private.h \ 139 isl_input.c \ 140 isl_int.h \ 141 isl_local.h \ 142 isl_local.c \ 143 isl_local_space_private.h \ 144 isl_local_space.c \ 145 isl_lp.c \ 146 isl_lp_private.h \ 147 isl_map.c \ 148 isl_map_list.c \ 149 isl_map_simplify.c \ 150 isl_map_subtract.c \ 151 isl_map_private.h \ 152 isl_map_to_basic_set.c \ 153 isl_mat.c \ 154 isl_mat_private.h \ 155 isl_morph.c \ 156 isl_morph.h \ 157 isl_id.c \ 158 isl_id_private.h \ 159 isl_obj.c \ 160 isl_options.c \ 161 isl_options_private.h \ 162 isl_output.c \ 163 isl_output_private.h \ 164 isl_point_private.h \ 165 isl_point.c \ 166 isl_polynomial_private.h \ 167 isl_polynomial.c \ 168 isl_printer_private.h \ 169 isl_printer.c \ 170 print.c \ 171 isl_range.c \ 172 isl_range.h \ 173 isl_reordering.c \ 174 isl_reordering.h \ 175 isl_sample.h \ 176 isl_sample.c \ 177 isl_scan.c \ 178 isl_scan.h \ 179 isl_schedule.c \ 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 \ 190 isl_scheduler.c \ 191 isl_set_list.c \ 192 isl_sort.c \ 193 isl_sort.h \ 194 isl_space.c \ 195 isl_space_private.h \ 196 isl_stream.c \ 197 isl_stream_private.h \ 198 isl_seq.c \ 199 isl_seq.h \ 200 isl_stride.c \ 201 isl_tab.c \ 202 isl_tab.h \ 203 isl_tab_pip.c \ 204 isl_tarjan.c \ 205 isl_tarjan.h \ 206 isl_transitive_closure.c \ 207 isl_union_map.c \ 208 isl_union_map_private.h \ 209 isl_union_set_private.h \ 210 isl_val.c \ 211 isl_val_private.h \ 212 isl_vec_private.h \ 213 isl_vec.c \ 214 isl_version.c \ 215 isl_vertices_private.h \ 216 isl_vertices.c \ 217 isl_yaml.h 218libisl_la_LIBADD = @MP_LIBS@ 219libisl_la_LDFLAGS = -version-info @versioninfo@ \ 220 @MP_LDFLAGS@ 221 222isl_test_LDFLAGS = @MP_LDFLAGS@ 223isl_test_LDADD = libisl.la @MP_LIBS@ 224 225isl_test_int_LDFLAGS = @MP_LDFLAGS@ 226isl_test_int_LDADD = libisl.la @MP_LIBS@ 227 228if IMATH_FOR_MP 229isl_test_imath_LDFLAGS = @MP_LDFLAGS@ 230isl_test_imath_LDADD = libisl.la @MP_LIBS@ 231endif 232 233isl_polyhedron_sample_LDADD = libisl.la 234isl_polyhedron_sample_SOURCES = \ 235 polyhedron_sample.c 236 237isl_pip_LDFLAGS = @MP_LDFLAGS@ 238isl_pip_LDADD = libisl.la @MP_LIBS@ 239isl_pip_SOURCES = \ 240 pip.c 241 242isl_schedule_LDFLAGS = @MP_LDFLAGS@ 243isl_schedule_LDADD = libisl.la @MP_LIBS@ 244isl_schedule_SOURCES = \ 245 schedule.c 246 247isl_schedule_cmp_LDFLAGS = @MP_LDFLAGS@ 248isl_schedule_cmp_LDADD = libisl.la @MP_LIBS@ 249isl_schedule_cmp_SOURCES = \ 250 schedule_cmp.c 251 252isl_flow_LDFLAGS = @MP_LDFLAGS@ 253isl_flow_LDADD = libisl.la @MP_LIBS@ 254isl_flow_SOURCES = \ 255 flow.c 256 257isl_flow_cmp_LDFLAGS = @MP_LDFLAGS@ 258isl_flow_cmp_LDADD = libisl.la @MP_LIBS@ 259isl_flow_cmp_SOURCES = \ 260 flow_cmp.c 261 262isl_codegen_LDFLAGS = @MP_LDFLAGS@ 263isl_codegen_LDADD = libisl.la @MP_LIBS@ 264isl_codegen_SOURCES = \ 265 codegen.c 266 267isl_bound_LDFLAGS = @MP_LDFLAGS@ 268isl_bound_LDADD = libisl.la @MP_LIBS@ 269isl_bound_SOURCES = \ 270 bound.c 271 272isl_polyhedron_minimize_LDFLAGS = @MP_LDFLAGS@ 273isl_polyhedron_minimize_LDADD = libisl.la @MP_LIBS@ 274isl_polyhedron_minimize_SOURCES = \ 275 polyhedron_minimize.c 276 277isl_polytope_scan_LDADD = libisl.la 278isl_polytope_scan_SOURCES = \ 279 polytope_scan.c 280 281isl_polyhedron_detect_equalities_LDADD = libisl.la 282isl_polyhedron_detect_equalities_SOURCES = \ 283 polyhedron_detect_equalities.c 284 285isl_cat_LDADD = libisl.la 286isl_cat_SOURCES = \ 287 cat.c 288 289isl_closure_LDADD = libisl.la 290isl_closure_SOURCES = \ 291 closure.c 292 293isl_test_cpp_CXXFLAGS = @CXX11FLAGS@ 294isl_test_cpp_SOURCES = \ 295 isl_test_cpp.cc \ 296 include/isl/cpp.h 297isl_test_cpp_LDFLAGS = @MP_LDFLAGS@ 298isl_test_cpp_LDADD = libisl.la @MP_LIBS@ 299 300isl_test_cpp_checked_CXXFLAGS = @CXX11FLAGS@ 301isl_test_cpp_checked_SOURCES = \ 302 isl_test_cpp-checked.cc \ 303 include/isl/cpp-checked.h 304isl_test_cpp_checked_LDFLAGS = @MP_LDFLAGS@ 305isl_test_cpp_checked_LDADD = libisl.la @MP_LIBS@ 306 307isl_test_cpp_checked_conversion_CXXFLAGS = @CXX11FLAGS@ 308isl_test_cpp_checked_conversion_SOURCES = \ 309 isl_test_cpp-checked-conversion.cc \ 310 include/isl/cpp-checked-conversion.h 311isl_test_cpp_checked_conversion_LDFLAGS = @MP_LDFLAGS@ 312isl_test_cpp_checked_conversion_LDADD = libisl.la @MP_LIBS@ 313 314# dummy library that captures the dependencies on all headers 315# that are relevant for the bindings 316noinst_LIBRARIES = libdep.a 317libdep_a_SOURCES = all.c 318 319if HAVE_CLANG 320interface/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) 325 326include/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) 335 336include/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) 346 347include/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) 356endif 357 358nodist_pkginclude_HEADERS = \ 359 include/isl/stdint.h 360pkginclude_HEADERS = \ 361 $(CPP_H) \ 362 $(MP_INCLUDE_H) \ 363 include/isl/aff.h \ 364 include/isl/aff_type.h \ 365 include/isl/arg.h \ 366 include/isl/ast.h \ 367 include/isl/ast_type.h \ 368 include/isl/ast_build.h \ 369 include/isl/constraint.h \ 370 include/isl/ctx.h \ 371 include/isl/fixed_box.h \ 372 include/isl/flow.h \ 373 include/isl/id.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 \ 378 include/isl/ilp.h \ 379 include/isl/hash.h \ 380 include/isl/hmap.h \ 381 include/isl/hmap_templ.c \ 382 include/isl/list.h \ 383 include/isl/local_space.h \ 384 include/isl/lp.h \ 385 include/isl/mat.h \ 386 include/isl/map.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 \ 396 include/isl/obj.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 \ 406 include/isl/set.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 \ 416 include/isl/val.h \ 417 include/isl/val_type.h \ 418 include/isl/vec.h \ 419 include/isl/version.h \ 420 include/isl/vertices.h 421 422if HAVE_CLANG 423 CPP_INTERFACES = \ 424 include/isl/cpp.h \ 425 include/isl/cpp-checked.h \ 426 include/isl/cpp-checked-conversion.h 427endif 428BUILT_SOURCES = gitversion.h $(CPP_INTERFACES) 429CLEANFILES = gitversion.h interface/isl.py $(CPP_INTERFACES) 430 431DISTCLEANFILES = \ 432 isl-uninstalled.sh \ 433 isl-uninstalled.pc \ 434 isl.pc \ 435 isl.pc.in \ 436 include/isl/stdint.h 437 438EXTRA_DIST = \ 439 LICENSE \ 440 isl_config_post.h \ 441 basis_reduction_templ.c \ 442 bset_to_bmap.c \ 443 bset_from_bmap.c \ 444 extract_key.c \ 445 isl_list_templ.c \ 446 isl_list_templ.h \ 447 isl_map_lexopt_templ.c \ 448 isl_maybe_map.h \ 449 isl_multi_macro.h \ 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 \ 454 isl_multi_templ.c \ 455 isl_multi_templ.h \ 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 \ 462 isl_multi_cmp.c \ 463 isl_multi_coalesce.c \ 464 isl_multi_dims.c \ 465 isl_multi_floor.c \ 466 isl_multi_gist.c \ 467 isl_multi_hash.c \ 468 isl_multi_intersect.c \ 469 print_templ.c \ 470 print_templ_yaml.c \ 471 isl_power_templ.c \ 472 isl_pw_macro.h \ 473 isl_pw_templ.c \ 474 isl_pw_templ.h \ 475 isl_pw_eval.c \ 476 isl_pw_hash.c \ 477 isl_pw_union_opt.c \ 478 read_in_string_templ.c \ 479 set_to_map.c \ 480 set_from_map.c \ 481 set_list_from_map_list_inl.c \ 482 isl_tab_lexopt_templ.c \ 483 uset_to_umap.c \ 484 uset_from_umap.c \ 485 isl_union_macro.h \ 486 isl_union_templ.c \ 487 isl_union_single.c \ 488 isl_union_multi.c \ 489 isl_union_eval.c \ 490 isl_union_neg.c \ 491 libisl-gdb.py \ 492 doc/CodingStyle \ 493 doc/SubmittingPatches \ 494 doc/implementation.tex \ 495 doc/isl.bib \ 496 doc/mypod2latex \ 497 doc/manual.tex \ 498 doc/reading.tex \ 499 doc/user.pod \ 500 imath/gmp_compat.c \ 501 imath/gmp_compat.h \ 502 imath/imath.c \ 503 imath/imath.h \ 504 imath/imrat.c \ 505 imath/imrat.h \ 506 all.h \ 507 cpp \ 508 python \ 509 isl_test_cpp-generic.cc \ 510 isl_test_python.py \ 511 test_inputs 512 513if HAVE_CLANG 514dist-hook: interface/isl.py 515 cp interface/isl.py $(distdir)/interface/ 516else 517dist-hook: 518endif 519 echo @GIT_HEAD_VERSION@ > $(distdir)/GIT_HEAD_ID 520 (cd doc; make manual.pdf) 521 cp doc/manual.pdf $(distdir)/doc/ 522 523pkgconfigdir=$(pkgconfig_libdir) 524pkgconfig_DATA = $(pkgconfig_libfile) 525 526gitversion.h: @GIT_HEAD@ 527 $(AM_V_GEN)echo '#define GIT_HEAD_ID "'@GIT_HEAD_VERSION@'"' > $@ 528 529install-data-local: $(srcdir)/libisl-gdb.py 530 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ 531 $(builddir)/libisl.la`; \ 532 case $$libisl in \ 533 '') echo Cannot find isl library name. GDB bindings not installed.;; \ 534 *) echo $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \ 535 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \ 536 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"; \ 537 $(INSTALL_DATA) $(srcdir)/libisl-gdb.py \ 538 $(DESTDIR)$(libdir)/$$libisl-gdb.py; \ 539 esac 540 541uninstall-local: 542 @libisl=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ 543 $(builddir)/libisl.la`; \ 544 if test -n "$${libisl}"; then \ 545 rm -f $(DESTDIR)$(libdir)/$$libisl-gdb.py; \ 546 fi 547