0bbc49e134898f22eb1765597ec598ca20fe951f
[cvc5.git] / src / Makefile.am
1 # LIBCVC4_VERSION (-version-info) is in the form current:revision:age
2 #
3 # current -
4 # increment if interfaces have been added, removed or changed
5 # revision -
6 # increment if source code has changed
7 # set to zero if current is incremented
8 # age -
9 # increment if interfaces have been added
10 # set to zero if interfaces have been removed
11 # or changed
12 #
13 LIBCVC4_VERSION = @CVC4_LIBRARY_VERSION@
14
15 AM_CPPFLAGS = \
16 -D__BUILDING_CVC4LIB \
17 -D __STDC_LIMIT_MACROS \
18 -D __STDC_FORMAT_MACROS \
19 -I@builddir@ -I@srcdir@/include -I@srcdir@
20 AM_CXXFLAGS = -Wall -Wno-unknown-pragmas -Wno-parentheses $(FLAG_VISIBILITY_HIDDEN)
21
22 SUBDIRS = lib options expr util prop/minisat prop/bvminisat . parser compat bindings main
23 THEORIES = builtin booleans uf arith bv arrays datatypes quantifiers rewriterules idl strings
24
25 lib_LTLIBRARIES = libcvc4.la
26
27 libcvc4_la_LDFLAGS = -version-info $(LIBCVC4_VERSION)
28
29 # This "tricks" automake into linking us as a C++ library (rather than
30 # as a C library, which messes up exception handling support)
31 nodist_EXTRA_libcvc4_la_SOURCES = dummy.cpp
32 libcvc4_la_SOURCES = \
33 git_versioninfo.cpp \
34 svn_versioninfo.cpp \
35 context/context.cpp \
36 context/context.h \
37 context/context_mm.cpp \
38 context/context_mm.h \
39 context/cdo.h \
40 context/cdlist.h \
41 context/cdchunk_list.h \
42 context/cdlist_forward.h \
43 context/cdqueue.h \
44 context/cdtrail_queue.h \
45 context/cdtrail_hashmap.h \
46 context/cdtrail_hashmap_forward.h \
47 context/cdinsert_hashmap.h \
48 context/cdinsert_hashmap_forward.h \
49 context/cdhashmap.h \
50 context/cdhashmap_forward.h \
51 context/cdhashset.h \
52 context/cdhashset_forward.h \
53 context/cdvector.h \
54 context/cdmaybe.h \
55 context/stacking_map.h \
56 context/stacking_vector.h \
57 context/cddense_set.h \
58 decision/decision_mode.h \
59 decision/decision_mode.cpp \
60 decision/decision_engine.h \
61 decision/decision_engine.cpp \
62 decision/decision_strategy.h \
63 decision/justification_heuristic.h \
64 decision/justification_heuristic.cpp \
65 decision/options_handlers.h \
66 printer/printer.h \
67 printer/printer.cpp \
68 printer/dagification_visitor.h \
69 printer/dagification_visitor.cpp \
70 printer/model_format_mode.h \
71 printer/model_format_mode.cpp \
72 printer/ast/ast_printer.h \
73 printer/ast/ast_printer.cpp \
74 printer/smt1/smt1_printer.h \
75 printer/smt1/smt1_printer.cpp \
76 printer/smt2/smt2_printer.h \
77 printer/smt2/smt2_printer.cpp \
78 printer/cvc/cvc_printer.h \
79 printer/cvc/cvc_printer.cpp \
80 printer/tptp/tptp_printer.h \
81 printer/tptp/tptp_printer.cpp \
82 printer/options_handlers.h \
83 proof/proof.h \
84 proof/sat_proof.h \
85 proof/sat_proof.cpp \
86 proof/cnf_proof.h \
87 proof/cnf_proof.cpp \
88 proof/theory_proof.h \
89 proof/theory_proof.cpp \
90 proof/proof_manager.h \
91 proof/proof_manager.cpp \
92 prop/registrar.h \
93 prop/prop_engine.cpp \
94 prop/prop_engine.h \
95 prop/theory_proxy.h \
96 prop/theory_proxy.cpp \
97 prop/cnf_stream.h \
98 prop/cnf_stream.cpp \
99 prop/sat_solver.h \
100 prop/sat_solver_types.h \
101 prop/sat_solver_factory.h \
102 prop/sat_solver_factory.cpp \
103 prop/sat_solver_registry.h \
104 prop/sat_solver_registry.cpp \
105 prop/options_handlers.h \
106 smt/smt_engine.cpp \
107 smt/smt_engine.h \
108 smt/model_postprocessor.cpp \
109 smt/model_postprocessor.h \
110 smt/smt_engine_scope.cpp \
111 smt/smt_engine_scope.h \
112 smt/command_list.cpp \
113 smt/command_list.h \
114 smt/modal_exception.h \
115 smt/boolean_terms.h \
116 smt/boolean_terms.cpp \
117 smt/logic_exception.h \
118 smt/simplification_mode.h \
119 smt/simplification_mode.cpp \
120 smt/options_handlers.h \
121 theory/decision_attributes.h \
122 theory/logic_info.h \
123 theory/logic_info.cpp \
124 theory/output_channel.h \
125 theory/interrupted.h \
126 theory/type_enumerator.h \
127 theory/theory_engine.h \
128 theory/theory_engine.cpp \
129 theory/theory_test_utils.h \
130 theory/theory.h \
131 theory/theory.cpp \
132 theory/theoryof_mode.h \
133 theory/theory_registrar.h \
134 theory/rewriter.h \
135 theory/rewriter_attributes.h \
136 theory/rewriter.cpp \
137 theory/substitutions.h \
138 theory/substitutions.cpp \
139 theory/valuation.h \
140 theory/valuation.cpp \
141 theory/shared_terms_database.h \
142 theory/shared_terms_database.cpp \
143 theory/term_registration_visitor.h \
144 theory/term_registration_visitor.cpp \
145 theory/ite_simplifier.h \
146 theory/ite_simplifier.cpp \
147 theory/unconstrained_simplifier.h \
148 theory/unconstrained_simplifier.cpp \
149 theory/quantifiers_engine.h \
150 theory/quantifiers_engine.cpp \
151 theory/model.h \
152 theory/model.cpp \
153 theory/rep_set.h \
154 theory/rep_set.cpp \
155 theory/atom_requests.h \
156 theory/atom_requests.cpp \
157 theory/options_handlers.h \
158 theory/uf/theory_uf.h \
159 theory/uf/theory_uf.cpp \
160 theory/uf/theory_uf_type_rules.h \
161 theory/uf/theory_uf_rewriter.h \
162 theory/uf/equality_engine.h \
163 theory/uf/equality_engine_types.h \
164 theory/uf/equality_engine.cpp \
165 theory/uf/symmetry_breaker.h \
166 theory/uf/symmetry_breaker.cpp \
167 theory/uf/theory_uf_strong_solver.h \
168 theory/uf/theory_uf_strong_solver.cpp \
169 theory/uf/theory_uf_model.h \
170 theory/uf/theory_uf_model.cpp \
171 theory/uf/options_handlers.h \
172 theory/bv/theory_bv_utils.h \
173 theory/bv/type_enumerator.h \
174 theory/bv/bitblaster.h \
175 theory/bv/bitblaster.cpp \
176 theory/bv/bv_to_bool.h \
177 theory/bv/bv_to_bool.cpp \
178 theory/bv/bv_subtheory.h \
179 theory/bv/bv_subtheory_core.h \
180 theory/bv/bv_subtheory_core.cpp \
181 theory/bv/bv_subtheory_bitblast.h \
182 theory/bv/bv_subtheory_bitblast.cpp \
183 theory/bv/bv_subtheory_inequality.h \
184 theory/bv/bv_subtheory_inequality.cpp \
185 theory/bv/bv_inequality_graph.h \
186 theory/bv/bv_inequality_graph.cpp \
187 theory/bv/bitblast_strategies.h \
188 theory/bv/bitblast_strategies.cpp \
189 theory/bv/slicer.h \
190 theory/bv/slicer.cpp \
191 theory/bv/theory_bv.h \
192 theory/bv/theory_bv.cpp \
193 theory/bv/theory_bv_rewrite_rules.h \
194 theory/bv/theory_bv_rewrite_rules_core.h \
195 theory/bv/theory_bv_rewrite_rules_operator_elimination.h \
196 theory/bv/theory_bv_rewrite_rules_constant_evaluation.h \
197 theory/bv/theory_bv_rewrite_rules_normalization.h \
198 theory/bv/theory_bv_rewrite_rules_simplification.h \
199 theory/bv/theory_bv_type_rules.h \
200 theory/bv/theory_bv_rewriter.h \
201 theory/bv/theory_bv_rewriter.cpp \
202 theory/bv/cd_set_collection.h \
203 theory/idl/idl_model.h \
204 theory/idl/idl_model.cpp \
205 theory/idl/idl_assertion.h \
206 theory/idl/idl_assertion.cpp \
207 theory/idl/idl_assertion_db.h \
208 theory/idl/idl_assertion_db.cpp \
209 theory/idl/theory_idl.h \
210 theory/idl/theory_idl.cpp \
211 theory/builtin/theory_builtin_type_rules.h \
212 theory/builtin/type_enumerator.h \
213 theory/builtin/theory_builtin_rewriter.h \
214 theory/builtin/theory_builtin_rewriter.cpp \
215 theory/builtin/theory_builtin.h \
216 theory/builtin/theory_builtin.cpp \
217 theory/datatypes/theory_datatypes_type_rules.h \
218 theory/datatypes/type_enumerator.h \
219 theory/datatypes/theory_datatypes.h \
220 theory/datatypes/datatypes_rewriter.h \
221 theory/datatypes/theory_datatypes.cpp \
222 theory/strings/theory_strings.h \
223 theory/strings/theory_strings.cpp \
224 theory/strings/theory_strings_rewriter.h \
225 theory/strings/theory_strings_rewriter.cpp \
226 theory/strings/theory_strings_type_rules.h \
227 theory/strings/type_enumerator.h \
228 theory/strings/theory_strings_preprocess.h \
229 theory/strings/theory_strings_preprocess.cpp \
230 theory/strings/regexp_operation.cpp \
231 theory/strings/regexp_operation.h \
232 theory/arrays/theory_arrays_type_rules.h \
233 theory/arrays/type_enumerator.h \
234 theory/arrays/theory_arrays_rewriter.h \
235 theory/arrays/theory_arrays_rewriter.cpp \
236 theory/arrays/theory_arrays.h \
237 theory/arrays/theory_arrays.cpp \
238 theory/arrays/union_find.h \
239 theory/arrays/union_find.cpp \
240 theory/arrays/array_info.h \
241 theory/arrays/array_info.cpp \
242 theory/arrays/static_fact_manager.h \
243 theory/arrays/static_fact_manager.cpp \
244 theory/quantifiers/theory_quantifiers_type_rules.h \
245 theory/quantifiers/theory_quantifiers.h \
246 theory/quantifiers/quantifiers_rewriter.h \
247 theory/quantifiers/quantifiers_rewriter.cpp \
248 theory/quantifiers/theory_quantifiers.cpp \
249 theory/quantifiers/instantiation_engine.h \
250 theory/quantifiers/instantiation_engine.cpp \
251 theory/quantifiers/trigger.h \
252 theory/quantifiers/trigger.cpp \
253 theory/quantifiers/candidate_generator.h \
254 theory/quantifiers/candidate_generator.cpp \
255 theory/quantifiers/inst_match.h \
256 theory/quantifiers/inst_match.cpp \
257 theory/quantifiers/model_engine.h \
258 theory/quantifiers/model_engine.cpp \
259 theory/quantifiers/modes.cpp \
260 theory/quantifiers/modes.h \
261 theory/quantifiers/term_database.h \
262 theory/quantifiers/term_database.cpp \
263 theory/quantifiers/first_order_model.h \
264 theory/quantifiers/first_order_model.cpp \
265 theory/quantifiers/model_builder.h \
266 theory/quantifiers/model_builder.cpp \
267 theory/quantifiers/quantifiers_attributes.h \
268 theory/quantifiers/quantifiers_attributes.cpp \
269 theory/quantifiers/inst_gen.h \
270 theory/quantifiers/inst_gen.cpp \
271 theory/quantifiers/quant_util.h \
272 theory/quantifiers/quant_util.cpp \
273 theory/quantifiers/inst_match_generator.h \
274 theory/quantifiers/inst_match_generator.cpp \
275 theory/quantifiers/macros.h \
276 theory/quantifiers/macros.cpp \
277 theory/quantifiers/inst_strategy_e_matching.h \
278 theory/quantifiers/inst_strategy_e_matching.cpp \
279 theory/quantifiers/inst_strategy_cbqi.h \
280 theory/quantifiers/inst_strategy_cbqi.cpp \
281 theory/quantifiers/full_model_check.h \
282 theory/quantifiers/full_model_check.cpp \
283 theory/quantifiers/bounded_integers.h \
284 theory/quantifiers/bounded_integers.cpp \
285 theory/quantifiers/first_order_reasoning.h \
286 theory/quantifiers/first_order_reasoning.cpp \
287 theory/quantifiers/rewrite_engine.h \
288 theory/quantifiers/rewrite_engine.cpp \
289 theory/quantifiers/relevant_domain.h \
290 theory/quantifiers/relevant_domain.cpp \
291 theory/quantifiers/symmetry_breaking.h \
292 theory/quantifiers/symmetry_breaking.cpp \
293 theory/quantifiers/options_handlers.h \
294 theory/rewriterules/theory_rewriterules_rules.h \
295 theory/rewriterules/theory_rewriterules_rules.cpp \
296 theory/rewriterules/theory_rewriterules.h \
297 theory/rewriterules/theory_rewriterules.cpp \
298 theory/rewriterules/theory_rewriterules_rewriter.h \
299 theory/rewriterules/theory_rewriterules_type_rules.h \
300 theory/rewriterules/theory_rewriterules_preprocess.h \
301 theory/rewriterules/theory_rewriterules_params.h \
302 theory/rewriterules/rr_inst_match.h \
303 theory/rewriterules/rr_inst_match_impl.h \
304 theory/rewriterules/rr_inst_match.cpp \
305 theory/rewriterules/rr_trigger.h \
306 theory/rewriterules/rr_trigger.cpp \
307 theory/rewriterules/rr_candidate_generator.h \
308 theory/rewriterules/rr_candidate_generator.cpp \
309 theory/rewriterules/efficient_e_matching.h \
310 theory/rewriterules/efficient_e_matching.cpp \
311 theory/arith/theory_arith_type_rules.h \
312 theory/arith/type_enumerator.h \
313 theory/arith/arithvar.h \
314 theory/arith/arithvar.cpp \
315 theory/arith/bound_counts.h \
316 theory/arith/arith_rewriter.h \
317 theory/arith/arith_rewriter.cpp \
318 theory/arith/arith_static_learner.h \
319 theory/arith/arith_static_learner.cpp \
320 theory/arith/constraint_forward.h \
321 theory/arith/constraint.h \
322 theory/arith/constraint.cpp \
323 theory/arith/congruence_manager.h \
324 theory/arith/congruence_manager.cpp \
325 theory/arith/normal_form.h\
326 theory/arith/normal_form.cpp \
327 theory/arith/arith_utilities.h \
328 theory/arith/delta_rational.h \
329 theory/arith/delta_rational.cpp \
330 theory/arith/partial_model.h \
331 theory/arith/partial_model.cpp \
332 theory/arith/linear_equality.h \
333 theory/arith/linear_equality.cpp \
334 theory/arith/simplex_update.h \
335 theory/arith/simplex_update.cpp \
336 theory/arith/callbacks.h \
337 theory/arith/callbacks.cpp \
338 theory/arith/matrix.h \
339 theory/arith/matrix.cpp \
340 theory/arith/tableau.h \
341 theory/arith/tableau.cpp \
342 theory/arith/tableau_sizes.h \
343 theory/arith/tableau_sizes.cpp \
344 theory/arith/error_set.h \
345 theory/arith/error_set.cpp \
346 theory/arith/simplex.h \
347 theory/arith/simplex.cpp \
348 theory/arith/dual_simplex.h \
349 theory/arith/dual_simplex.cpp \
350 theory/arith/fc_simplex.h \
351 theory/arith/fc_simplex.cpp \
352 theory/arith/soi_simplex.h \
353 theory/arith/soi_simplex.cpp \
354 theory/arith/approx_simplex.h \
355 theory/arith/approx_simplex.cpp \
356 theory/arith/attempt_solution_simplex.h \
357 theory/arith/attempt_solution_simplex.cpp \
358 theory/arith/theory_arith.h \
359 theory/arith/theory_arith.cpp \
360 theory/arith/theory_arith_private_forward.h \
361 theory/arith/theory_arith_private.h \
362 theory/arith/theory_arith_private.cpp \
363 theory/arith/dio_solver.h \
364 theory/arith/dio_solver.cpp \
365 theory/arith/arith_heuristic_pivot_rule.h \
366 theory/arith/arith_heuristic_pivot_rule.cpp \
367 theory/arith/arith_unate_lemma_mode.h \
368 theory/arith/arith_unate_lemma_mode.cpp \
369 theory/arith/arith_propagation_mode.h \
370 theory/arith/arith_propagation_mode.cpp \
371 theory/arith/options_handlers.h \
372 theory/booleans/type_enumerator.h \
373 theory/booleans/theory_bool.h \
374 theory/booleans/theory_bool.cpp \
375 theory/booleans/theory_bool_type_rules.h \
376 theory/booleans/theory_bool_rewriter.h \
377 theory/booleans/theory_bool_rewriter.cpp \
378 theory/booleans/circuit_propagator.h \
379 theory/booleans/circuit_propagator.cpp \
380 theory/booleans/boolean_term_conversion_mode.h \
381 theory/booleans/boolean_term_conversion_mode.cpp \
382 theory/booleans/options_handlers.h
383
384 nodist_libcvc4_la_SOURCES = \
385 smt/smt_options.cpp \
386 theory/rewriter_tables.h \
387 theory/theory_traits.h \
388 theory/type_enumerator.cpp
389
390 libcvc4_la_LIBADD = \
391 @builddir@/options/liboptions.la \
392 @builddir@/util/libutil.la \
393 @builddir@/expr/libexpr.la \
394 @builddir@/prop/minisat/libminisat.la \
395 @builddir@/prop/bvminisat/libbvminisat.la
396
397 if CVC4_NEEDS_REPLACEMENT_FUNCTIONS
398 libcvc4_la_LIBADD += \
399 @builddir@/lib/libreplacements.la
400 endif
401
402 if CVC4_USE_GLPK
403 libcvc4_la_LIBADD += $(GLPK_LIBS)
404 endif
405
406 BUILT_SOURCES = \
407 theory/rewriter_tables.h \
408 theory/theory_traits.h \
409 theory/type_enumerator.cpp
410
411 CLEANFILES = \
412 svn_versioninfo.cpp \
413 svninfo.tmp \
414 svninfo \
415 git_versioninfo.cpp \
416 gitinfo.tmp \
417 gitinfo \
418 theory/rewriter_tables.h \
419 theory/theory_traits.h \
420 theory/type_enumerator.cpp
421
422 EXTRA_DIST = \
423 include/cvc4_private_library.h \
424 include/cvc4parser_private.h \
425 include/cvc4parser_public.h \
426 include/cvc4_private.h \
427 include/cvc4_public.h \
428 include/cvc4.h \
429 cvc4.i \
430 smt/smt_options_template.cpp \
431 smt/modal_exception.i \
432 smt/logic_exception.i \
433 smt/smt_engine.i \
434 theory/logic_info.i \
435 theory/rewriter_tables_template.h \
436 theory/theory_traits_template.h \
437 theory/type_enumerator_template.cpp \
438 theory/mktheorytraits \
439 theory/mkrewriter \
440 theory/Makefile.subdirs \
441 theory/uf/kinds \
442 theory/bv/kinds \
443 theory/idl/kinds \
444 theory/builtin/kinds \
445 theory/datatypes/kinds \
446 theory/strings/kinds \
447 theory/arrays/kinds \
448 theory/quantifiers/kinds \
449 theory/rewriterules/kinds \
450 theory/arith/kinds \
451 theory/booleans/kinds \
452 theory/example/ecdata.h \
453 theory/example/ecdata.cpp \
454 theory/example/theory_uf_tim.h \
455 theory/example/theory_uf_tim.cpp
456
457 svn_versioninfo.cpp: svninfo
458 $(AM_V_GEN)( \
459 if test -s svninfo; then \
460 issvn=true; \
461 branch=`grep '^URL: ' svninfo | sed 's,.*/cvc4/,,'`; \
462 rev=`grep '^Revision: ' svninfo | awk '{print$$2}'`; \
463 mods=`grep '^Modifications: ' svninfo | awk '{print$$2} END { if(!NR) print "false" }'`; \
464 else \
465 issvn=false; \
466 branch=unknown; \
467 rev=0; \
468 mods=false; \
469 fi; \
470 echo "#include \"util/configuration.h\""; \
471 echo "const bool ::CVC4::Configuration::IS_SUBVERSION_BUILD = $$issvn;"; \
472 echo "const char* const ::CVC4::Configuration::SUBVERSION_BRANCH_NAME = \"$$branch\";"; \
473 echo "const unsigned ::CVC4::Configuration::SUBVERSION_REVISION = $$rev;"; \
474 echo "const bool ::CVC4::Configuration::SUBVERSION_HAS_MODIFICATIONS = $$mods;"; \
475 ) >"$@"
476 # This .tmp business is to keep from having to re-compile options.cpp
477 # (and then re-link the libraries) if nothing has changed.
478 svninfo: svninfo.tmp
479 $(AM_V_GEN)if diff -q svninfo.tmp svninfo &>/dev/null; then rm -f svninfo.tmp; else mv svninfo.tmp svninfo; fi
480 # .PHONY ensures the .tmp version is always rebuilt (to check for any changes)
481 .PHONY: svninfo.tmp
482 svninfo.tmp:
483 $(AM_V_GEN)(cd "$(top_srcdir)" && svn info && echo "Modifications: `test -z \"\`svn status -q\`\" && echo false || echo true`") >"$@" 2>/dev/null || true
484
485 git_versioninfo.cpp: gitinfo
486 $(AM_V_GEN)( \
487 if test -s gitinfo; then \
488 isgit=true; \
489 branch=`head -1 gitinfo`; \
490 rev=`head -2 gitinfo | tail -1 | awk '{print$$1}'`; \
491 mods=`grep '^Modifications: ' gitinfo | awk '{print$$2} END { if(!NR) print "false" }'`; \
492 else \
493 isgit=false; \
494 branch=unknown; \
495 rev=unknown; \
496 mods=false; \
497 fi; \
498 echo "#include \"util/configuration.h\""; \
499 echo "const bool ::CVC4::Configuration::IS_GIT_BUILD = $$isgit;"; \
500 echo "const char* const ::CVC4::Configuration::GIT_BRANCH_NAME = \"$$branch\";"; \
501 echo "const char* const ::CVC4::Configuration::GIT_COMMIT = \"$$rev\";"; \
502 echo "const bool ::CVC4::Configuration::GIT_HAS_MODIFICATIONS = $$mods;"; \
503 ) >"$@"
504 # This .tmp business is to keep from having to re-compile options.cpp
505 # (and then re-link the libraries) if nothing has changed.
506 gitinfo: gitinfo.tmp
507 $(AM_V_GEN)if diff -q gitinfo.tmp gitinfo &>/dev/null; then rm -f gitinfo.tmp; else mv gitinfo.tmp gitinfo; fi || true
508 # .PHONY ensures the .tmp version is always rebuilt (to check for any changes)
509 .PHONY: gitinfo.tmp
510 gitinfo.tmp:
511 $(AM_V_GEN)(cd "$(top_srcdir)"; if test -e .git/HEAD; then if ! grep -q '^ref: refs/heads/' .git/HEAD; then echo; fi; sed 's,^ref: refs/heads/,,' .git/HEAD; git show-ref refs/heads/`sed 's,^ref: refs/heads/,,' .git/HEAD`; echo "Modifications: `test -z \"\`git status -s -uno\`\" && echo false || echo true`"; fi) >"$@" 2>/dev/null || true
512
513 install-data-local:
514 (echo include/cvc4.h; \
515 echo include/cvc4_public.h; \
516 echo include/cvc4parser_public.h; \
517 echo util/tls.h; \
518 echo util/integer.h; \
519 echo util/rational.h; \
520 find * -name '*.h' | \
521 xargs grep -l '^# *include *"cvc4.*_public\.h"'; \
522 (cd "$(srcdir)" && find * -name '*.h' | \
523 xargs grep -l '^# *include *"cvc4.*_public\.h"')) | \
524 while read f; do \
525 if expr "$$f" : ".*_\(template\|private\|private_library\|test_utils\)\.h$$" &>/dev/null; then \
526 continue; \
527 fi; \
528 d="$$(echo "$$f" | sed 's,^include/,,')"; \
529 $(mkinstalldirs) "$$(dirname "$(DESTDIR)$(includedir)/cvc4/$$d")"; \
530 if [ -e "$$f" ]; then \
531 path="$$f"; \
532 else \
533 path="$(srcdir)/$$f"; \
534 fi; \
535 fixpath="$(top_builddir)/header_install.fix"; \
536 sed 's,^\([ \t]*#[ \t]*include[ \t*]\)"\(.*\)"\([ \t]*\)$$,\1<cvc4/\2>\3,' "$$path" > "$$fixpath" || exit 1; \
537 echo $(INSTALL_DATA) "$$fixpath" "$(DESTDIR)$(includedir)/cvc4/$$d"; \
538 if $(INSTALL_DATA) "$$fixpath" "$(DESTDIR)$(includedir)/cvc4/$$d"; then \
539 rm -f "$$fixpath"; \
540 else \
541 rm -f "$$fixpath"; \
542 exit 1; \
543 fi; \
544 done
545
546 uninstall-local:
547 -(echo include/cvc4.h; \
548 echo include/cvc4_public.h; \
549 echo include/cvc4parser_public.h; \
550 echo util/tls.h; \
551 echo util/integer.h; \
552 echo util/rational.h; \
553 find * -name '*.h' | \
554 xargs grep -l '^# *include *"cvc4.*_public\.h"'; \
555 (cd "$(srcdir)" && find * -name '*.h' | \
556 xargs grep -l '^# *include *"cvc4.*_public\.h"')) | \
557 while read f; do \
558 if expr "$$f" : ".*_\(template\|private\|private_library\|test_utils\)\.h$$" &>/dev/null; then \
559 continue; \
560 fi; \
561 d="$$(echo "$$f" | sed 's,^include/,,')"; \
562 rm -f "$(DESTDIR)$(includedir)/cvc4/$$d"; \
563 done
564 -rmdir "$(DESTDIR)$(includedir)/cvc4/bindings/compat"
565 -rmdir "$(DESTDIR)$(includedir)/cvc4/bindings"
566 -rmdir "$(DESTDIR)$(includedir)/cvc4"
567 -rmdir "$(DESTDIR)$(libdir)/ocaml/cvc4"
568
569 include @top_srcdir@/src/theory/Makefile.subdirs
570
571 theory/rewriter_tables.h: theory/rewriter_tables_template.h theory/mkrewriter @top_builddir@/src/theory/.subdirs @top_srcdir@/src/theory/*/kinds
572 $(AM_V_at)chmod +x @srcdir@/theory/mkrewriter
573 $(AM_V_at)$(am__mv) $@ $@~ 2>/dev/null || true
574 $(AM_V_GEN)(@srcdir@/theory/mkrewriter \
575 $< \
576 `cat @top_builddir@/src/theory/.subdirs` \
577 > $@) || (rm -f $@ && exit 1)
578
579 theory/theory_traits.h: theory/theory_traits_template.h theory/mktheorytraits @top_builddir@/src/theory/.subdirs @top_srcdir@/src/theory/*/kinds
580 $(AM_V_at)chmod +x @srcdir@/theory/mktheorytraits
581 $(AM_V_at)$(am__mv) $@ $@~ 2>/dev/null || true
582 $(AM_V_GEN)(@srcdir@/theory/mktheorytraits \
583 $< \
584 `cat @top_builddir@/src/theory/.subdirs` \
585 > $@) || (rm -f $@ && exit 1)
586
587 theory/type_enumerator.cpp: theory/type_enumerator_template.cpp theory/mktheorytraits @top_builddir@/src/theory/.subdirs @top_srcdir@/src/theory/*/kinds
588 $(AM_V_at)chmod +x @srcdir@/theory/mktheorytraits
589 $(AM_V_at)$(am__mv) $@ $@~ 2>/dev/null || true
590 $(AM_V_GEN)(@srcdir@/theory/mktheorytraits \
591 $< \
592 `cat @top_builddir@/src/theory/.subdirs` \
593 > $@) || (rm -f $@ && exit 1)
594