Add infrastructure for threading support.
[external/binutils.git] / gold / testsuite / Makefile.am
1 # Process this file with automake to generate Makefile.in
2
3 # As far as I can tell automake testing support assumes that the build
4 # system and the host system are the same.  So these tests will not
5 # work when building with a cross-compiler.
6
7 AUTOMAKE_OPTIONS =
8
9 # The two_file_test tests -fmerge-constants, so we simply always turn
10 # it on.  This may need to be controlled by a configure option
11 # eventually.
12 AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CXXFLAGS) -fmerge-constants
13
14 INCLUDES = -D_GNU_SOURCE \
15         -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../../include \
16         -I$(srcdir)/../../elfcpp \
17         -DLOCALEDIR="\"$(datadir)/locale\"" \
18         @INCINTL@
19
20 if THREADS
21 THREADSLIB = -lpthread
22 endif
23
24 TESTS = object_unittest
25 check_SCRIPTS = 
26
27 if GCC
28
29 if NATIVE_LINKER
30
31 NATIVE_PROGS = \
32         constructor_test \
33         constructor_static_test \
34         two_file_test \
35         two_file_static_test \
36         two_file_pic_test \
37         two_file_shared_1_test \
38         two_file_shared_2_test \
39         two_file_same_shared_test \
40         two_file_separate_shared_12_test \
41         two_file_separate_shared_21_test \
42         exception_test \
43         exception_static_test \
44         exception_shared_1_test \
45         exception_shared_2_test \
46         exception_same_shared_test \
47         exception_separate_shared_12_test \
48         exception_separate_shared_21_test \
49         weak_test
50
51 if FN_PTRS_IN_SO_WITHOUT_PIC
52
53 NATIVE_PROGS += \
54         two_file_shared_1_nonpic_test \
55         two_file_shared_2_nonpic_test \
56         two_file_same_shared_nonpic_test \
57         two_file_separate_shared_12_nonpic_test \
58         two_file_separate_shared_21_nonpic_test
59
60 endif
61
62 if TLS
63
64 NATIVE_PROGS += \
65         tls_test \
66         tls_pic_test \
67         tls_shared_test
68
69 if STATIC_TLS
70
71 NATIVE_PROGS += \
72         tls_static_test \
73         tls_static_pic_test
74
75 endif
76
77 if FN_PTRS_IN_SO_WITHOUT_PIC
78
79 NATIVE_PROGS += \
80         tls_shared_nonpic_test
81
82 endif
83 endif
84
85 NATIVE_TESTING = \
86         basic_test \
87         basic_pic_test \
88         basic_static_test \
89         basic_static_pic_test \
90         $(NATIVE_PROGS)
91
92 endif
93 endif
94
95 TESTS += $(NATIVE_TESTING)
96
97 check_LIBRARIES = libgoldtest.a
98 libgoldtest_a_SOURCES = test.cc testmain.cc testfile.cc
99
100 DEPENDENCIES = \
101         libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL_DEP)
102 LDADD = libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL) \
103         $(THREADSLIB)
104
105 check_PROGRAMS = object_unittest $(NATIVE_PROGS)
106
107 object_unittest_SOURCES = object_unittest.cc
108
109 if GCC
110
111 if NATIVE_LINKER
112
113 gcctestdir/ld: ../ld-new
114         test -d gcctestdir || mkdir -p gcctestdir
115         rm -f gcctestdir/ld
116         (cd gcctestdir && $(LN_S) ../../ld-new ld)
117
118 # Override the default CXXFLAGS--we don't want any optimization
119 basic_test.o: basic_test.cc
120         $(CXXCOMPILE) -O0 -c -o $@ $<
121 basic_test: basic_test.o gcctestdir/ld
122         $(CXXLINK) -Bgcctestdir/ basic_test.o
123 basic_static_test: basic_test.o gcctestdir/ld
124         $(CXXLINK) -Bgcctestdir/ -static basic_test.o
125
126 basic_pic_test.o: basic_test.cc
127         $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
128 basic_pic_test: basic_pic_test.o gcctestdir/ld
129         $(CXXLINK) -Bgcctestdir/ basic_pic_test.o
130 basic_static_pic_test: basic_pic_test.o gcctestdir/ld
131         $(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
132
133 constructor_test_SOURCES = constructor_test.cc
134 constructor_test_DEPENDENCIES = gcctestdir/ld
135 constructor_test_LDFLAGS = -Bgcctestdir/
136
137 constructor_static_test_SOURCES = constructor_test.cc
138 constructor_static_test_DEPENDENCIES = gcctestdir/ld
139 constructor_static_test_LDFLAGS = -Bgcctestdir/ -static
140
141 two_file_test_SOURCES = \
142         two_file_test_1.cc \
143         two_file_test_2.cc \
144         two_file_test_main.cc \
145         two_file_test.h
146 two_file_test_DEPENDENCIES = gcctestdir/ld
147 two_file_test_LDFLAGS = -Bgcctestdir/
148
149 two_file_static_test_SOURCES = \
150         two_file_test_1.cc two_file_test_2.cc two_file_test_main.cc
151 two_file_static_test_DEPENDENCIES = gcctestdir/ld
152 two_file_static_test_LDFLAGS = -Bgcctestdir/ -static
153
154 two_file_pic_test_SOURCES = two_file_test_main.cc
155 two_file_pic_test_DEPENDENCIES = \
156         gcctestdir/ld two_file_test_1_pic.o two_file_test_2_pic.o
157 two_file_pic_test_LDFLAGS = -Bgcctestdir/
158 two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_2_pic.o
159
160 two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
161 two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
162 two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
163 two_file_shared_1_test_LDADD = two_file_shared_1.so
164
165 two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_main.cc
166 two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
167 two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
168 two_file_shared_2_test_LDADD = two_file_shared_2.so
169
170 two_file_same_shared_test_SOURCES = two_file_test_main.cc
171 two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
172 two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
173 two_file_same_shared_test_LDADD = two_file_shared.so
174
175 two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
176 two_file_separate_shared_12_test_DEPENDENCIES = \
177         gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
178 two_file_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
179 two_file_separate_shared_12_test_LDADD = \
180         two_file_shared_1.so two_file_shared_2.so
181
182 two_file_separate_shared_21_test_SOURCES = two_file_test_main.cc
183 two_file_separate_shared_21_test_DEPENDENCIES = \
184         gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
185 two_file_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
186 two_file_separate_shared_21_test_LDADD = \
187         two_file_shared_2.so two_file_shared_1.so
188
189 two_file_test_1_pic.o: two_file_test_1.cc
190         $(CXXCOMPILE) -c -fpic -o $@ $<
191 two_file_test_2_pic.o: two_file_test_2.cc
192         $(CXXCOMPILE) -c -fpic -o $@ $<
193
194 two_file_shared_1.so: two_file_test_1_pic.o
195         $(CXXLINK) -shared two_file_test_1_pic.o
196 two_file_shared_2.so: two_file_test_2_pic.o
197         $(CXXLINK) -shared two_file_test_2_pic.o
198 two_file_shared.so: two_file_test_1_pic.o two_file_test_2_pic.o
199         $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_2_pic.o
200
201 # The nonpic tests will fail on platforms which can not put non-PIC
202 # code into shared libraries, so we just don't run them in that case.
203
204 if FN_PTRS_IN_SO_WITHOUT_PIC
205
206 two_file_shared_1_nonpic_test_SOURCES = \
207         two_file_test_2.cc two_file_test_main.cc
208 two_file_shared_1_nonpic_test_DEPENDENCIES = \
209         gcctestdir/ld two_file_shared_1_nonpic.so
210 two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
211 two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
212
213 two_file_shared_2_nonpic_test_SOURCES = \
214         two_file_test_1.cc two_file_test_main.cc
215 two_file_shared_2_nonpic_test_DEPENDENCIES = \
216         gcctestdir/ld two_file_shared_2_nonpic.so
217 two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
218 two_file_shared_2_nonpic_test_LDADD = two_file_shared_2_nonpic.so
219
220 two_file_same_shared_nonpic_test_SOURCES = two_file_test_main.cc
221 two_file_same_shared_nonpic_test_DEPENDENCIES = \
222         gcctestdir/ld two_file_shared_nonpic.so
223 two_file_same_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
224 two_file_same_shared_nonpic_test_LDADD = two_file_shared_nonpic.so
225
226 two_file_separate_shared_12_nonpic_test_SOURCES = two_file_test_main.cc
227 two_file_separate_shared_12_nonpic_test_DEPENDENCIES = \
228         gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
229 two_file_separate_shared_12_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
230 two_file_separate_shared_12_nonpic_test_LDADD = \
231         two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
232
233 two_file_separate_shared_21_nonpic_test_SOURCES = two_file_test_main.cc
234 two_file_separate_shared_21_nonpic_test_DEPENDENCIES = \
235         gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
236 two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
237 two_file_separate_shared_21_nonpic_test_LDADD = \
238         two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
239
240 two_file_shared_1_nonpic.so: two_file_test_1.o
241         $(CXXLINK) -shared two_file_test_1.o
242 two_file_shared_2_nonpic.so: two_file_test_2.o
243         $(CXXLINK) -shared two_file_test_2.o
244 two_file_shared_nonpic.so: two_file_test_1.o two_file_test_2.o
245         $(CXXLINK) -shared two_file_test_1.o two_file_test_2.o
246
247 endif
248
249 exception_test_SOURCES = \
250         exception_test_main.cc \
251         exception_test_1.cc \
252         exception_test_2.cc \
253         exception_test.h
254 exception_test_DEPENDENCIES = gcctestdir/ld
255 exception_test_LDFLAGS = -Bgcctestdir/
256
257 exception_static_test_SOURCES = \
258         exception_test_main.cc \
259         exception_test_1.cc \
260         exception_test_2.cc
261 exception_static_test_DEPENDENCIES = gcctestdir/ld
262 exception_static_test_LDFLAGS = -Bgcctestdir/ -static
263
264 exception_shared_1_test_SOURCES = exception_test_2.cc exception_test_main.cc
265 exception_shared_1_test_DEPENDENCIES = gcctestdir/ld exception_shared_1.so
266 exception_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
267 exception_shared_1_test_LDADD = exception_shared_1.so
268
269 exception_shared_2_test_SOURCES = exception_test_1.cc exception_test_main.cc
270 exception_shared_2_test_DEPENDENCIES = gcctestdir/ld exception_shared_2.so
271 exception_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
272 exception_shared_2_test_LDADD = exception_shared_2.so
273
274 exception_same_shared_test_SOURCES = exception_test_main.cc
275 exception_same_shared_test_DEPENDENCIES = gcctestdir/ld exception_shared.so
276 exception_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
277 exception_same_shared_test_LDADD = exception_shared.so
278
279 exception_separate_shared_12_test_SOURCES = exception_test_main.cc
280 exception_separate_shared_12_test_DEPENDENCIES = \
281         gcctestdir/ld exception_shared_1.so exception_shared_2.so
282 exception_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
283 exception_separate_shared_12_test_LDADD = \
284         exception_shared_1.so exception_shared_2.so
285
286 exception_separate_shared_21_test_SOURCES = exception_test_main.cc
287 exception_separate_shared_21_test_DEPENDENCIES = \
288         gcctestdir/ld exception_shared_1.so exception_shared_2.so
289 exception_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
290 exception_separate_shared_21_test_LDADD = \
291         exception_shared_2.so exception_shared_1.so
292
293 exception_test_1_pic.o: exception_test_1.cc
294         $(CXXCOMPILE) -c -fpic -o $@ $<
295 exception_test_2_pic.o: exception_test_2.cc
296         $(CXXCOMPILE) -c -fpic -o $@ $<
297
298 exception_shared_1.so: exception_test_1_pic.o
299         $(CXXLINK) -shared exception_test_1_pic.o
300 exception_shared_2.so: exception_test_2_pic.o
301         $(CXXLINK) -shared exception_test_2_pic.o
302 exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o
303         $(CXXLINK) -shared exception_test_1_pic.o exception_test_2_pic.o
304
305 weak_test_SOURCES = weak_test.cc
306 weak_test_LDFLAGS = -Bgcctestdir/
307
308 if TLS
309
310 tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
311 tls_test_DEPENDENCIES = gcctestdir/ld
312 tls_test_LDFLAGS = -Bgcctestdir/
313 tls_test_LDADD = -lpthread
314
315 tls_pic_test_SOURCES = tls_test_main.cc
316 tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
317 tls_pic_test_LDFLAGS = -Bgcctestdir/
318 tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
319
320 tls_static_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc
321 tls_static_test_DEPENDENCIES = gcctestdir/ld
322 tls_static_test_LDFLAGS = -Bgcctestdir/ -static
323 tls_static_test_LDADD = -lpthread
324
325 tls_static_pic_test_SOURCES = tls_test_main.cc
326 tls_static_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
327 tls_static_pic_test_LDFLAGS = -Bgcctestdir/ -static
328 tls_static_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
329
330 tls_shared_test_SOURCES = tls_test_main.cc
331 tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
332 tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
333 tls_shared_test_LDADD = tls_test_shared.so -lpthread
334
335 tls_test_pic.o: tls_test.cc
336         $(CXXCOMPILE) -c -fpic -o $@ $<
337
338 tls_test_file2_pic.o: tls_test_file2.cc
339         $(CXXCOMPILE) -c -fpic -o $@ $<
340
341 tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o
342         $(CXXLINK) -shared tls_test_pic.o tls_test_file2_pic.o
343
344 if FN_PTRS_IN_SO_WITHOUT_PIC
345
346 tls_shared_nonpic_test_SOURCES = tls_test_main.cc
347 tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
348 tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
349 tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so -lpthread
350
351 tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o
352         $(CXXLINK) -shared tls_test.o tls_test_file2.o
353
354 endif
355
356 endif
357
358 endif
359 endif