class_printer::print_method_header: virtualize class type printing
[isl.git] / Makefile.am
blob235bb3389230c1839f422bfdb20b26d96f56f2dc
1 if HAVE_CLANG
2 if HAVE_CXX11
3 MAYBE_INTERFACE = interface
4 FORCE:
5 interface/extract_interface$(BUILD_EXEEXT): FORCE
6         $(MAKE) $(AM_MAKEFLAGS) -C interface extract_interface$(BUILD_EXEEXT)
7 endif
8 endif
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
23 if HAVE_CPP_ISL_H
24   CPP_H = include/isl/cpp.h
25 if HAVE_CXX11
26   noinst_PROGRAMS += isl_test_cpp
27   TESTS += isl_test_cpp
28 endif
29 endif
30 if HAVE_CLANG
31 if HAVE_CXX11
32   noinst_PROGRAMS += isl_test_cpp-checked isl_test_cpp-checked-conversion
33   TESTS += isl_test_cpp-checked isl_test_cpp-checked-conversion
34 if HAVE_PYTHON
35   TESTS += isl_test_python.py
36   noinst_PYTHON = interface/isl.py
37   isl_test_python.py: interface/isl.py libisl.la
38 endif
39 endif
40 endif
41 TEST_EXTENSIONS = .py
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)
48 if IMATH_FOR_MP
50 MP_SRC = \
51         isl_imath.c \
52         isl_imath.h \
53         isl_int_imath.h \
54         imath_wrap/gmp_compat.h \
55         imath_wrap/imath.h \
56         imath_wrap/imrat.h \
57         imath_wrap/wrap.h \
58         imath_wrap/gmp_compat.c \
59         imath_wrap/imath.c \
60         imath_wrap/imrat.c
62 noinst_PROGRAMS += isl_test_imath
63 TESTS += isl_test_imath
65 if SMALL_INT_OPT
66 MP_SRC += isl_int_sioimath.h \
67         isl_int_sioimath.c \
68         isl_val_sioimath.c
69 else
70 MP_SRC += isl_val_imath.c
71 endif
73 MP_INCLUDE_H =
74 endif
76 if GMP_FOR_MP
77 if NEED_GET_MEMORY_FUNCTIONS
78 GET_MEMORY_FUNCTIONS=mp_get_memory_functions.c
79 endif
81 MP_SRC = \
82         $(GET_MEMORY_FUNCTIONS) \
83         isl_int_gmp.h \
84         isl_gmp.c \
85         isl_val_gmp.c
87 MP_INCLUDE_H = include/isl/val_gmp.h
88 endif
90 includes = -I. -I$(srcdir) -I$(srcdir)/include -Iinclude/
91 AM_CPPFLAGS = $(includes) @MP_CPPFLAGS@
92 AM_CFLAGS = @WARNING_FLAGS@ @MP_CFLAGS@
94 libisl_la_SOURCES = \
95         $(MP_SRC) \
96         isl_aff.c \
97         isl_aff_map.c \
98         isl_aff_private.h \
99         isl_affine_hull.c \
100         isl_arg.c \
101         isl_ast.c \
102         isl_ast_private.h \
103         isl_ast_build.c \
104         isl_ast_build_private.h \
105         isl_ast_build_expr.c \
106         isl_ast_build_expr.h \
107         isl_ast_codegen.c \
108         isl_ast_graft.c \
109         isl_ast_graft_private.h \
110         isl_basis_reduction.h \
111         basis_reduction_tab.c \
112         isl_bernstein.c \
113         isl_bernstein.h \
114         isl_blk.c \
115         isl_blk.h \
116         isl_bound.c \
117         isl_bound.h \
118         isl_box.c \
119         isl_coalesce.c \
120         isl_constraint.c \
121         isl_constraint_private.h \
122         isl_convex_hull.c \
123         isl_ctx.c \
124         isl_ctx_private.h \
125         isl_deprecated.c \
126         isl_dim_map.h \
127         isl_dim_map.c \
128         isl_equalities.c \
129         isl_equalities.h \
130         isl_factorization.c \
131         isl_factorization.h \
132         isl_farkas.c \
133         isl_ffs.c \
134         isl_flow.c \
135         isl_fold.c \
136         isl_hash.c \
137         isl_id_to_ast_expr.c \
138         isl_id_to_id.c \
139         isl_id_to_pw_aff.c \
140         isl_ilp.c \
141         isl_ilp_private.h \
142         isl_input.c \
143         isl_int.h \
144         isl_list_private.h \
145         isl_local_private.h \
146         isl_local.h \
147         isl_local.c \
148         isl_local_space_private.h \
149         isl_local_space.c \
150         isl_lp.c \
151         isl_lp_private.h \
152         isl_map.c \
153         isl_map_list.c \
154         isl_map_simplify.c \
155         isl_map_subtract.c \
156         isl_map_private.h \
157         isl_map_to_basic_set.c \
158         isl_mat.c \
159         isl_mat_private.h \
160         isl_morph.c \
161         isl_morph.h \
162         isl_id.c \
163         isl_id_private.h \
164         isl_obj.c \
165         isl_options.c \
166         isl_options_private.h \
167         isl_output.c \
168         isl_output_private.h \
169         isl_point_private.h \
170         isl_point.c \
171         isl_polynomial_private.h \
172         isl_polynomial.c \
173         isl_printer_private.h \
174         isl_printer.c \
175         print.c \
176         isl_range.c \
177         isl_range.h \
178         isl_reordering.c \
179         isl_reordering.h \
180         isl_sample.h \
181         isl_sample.c \
182         isl_scan.c \
183         isl_scan.h \
184         isl_schedule.c \
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 \
195         isl_scheduler.c \
196         isl_set_list.c \
197         isl_sort.c \
198         isl_sort.h \
199         isl_space.c \
200         isl_space_private.h \
201         isl_stream.c \
202         isl_stream_private.h \
203         isl_seq.c \
204         isl_seq.h \
205         isl_set_to_ast_graft_list.c \
206         isl_set_to_ast_graft_list.h \
207         isl_stride.c \
208         isl_tab.c \
209         isl_tab.h \
210         isl_tab_pip.c \
211         isl_tarjan.c \
212         isl_tarjan.h \
213         isl_transitive_closure.c \
214         isl_union_map.c \
215         isl_union_map_private.h \
216         isl_union_set_private.h \
217         isl_val.c \
218         isl_val_private.h \
219         isl_vec_private.h \
220         isl_vec.c \
221         isl_version.c \
222         isl_vertices_private.h \
223         isl_vertices.c \
224         isl_yaml.h
225 libisl_la_LIBADD = @MP_LIBS@
226 libisl_la_LDFLAGS = -version-info @versioninfo@ \
227         @MP_LDFLAGS@
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@
235 if IMATH_FOR_MP
236 isl_test_imath_LDFLAGS = @MP_LDFLAGS@
237 isl_test_imath_LDADD = libisl.la @MP_LIBS@
238 endif
240 isl_polyhedron_sample_LDADD = libisl.la
241 isl_polyhedron_sample_SOURCES = \
242         polyhedron_sample.c
244 isl_pip_LDFLAGS = @MP_LDFLAGS@
245 isl_pip_LDADD = libisl.la @MP_LIBS@
246 isl_pip_SOURCES = \
247         pip.c
249 isl_schedule_LDFLAGS = @MP_LDFLAGS@
250 isl_schedule_LDADD = libisl.la @MP_LIBS@
251 isl_schedule_SOURCES = \
252         schedule.c
254 isl_schedule_cmp_LDFLAGS = @MP_LDFLAGS@
255 isl_schedule_cmp_LDADD = libisl.la @MP_LIBS@
256 isl_schedule_cmp_SOURCES = \
257         schedule_cmp.c
259 isl_flow_LDFLAGS = @MP_LDFLAGS@
260 isl_flow_LDADD = libisl.la @MP_LIBS@
261 isl_flow_SOURCES = \
262         flow.c
264 isl_flow_cmp_LDFLAGS = @MP_LDFLAGS@
265 isl_flow_cmp_LDADD = libisl.la @MP_LIBS@
266 isl_flow_cmp_SOURCES = \
267         flow_cmp.c
269 isl_codegen_LDFLAGS = @MP_LDFLAGS@
270 isl_codegen_LDADD = libisl.la @MP_LIBS@
271 isl_codegen_SOURCES = \
272         codegen.c
274 isl_bound_LDFLAGS = @MP_LDFLAGS@
275 isl_bound_LDADD = libisl.la @MP_LIBS@
276 isl_bound_SOURCES = \
277         bound.c
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 = \
286         polytope_scan.c
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
293 isl_cat_SOURCES = \
294         cat.c
296 isl_closure_LDADD = libisl.la
297 isl_closure_SOURCES = \
298         closure.c
300 isl_test_cpp_SOURCES = \
301         isl_test_cpp.cc \
302         include/isl/cpp.h
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
323 if HAVE_CLANG
324 if HAVE_CXX11
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) \
355                 libdep.a \
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)
365 endif
366 endif
368 nodist_pkginclude_HEADERS = \
369         include/isl/stdint.h
370 pkginclude_HEADERS = \
371         $(CPP_H) \
372         $(MP_INCLUDE_H) \
373         include/isl/aff.h \
374         include/isl/aff_type.h \
375         include/isl/arg.h \
376         include/isl/ast.h \
377         include/isl/ast_type.h \
378         include/isl/ast_build.h \
379         include/isl/constraint.h \
380         include/isl/ctx.h \
381         include/isl/fixed_box.h \
382         include/isl/flow.h \
383         include/isl/id.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 \
388         include/isl/ilp.h \
389         include/isl/hash.h \
390         include/isl/hmap.h \
391         include/isl/hmap_templ.c \
392         include/isl/list.h \
393         include/isl/local_space.h \
394         include/isl/lp.h \
395         include/isl/mat.h \
396         include/isl/map.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 \
406         include/isl/obj.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 \
416         include/isl/set.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 \
426         include/isl/val.h \
427         include/isl/val_type.h \
428         include/isl/vec.h \
429         include/isl/version.h \
430         include/isl/vertices.h
432 if HAVE_CLANG
433 if HAVE_CXX11
434     CPP_INTERFACES = \
435         include/isl/cpp.h \
436         include/isl/cpp-checked.h \
437         include/isl/cpp-checked-conversion.h
438 endif
439 endif
440 BUILT_SOURCES = gitversion.h $(CPP_INTERFACES)
441 CLEANFILES = \
442         gitversion.h \
443         interface/isldlname.py \
444         interface/isl.py \
445         interface/isl.pyc \
446         $(CPP_INTERFACES)
448 DISTCLEANFILES = \
449         isl-uninstalled.sh \
450         isl-uninstalled.pc \
451         isl.pc \
452         isl.pc.in \
453         include/isl/stdint.h
455 EXTRA_DIST = \
456         LICENSE \
457         isl_config_post.h \
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 \
463         bset_to_bmap.c \
464         bset_from_bmap.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 \
472         extract_key.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 \
477         isl_list_macro.h \
478         isl_list_templ.c \
479         isl_list_templ.h \
480         isl_map_bound_templ.c \
481         isl_map_lexopt_templ.c \
482         isl_maybe_ast_graft_list.h \
483         isl_maybe_map.h \
484         isl_multi_macro.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 \
491         isl_multi_templ.c \
492         isl_multi_templ.h \
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 \
502         isl_multi_cmp.c \
503         isl_multi_coalesce.c \
504         isl_multi_dim_id_templ.c \
505         isl_multi_dims.c \
506         isl_multi_domain_templ.c \
507         isl_multi_floor.c \
508         isl_multi_from_base_templ.c \
509         isl_multi_gist.c \
510         isl_multi_hash.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 \
528         opt_type.h \
529         print_templ.c \
530         print_templ_yaml.c \
531         print_yaml_field_templ.c \
532         isl_power_templ.c \
533         isl_project_out_all_params_templ.c \
534         isl_pw_macro.h \
535         isl_pw_templ.c \
536         isl_pw_templ.h \
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 \
541         isl_pw_eval.c \
542         isl_pw_hash.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 \
549         isl_pw_neg_templ.c \
550         isl_pw_opt_templ.c \
551         isl_pw_pullback_templ.c \
552         isl_pw_range_tuple_id_templ.c \
553         isl_pw_sub_templ.c \
554         isl_pw_union_opt.c \
555         read_in_string_templ.c \
556         set_to_map.c \
557         set_from_map.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 \
567         uset_to_umap.c \
568         uset_from_umap.c \
569         isl_union_macro.h \
570         isl_union_templ.c \
571         isl_union_single.c \
572         isl_union_multi.c \
573         isl_union_eval.c \
574         isl_union_locals_templ.c \
575         isl_union_map_lex_templ.c \
576         isl_union_neg.c \
577         isl_union_pw_templ.c \
578         libisl-gdb.py \
579         doc/CodingStyle \
580         doc/SubmittingPatches \
581         doc/implementation.tex \
582         doc/isl.bib \
583         doc/mypod2latex \
584         doc/manual.tex \
585         doc/reading.tex \
586         doc/user.pod \
587         imath/gmp_compat.c \
588         imath/gmp_compat.h \
589         imath/imath.c \
590         imath/imath.h \
591         imath/imrat.c \
592         imath/imrat.h \
593         all.h \
594         cpp \
595         python \
596         isl_test_cpp-generic.cc \
597         isl_test_python.py \
598         test_inputs
600 dist-hook:
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`; \
614         case $$libisl in \
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; \
621         esac
623 uninstall-local:
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; \
628         fi