eb920e6c5a05b29153414d323930289b7c3197d4
[cvc5.git] / test / unit / Makefile.am
1 # All unit tests
2 UNIT_TESTS = \
3 theory/shared_term_manager_black \
4 theory/theory_engine_white \
5 theory/theory_black \
6 theory/theory_uf_tim_white \
7 theory/theory_arith_white \
8 expr/expr_public \
9 expr/expr_manager_public \
10 expr/node_white \
11 expr/node_black \
12 expr/kind_black \
13 expr/node_builder_black \
14 expr/node_manager_black \
15 expr/node_manager_white \
16 expr/attribute_white \
17 expr/attribute_black \
18 expr/declaration_scope_black \
19 parser/parser_black \
20 parser/parser_builder_black \
21 prop/cnf_stream_black \
22 context/context_black \
23 context/context_white \
24 context/context_mm_black \
25 context/cdo_black \
26 context/cdlist_black \
27 context/cdmap_black \
28 context/cdmap_white \
29 util/assert_white \
30 util/bitvector_black \
31 util/configuration_black \
32 util/congruence_closure_white \
33 util/output_black \
34 util/exception_black \
35 util/integer_black \
36 util/integer_white \
37 util/rational_black \
38 util/rational_white
39
40 export VERBOSE = 1
41
42 # Things that aren't tests but that tests rely on and need to
43 # go into the distribution
44 TEST_DEPS_DIST = \
45 memory.h \
46 Makefile.tests
47
48 if HAVE_CXXTESTGEN
49
50 AM_CPPFLAGS = \
51 -I. "-I@CXXTEST@" "-I@top_srcdir@/src/include" \
52 "-I@top_srcdir@/src" "-I@top_builddir@/src" \
53 "-I@top_srcdir@/src/prop/minisat" \
54 -D __STDC_LIMIT_MACROS \
55 -D __STDC_FORMAT_MACROS \
56 $(ANTLR_INCLUDES) $(TEST_CPPFLAGS)
57 AM_CXXFLAGS = -Wall -Wno-unknown-pragmas -Wno-parentheses $(TEST_CXXFLAGS)
58 AM_LDFLAGS = $(TEST_LDFLAGS)
59
60 AM_CXXFLAGS_WHITE = -fno-access-control -D__BUILDING_CVC4LIB_UNIT_TEST -D__BUILDING_CVC4PARSERLIB_UNIT_TEST
61 AM_CXXFLAGS_BLACK = -D__BUILDING_CVC4LIB_UNIT_TEST -D__BUILDING_CVC4PARSERLIB_UNIT_TEST
62 AM_CXXFLAGS_PUBLIC =
63 AM_LDFLAGS_WHITE =
64 AM_LDFLAGS_BLACK =
65 AM_LDFLAGS_PUBLIC =
66 AM_LIBADD_WHITE = \
67 @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
68 @abs_top_builddir@/src/libcvc4_noinst.la
69 AM_LIBADD_BLACK = \
70 @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
71 @abs_top_builddir@/src/libcvc4_noinst.la
72 AM_LIBADD_PUBLIC = \
73 @abs_top_builddir@/src/libcvc4.la
74
75 EXTRA_DIST = \
76 no_cxxtest \
77 $(UNIT_TESTS:%=%.cpp) \
78 $(UNIT_TESTS:%=%.h) \
79 $(TEST_DEPS_DIST)
80
81 MOSTLYCLEANFILES = $(UNIT_TESTS) $(UNIT_TESTS:%=%.cpp)
82
83 @mk_include@ @srcdir@/Makefile.tests
84
85 # We leave "TESTS" empty here; it's handled in Makefile.tests (see
86 # that file for comment)
87 TESTS = $(UNIT_TESTS)
88
89 if STATIC_BINARY
90 unit_LINK = $(CXXLINK) -all-static
91 else
92 unit_LINK = $(CXXLINK)
93 endif
94
95 @AMDEP_TRUE@@am__include@ $(UNIT_TESTS:%=@am__quote@./$(DEPDIR)/%.Plo@am__quote@)
96
97 $(UNIT_TESTS:%=@am__quote@./$(DEPDIR)/%.Plo@am__quote@): %.Plo:
98 $(AM_V_at)$(MKDIR_P) `dirname "$@"`
99 $(AM_V_GEN)test -e "$@" || touch "$@"
100
101 $(UNIT_TESTS:%=@abs_builddir@/%.cpp): @abs_builddir@/%.cpp: %.h
102 $(AM_V_at)$(MKDIR_P) `dirname "$@"`
103 $(AM_V_GEN)$(CXXTESTGEN) --have-eh --have-std --error-printer -o "$@" "$<"
104
105 $(WHITE_TESTS:%=%.lo): %_white.lo: @abs_builddir@/%_white.cpp
106 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) $(AM_CXXFLAGS_WHITE) -MT $@ -MD -MP -MF $(DEPDIR)/$(@:%.lo=%).Tpo -c -o $@ $<
107 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$(@:%.lo=%).Tpo $(DEPDIR)/$(@:%.lo=%).Plo
108 @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
109 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
110 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
111 @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) $(AM_CXXFLAGS_WHITE) -c -o $@ $<
112
113 $(WHITE_TESTS): %_white: %_white.lo $(AM_LIBADD_WHITE)
114 $(AM_V_CXXLD)$(unit_LINK) $(AM_LIBADD_WHITE) $(AM_LDFLAGS_WHITE) $<
115
116 $(BLACK_TESTS:%=%.lo): %_black.lo: @abs_builddir@/%_black.cpp
117 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) $(AM_CXXFLAGS_BLACK) -MT $@ -MD -MP -MF $(DEPDIR)/$(@:%.lo=%).Tpo -c -o $@ $<
118 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$(@:%.lo=%).Tpo $(DEPDIR)/$(@:%.lo=%).Plo
119 @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
120 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
121 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
122 @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) $(AM_CXXFLAGS_BLACK) -c -o $@ $<
123
124 $(BLACK_TESTS): %_black: %_black.lo $(AM_LIBADD_BLACK)
125 $(AM_V_CXXLD)$(unit_LINK) $(AM_LIBADD_BLACK) $(AM_LDFLAGS_BLACK) $<
126
127 $(PUBLIC_TESTS:%=%.lo): %_public.lo: @abs_builddir@/%_public.cpp
128 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) $(AM_CXXFLAGS_PUBLIC) -MT $@ -MD -MP -MF $(DEPDIR)/$(@:%.lo=%).Tpo -c -o $@ $<
129 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$(@:%.lo=%).Tpo $(DEPDIR)/$(@:%.lo=%).Plo
130 @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
131 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
132 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
133 @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) $(AM_CXXFLAGS_PUBLIC) -c -o $@ $<
134
135 $(PUBLIC_TESTS): %_public: %_public.lo $(AM_LIBADD_PUBLIC)
136 $(AM_V_CXXLD)$(unit_LINK) $(AM_LIBADD_PUBLIC) $(AM_LDFLAGS_PUBLIC) $<
137
138 else
139
140 # force a user-visible failure for "make check"
141 TESTS = no_cxxtest
142
143 EXTRA_DIST = \
144 no_cxxtest \
145 $(UNIT_TESTS:%=%.h) \
146 $(TEST_DEPS_DIST) \
147 no-cxxtest-available
148
149 endif
150
151 $(UNIT_TESTS:%=%.cpp): $(UNIT_TESTS:%=$(abs_builddir)/%.cpp)
152
153 # trick automake into setting LTCXXCOMPILE, CXXLINK, etc.
154 if CVC4_FALSE
155 noinst_LTLIBRARIES = libdummy.la
156 nodist_libdummy_la_SOURCES = expr/node_black.cpp
157 libdummy_la_LIBADD = @abs_top_builddir@/src/libcvc4.la
158 endif
159
160 # synonyms for "check"
161 .PHONY: regress test
162 regress test: check
163
164 # in unit test dir, regressN are also synonyms for check
165 .PHONY: regress0 regress1 regress2 regress3
166 regress0 regress1 regress2 regress3: check
167
168 if HAVE_CXXTESTGEN
169 # all is fine with the world
170 else
171 # all is not !
172 no-cxxtest-available:
173 @if test "$(I_REALLY_WANT_TO_BUILD_CVC4_DIST_WITHOUT_TESTS)" = 1; then \
174 echo; \
175 echo "WARNING:"; \
176 echo "WARNING: No CxxTest to build unit tests, but, then, you know that;"; \
177 echo "WARNING: I hope you know what you're doing."; \
178 echo "WARNING:"; \
179 echo; \
180 ( echo "CxxTest was not available at the time this distribution was built,"; \
181 echo "so the tests could not be built. You'll need CxxTest to test this"; \
182 echo "distribution." ) >no-cxxtest-available; \
183 else \
184 echo; \
185 echo "ERROR:"; \
186 echo "ERROR: You cannot make dist in this build directory, you do not have CxxTest."; \
187 echo "ERROR: The tests should be generated for the user and included in the tarball,"; \
188 echo "ERROR: otherwise they'll be required to have CxxTest just to test the standard"; \
189 echo "ERROR: distribution built correctly."; \
190 echo "ERROR: If you really want to do this, append the following to your make command."; \
191 echo "ERROR:"; \
192 echo "ERROR: I_REALLY_WANT_TO_BUILD_CVC4_DIST_WITHOUT_TESTS=1"; \
193 echo "ERROR:"; \
194 echo; \
195 exit 1; \
196 fi >&2
197 endif
198