Regenerate version.h when version_h.cc changes
[xapian.git] / xapian-core / tests / Makefile.am
blob3e335c06cc66944b3a6397a9e7750fe4736157b9
1 ## Process this file with automake to produce Makefile.in
3 AUTOMAKE_OPTIONS = 1.12.2 serial-tests subdir-objects
5 if MAINTAINER_MODE
6 # Export these so that we run the locally installed autotools when building
7 # from a bootstrapped git tree.
8 export ACLOCAL AUTOCONF AUTOHEADER AUTOM4TE AUTOMAKE
9 endif
11 AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/common -I$(top_srcdir)/include \
12  -I$(top_builddir)/include -I$(srcdir)/harness
14 CLEANFILES =
16 libxapian_la = libxapian@LIBRARY_VERSION_SUFFIX@.la
18 TESTS_ENVIRONMENT = ./runtest
20 .PHONY: check-none check-inmemory \
21         check-glass \
22         check-multi check-multi-glass \
23         check-remote check-remoteprog check-remotetcp \
24         check-remoteprog-glass \
25         check-remotetcp-glass \
26         up remove-cached-databases
28 up:
29         cd .. && $(MAKE)
31 check-none: apitest$(EXEEXT) \
32             internaltest$(EXEEXT) \
33             stemtest$(EXEEXT) \
34             unittest$(EXEEXT)
35         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b none
36         $(TESTS_ENVIRONMENT) ./internaltest$(EXEEXT)
37         $(TESTS_ENVIRONMENT) ./stemtest$(EXEEXT)
38         $(TESTS_ENVIRONMENT) ./unittest$(EXEEXT)
40 check-inmemory: apitest$(EXEEXT)
41         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b inmemory
43 check-multi: apitest$(EXEEXT)
44         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b multi
46 check-singlefile: apitest$(EXEEXT)
47         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b singlefile
49 if BUILD_BACKEND_REMOTE
50 check-remote: check-remoteprog check-remotetcp
52 check-remoteprog: apitest$(EXEEXT)
53         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b remoteprog
55 check-remotetcp: apitest$(EXEEXT)
56         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b remotetcp
58 if BUILD_BACKEND_GLASS
59 check-remoteprog-glass: apitest$(EXEEXT)
60         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b remoteprog_glass
61 check-remotetcp-glass: apitest$(EXEEXT)
62         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b remotetcp_glass
63 endif
65 endif
67 if BUILD_BACKEND_GLASS
68 check-multi-glass: apitest$(EXEEXT)
69         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b multi_glass
70 check-glass: apitest$(EXEEXT)
71         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b glass
72 check-singlefile-glass: apitest$(EXEEXT)
73         $(TESTS_ENVIRONMENT) ./apitest$(EXEEXT) -b singlefile_glass
74 endif
76 ## Test programs to be run
77 TESTS = apitest$(EXEEXT) internaltest$(EXEEXT) stemtest$(EXEEXT) \
78  unittest$(EXEEXT)
80 ## Programs to build
81 check_PROGRAMS = \
82         apitest internaltest stemtest unittest
84 # Make sure runtest is up to date before running tests
85 check_SCRIPTS = runtest
87 ## Sources:
89 noinst_HEADERS = apitest.h dbcheck.h
91 collated_apitest_sources = \
92  api_anydb.cc \
93  api_backend.cc \
94  api_closedb.cc \
95  api_collapse.cc \
96  api_compact.cc \
97  api_compactold.cc \
98  api_db.cc \
99  api_generated.cc \
100  api_geospatial.cc \
101  api_matchspy.cc \
102  api_metadata.cc \
103  api_nodb.cc \
104  api_none.cc \
105  api_opsynonym.cc \
106  api_opvalue.cc \
107  api_percentages.cc \
108  api_posdb.cc \
109  api_postingsource.cc \
110  api_qpbackend.cc \
111  api_query.cc \
112  api_queryparser.cc \
113  api_replacedoc.cc \
114  api_replicate.cc \
115  api_scalability.cc \
116  api_serialise.cc \
117  api_snippets.cc \
118  api_sorting.cc \
119  api_spelling.cc \
120  api_stem.cc \
121  api_termgen.cc \
122  api_transdb.cc \
123  api_unicode.cc \
124  api_valuestats.cc \
125  api_valuestream.cc \
126  api_weight.cc \
127  api_wrdb.cc
129 apitest_SOURCES = apitest.cc dbcheck.cc $(collated_apitest_sources) \
130  api_all.h api_collated.h $(testharness_sources)
132 apitest_LDFLAGS = $(NO_INSTALL) $(ldflags)
133 apitest_LDADD = ../libgetopt.la ../$(libxapian_la)
135 stemtest_SOURCES = stemtest.cc $(testharness_sources)
136 stemtest_LDFLAGS = $(NO_INSTALL) $(ldflags)
137 stemtest_LDADD = ../libgetopt.la ../$(libxapian_la)
139 internaltest_SOURCES = internaltest.cc $(testharness_sources)
140 internaltest_LDFLAGS = $(NO_INSTALL) $(ldflags)
141 internaltest_LDADD = ../libgetopt.la ../$(libxapian_la)
143 unittest_SOURCES = unittest.cc $(utestharness_sources)
144 unittest_LDFLAGS = $(NO_INSTALL) $(ldflags)
145 unittest_LDADD = ../libgetopt.la
147 BUILT_SOURCES =
149 if MAINTAINER_MODE
150 BUILT_SOURCES += api_all.h api_collated.h $(collated_apitest_sources:.cc=.h) \
151  api_generated.cc
153 api_all.h api_collated.h $(collated_apitest_sources:.cc=.h): api_collated.stamp
154 ## Recover from the removal of $@.  A full explanation of these rules is in the
155 ## automake manual under the heading "Multiple Outputs".
156         @if test -f $@; then :; else \
157           trap 'rm -rf api_collated.lock api_collated.stamp' 1 2 13 15; \
158           if mkdir api_collated.lock 2>/dev/null; then \
159             rm -f api_collated.stamp; \
160             $(MAKE) $(AM_MAKEFLAGS) api_collated.stamp; \
161             rmdir api_collated.lock; \
162           else \
163             while test -d api_collated.lock; do sleep 1; done; \
164             test -f api_collated.stamp; exit $$?; \
165           fi; \
166         fi
167 api_collated.stamp: $(collated_apitest_sources) collate-test Makefile.am
168         $(PERL) "$(srcdir)/collate-test" "$(srcdir)" api_collated.h api_all.h $(collated_apitest_sources)
169         touch $@
171 api_generated.cc: generate-api_generated
172         $(PERL) "$(srcdir)/generate-api_generated" > api_generated.ccT
173         mv api_generated.ccT api_generated.cc
174 endif
176 EXTRA_DIST = collate-test generate-api_generated api_all.h api_collated.h \
177         $(collated_apitest_sources:.cc=.h)
179 ## Distribute test data:
180 EXTRA_DIST +=\
181         runtest.in \
182         valgrind.supp \
183         testdata/apitest_onedoc.txt \
184         testdata/apitest_simpledata.txt \
185         testdata/apitest_simpledata2.txt \
186         testdata/apitest_termorder.txt \
187         testdata/apitest_rset.txt \
188         testdata/apitest_phrase.txt \
189         testdata/apitest_punc.txt \
190         testdata/apitest_space.txt \
191         testdata/apitest_allterms.txt \
192         testdata/apitest_allterms2.txt \
193         testdata/apitest_allterms4.txt \
194         testdata/apitest_poslist.txt \
195         testdata/apitest_manydocs.txt \
196         testdata/apitest_sortconsist.txt \
197         testdata/apitest_sortrel.txt \
198         testdata/apitest_declen.txt \
199         testdata/etext.txt \
200         testdata/snippet.txt
202 remove-cached-databases:
203         rm -rf .glass .multiglass .replicatmp .singlefileglass .stub
205 clean-local: remove-cached-databases
207 # Remove the cached databases before "make check" to avoid issues with missing
208 # bugs in database creation when we reuse databases from a previous test run.
209 check: remove-cached-databases
211 include harness/Makefile.mk
212 include perftest/Makefile.mk
213 include soaktest/Makefile.mk
215 EXTRA_DIST += zlib-vg.c
216 if USE_ZLIB_VG
217 check_SCRIPTS += zlib-vg.so
218 CLEANFILES += zlib-vg.so
220 zlib-vg.so: zlib-vg.c
221         $(CC_FOR_BUILD) -fPIC -shared -o zlib-vg.so $(srcdir)/zlib-vg.c -ldl
222 endif
225 .PHONY: check-syntax
227 check-syntax:
228         $(CXXCOMPILE) -fsyntax-only -gstabs+ $(CHK_SOURCES)