Makefile.am 40.7 KB
Newer Older
1
## Process this file with automake to produce Makefile.in
2

3
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
4

5
6
AM_FCFLAGS = $(SCALAPACK_FCFLAGS) @FC_MODINC@modules @FC_MODOUT@modules
AM_LDFLAGS = $(SCALAPACK_LDFLAGS)
7
8

# libelpa
9
10
lib_LTLIBRARIES = libelpa@SUFFIX@.la
libelpa@SUFFIX@_la_LINK = $(FCLINK) $(AM_LDFLAGS) -version-info $(ELPA_SO_VERSION) -lstdc++
11

12
libelpa@SUFFIX@_la_SOURCES = src/mod_precision.F90 \
13
14
                             src/mod_mpi.F90 \
			     src/mod_mpi_stubs.F90 \
15
			     src/elpa2_kernels/mod_fortran_interfaces.F90 \
16
                             src/elpa_utilities.F90 \
Andreas Marek's avatar
Andreas Marek committed
17
	                     src/elpa1_compute.F90 \
Andreas Marek's avatar
Andreas Marek committed
18
19
	                     src/elpa1.F90 \
			     src/elpa2_utilities.F90 \
20
21
22
			     src/check_for_gpu.F90 \
			     src/mod_cuda.F90 \
			     src/interface_c_kernel.F90 \
23
			     src/mod_pack_unpack_real.F90 \
24
			     src/mod_pack_unpack_real_gpu.F90 \
25
			     src/elpa2_kernels/mod_single_hh_trafo_real.F90 \
26
27
			     src/mod_compute_hh_trafo_real.F90 \
			     src/mod_compute_hh_trafo_complex.F90 \
28
			     src/mod_pack_unpack_complex.F90 \
29
			     src/aligned_mem.F90 \
30
			     src/elpa2_compute.F90 \
Andreas Marek's avatar
Andreas Marek committed
31
32
			     src/elpa2.F90 \
			     src/elpa_c_interface.F90 \
33
                             src/elpa_qr/qr_utils.F90 \
34
                             src/elpa_qr/elpa_qrkernels.F90 \
35
                             src/elpa_qr/elpa_pdlarfb.F90 \
36
                             src/elpa_qr/elpa_pdgeqrf.F90
37
38
39
40
41

EXTRA_libelpa@SUFFIX@_la_DEPENDENCIES = src/elpa_reduce_add_vectors.X90 \
					src/elpa_transpose_vectors.X90 \
					src/redist_band.X90

42
43
44
45
46
47
48
49
50
51
52
53
if HAVE_DETAILED_TIMINGS
  libelpa@SUFFIX@_la_SOURCES += src/timer.F90 \
                                src/ftimings/ftimings.F90 \
                                src/ftimings/ftimings_type.F90 \
                                src/ftimings/ftimings_value.F90 \
                                src/ftimings/highwater_mark.c \
                                src/ftimings/resident_set_size.c \
                                src/ftimings/time.c \
                                src/ftimings/virtual_memory.c \
                                src/ftimings/papi.c
endif

54
if WITH_GPU_VERSION
55
56
  libelpa@SUFFIX@_la_SOURCES +=  src/cudaFunctions.cu src/cuUtils.cu src/ev_tridi_band_gpu_c_v2.cu
  #src/interface_cuda.F90 src/interface_c_kernel.F90 src/ev_tridi_band_gpu_c_v2.cu src/cuUtils.cu
57
58
endif

59
60
61
62
63
64
65
if !WITH_MPI
  libelpa@SUFFIX@_la_SOURCES += src/mod_time_c.F90
if !HAVE_DETAILED_TIMINGS
  libelpa@SUFFIX@_la_SOURCES += src/ftimings/time.c
endif
endif

Andreas Marek's avatar
Andreas Marek committed
66
if WITH_REAL_GENERIC_KERNEL
67
  libelpa@SUFFIX@_la_SOURCES +=  src/elpa2_kernels/elpa2_kernels_real.F90
68
69
endif

Andreas Marek's avatar
Andreas Marek committed
70
if WITH_COMPLEX_GENERIC_KERNEL
71
  libelpa@SUFFIX@_la_SOURCES +=  src/elpa2_kernels/elpa2_kernels_complex.F90
72
73
endif

Andreas Marek's avatar
Andreas Marek committed
74
if WITH_REAL_GENERIC_SIMPLE_KERNEL
75
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_simple.F90
76
77
endif

Andreas Marek's avatar
Andreas Marek committed
78
if WITH_COMPLEX_GENERIC_SIMPLE_KERNEL
79
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_simple.F90
80
81
endif

Andreas Marek's avatar
Andreas Marek committed
82
if WITH_REAL_BGP_KERNEL
83
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_bgp.f90
84
85
endif

Andreas Marek's avatar
Andreas Marek committed
86
if WITH_REAL_BGQ_KERNEL
87
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_bgq.f90
88
89
endif

90
if WITH_REAL_SSE_ASSEMBLY_KERNEL
91
92
93
94
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_asm_x86_64_double_precision.s
if WANT_SINGLE_PRECISION_REAL
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_asm_x86_64_single_precision.s
endif
95

Andreas Marek's avatar
Andreas Marek committed
96
else
97
if WITH_COMPLEX_SSE_ASSEMBLY_KERNEL
98
99
100
101
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_asm_x86_64_double_precision.s
if WANT_SINGLE_PRECISION_COMPLEX
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_asm_x86_64_single_precision.s
endif
102
103
endif
endif
Andreas Marek's avatar
Andreas Marek committed
104

105
if WITH_REAL_SSE_BLOCK2_KERNEL
106
107
108
109
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse_2hv_double_precision.c
if WANT_SINGLE_PRECISION_REAL
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse_2hv_single_precision.c
endif
110
111
endif

Andreas Marek's avatar
Andreas Marek committed
112
if WITH_REAL_AVX_BLOCK2_KERNEL
113
114
115
116
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_avx-avx2_2hv_double_precision.c
if WANT_SINGLE_PRECISION_REAL
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_avx-avx2_2hv_single_precision.c
endif
117
118
endif

119
if WITH_REAL_SSE_BLOCK4_KERNEL
120
121
122
123
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse_4hv_double_precision.c
if WANT_SINGLE_PRECISION_REAL
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse_4hv_single_precision.c
endif
124
125
endif

Andreas Marek's avatar
Andreas Marek committed
126
if WITH_REAL_AVX_BLOCK4_KERNEL
127
128
129
130
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_avx-avx2_4hv_double_precision.c
if WANT_SINGLE_PRECISION_REAL
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_avx-avx2_4hv_single_precision.c
endif
131
132
endif

133
if WITH_REAL_SSE_BLOCK6_KERNEL
134
135
136
137
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse_6hv_double_precision.c
if WANT_SINGLE_PRECISION_REAL
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse_6hv_single_precision.c
endif
138
139
endif

Andreas Marek's avatar
Andreas Marek committed
140
if WITH_REAL_AVX_BLOCK6_KERNEL
141
142
143
144
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_avx-avx2_6hv_double_precision.c
if WANT_SINGLE_PRECISION_REAL
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_avx-avx2_6hv_single_precision.c
endif
145
146
endif

147
if WITH_COMPLEX_SSE_BLOCK1_KERNEL
148
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse_1hv_double_precision.c
149
if WANT_SINGLE_PRECISION_COMPLEX
150
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse_1hv_single_precision.c
151
endif
152
153
endif

Andreas Marek's avatar
Andreas Marek committed
154
if WITH_COMPLEX_AVX_BLOCK1_KERNEL
155
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_1hv_double_precision.c
156
if WANT_SINGLE_PRECISION_COMPLEX
157
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_1hv_single_precision.c
158
endif
159
160
endif

161
if WITH_COMPLEX_SSE_BLOCK2_KERNEL
162
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse_2hv_double_precision.c
163
if WANT_SINGLE_PRECISION_COMPLEX
164
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse_2hv_single_precision.c
165
endif
166
167
endif

Andreas Marek's avatar
Andreas Marek committed
168
if WITH_COMPLEX_AVX_BLOCK2_KERNEL
169
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_2hv_double_precision.c
170
if WANT_SINGLE_PRECISION_COMPLEX
171
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_2hv_single_precision.c
172
endif
173
174
endif

175
.cu.lo:
176
	NVCC="$(NVCC)" libtool --mode=compile --tag=CC $(top_srcdir)/nvcc_wrap $(NVCCFLAGS) $(LDFLAGS) -I$(top_builddir)/ -I$(top_srcdir)/  -c $< -o $@
Andreas Marek's avatar
Andreas Marek committed
177

178
# install any .mod files in the include/ dir
179
elpa_includedir = $(includedir)/elpa@SUFFIX@-@PACKAGE_VERSION@
180
nobase_elpa_include_HEADERS = $(wildcard modules/*)
Andreas Marek's avatar
Andreas Marek committed
181
nobase_elpa_include_HEADERS += elpa/elpa.h elpa/elpa_kernel_constants.h elpa/elpa_generated.h
182

Andreas Marek's avatar
Andreas Marek committed
183
man_MANS = man/solve_evp_real.3 \
184
	   man/solve_evp_real_1stage_double.3 \
Andreas Marek's avatar
Andreas Marek committed
185
	   man/solve_evp_complex.3 \
186
187
188
	   man/solve_evp_complex_1stage_double.3 \
	   man/solve_evp_real_2stage_double.3 \
	   man/solve_evp_complex_2stage_double.3 \
Andreas Marek's avatar
Andreas Marek committed
189
	   man/get_elpa_row_col_comms.3 \
190
	   man/get_elpa_communicators.3 \
Andreas Marek's avatar
Andreas Marek committed
191
192
	   man/print_available_elpa2_kernels.1

193
194
195
196
197
198
199
200
201
202
203
204
205
if WANT_SINGLE_PRECISION_REAL

man_MANS += man/solve_evp_real_1stage_single.3 \
	    man/solve_evp_real_2stage_single.3
endif

if WANT_SINGLE_PRECISION_COMPLEX

man_MANS += man/solve_evp_complex_1stage_single.3 \
	    man/solve_evp_complex_2stage_single.3
endif


206
# other files to distribute
207
filesdir = $(docdir)/examples
208
dist_files_DATA = \
Andreas Marek's avatar
Andreas Marek committed
209
210
211
212
213
214
215
216
217
218
219
  test/fortran_test_programs/read_real.F90 \
  test/fortran_test_programs/test_complex2.F90 \
  test/fortran_test_programs/test_complex2_default_kernel.F90 \
  test/fortran_test_programs/test_complex2_choose_kernel_with_api.F90 \
  test/fortran_test_programs/test_complex.F90 \
  test/fortran_test_programs/test_real2.F90 \
  test/fortran_test_programs/test_real2_default_kernel.F90 \
  test/fortran_test_programs/test_real2_default_kernel_qr_decomposition.F90 \
  test/fortran_test_programs/test_real2_choose_kernel_with_api.F90 \
  test/fortran_test_programs/test_real.F90 \
  test/fortran_test_programs/test_real_with_c.F90 \
220
  src/print_available_elpa2_kernels.F90
221

222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
if WANT_SINGLE_PRECISION_COMPLEX
dist_files_DATA += test/fortran_test_programs/test_complex2_single_precision.F90 \
                   test/fortran_test_programs/test_complex2_default_kernel_single_precision.F90 \
                   test/fortran_test_programs/test_complex2_choose_kernel_with_api_single_precision.F90 \
                   test/fortran_test_programs/test_complex_single_precision.F90
endif

if WANT_SINGLE_PRECISION_REAL
dist_files_DATA += test/fortran_test_programs/test_real2_single_precision.F90 \
                   test/fortran_test_programs/test_real2_default_kernel_single_precision.F90 \
                   test/fortran_test_programs/test_real2_default_kernel_qr_decomposition_single_precision.F90 \
                   test/fortran_test_programs/test_real2_choose_kernel_with_api_single_precision.F90 \
                   test/fortran_test_programs/test_real_single_precision.F90
endif

if WITH_GPU_VERSION
dist_files_DATA += test/fortran_test_programs/test_real2_gpu_version.F90 \
                   test/fortran_test_programs/test_complex2_gpu_version.F90

if WANT_SINGLE_PRECISION_REAL
dist_files_DATA += test/fortran_test_programs/test_real2_gpu_version_single_precision.F90
endif

if WANT_SINGLE_PRECISION_COMPLEX
dist_files_DATA += test/fortran_test_programs/test_complex2_gpu_version_single_precision.F90
endif

endif
250
251
dist_doc_DATA = README COPYING/COPYING COPYING/gpl.txt COPYING/lgpl.txt

252
253
# pkg-config stuff
pkgconfigdir = $(libdir)/pkgconfig
254
pkgconfig_DATA = @PKG_CONFIG_FILE@
255

256
257
# programs
bin_PROGRAMS = \
258
  elpa2_print_kernels@SUFFIX@
259
260

noinst_PROGRAMS = \
261
  elpa1_test_real@SUFFIX@ \
262
263
  elpa1_test_complex@SUFFIX@ \
  elpa2_test_real@SUFFIX@ \
Andreas Marek's avatar
Andreas Marek committed
264
265
266
267
  elpa2_test_real_default_kernel@SUFFIX@ \
  elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@ \
  elpa2_test_real_choose_kernel_with_api@SUFFIX@ \
  elpa2_test_complex@SUFFIX@ \
268
269
270
271
272
273
274
  elpa2_test_complex_default_kernel@SUFFIX@ \
  elpa2_test_complex_choose_kernel_with_api@SUFFIX@

#if WITH_OPENMP
# nothing yet
#endif

275
if !WITH_OPENMP
Andreas Marek's avatar
Andreas Marek committed
276
noinst_PROGRAMS += \
277
  elpa1_test_real_with_c@SUFFIX@ \
Andreas Marek's avatar
Andreas Marek committed
278
279
280
281
282
283
  elpa1_test_real_c_version@SUFFIX@ \
  elpa1_test_complex_c_version@SUFFIX@ \
  elpa2_test_real_c_version@SUFFIX@ \
  elpa2_test_complex_c_version@SUFFIX@
endif

284
285
if WANT_SINGLE_PRECISION_COMPLEX
noinst_PROGRAMS += \
286
287
  elpa1_test_complex_single_precision@SUFFIX@ \
  elpa2_test_complex_single_precision@SUFFIX@ \
288
289
290
291
292
293
  elpa2_test_complex_default_kernel_single_precision@SUFFIX@ \
  elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@
endif

if WANT_SINGLE_PRECISION_REAL
noinst_PROGRAMS += \
294
295
  elpa1_test_real_single_precision@SUFFIX@ \
  elpa2_test_real_single_precision@SUFFIX@ \
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
  elpa2_test_real_default_kernel_single_precision@SUFFIX@ \
  elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@ \
  elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@
endif

if WITH_GPU_VERSION
noinst_PROGRAMS += \
  elpa2_test_complex_gpu_version@SUFFIX@ \
  elpa2_test_real_gpu_version@SUFFIX@

if WANT_SINGLE_PRECISION_REAL
noinst_PROGRAMS += \
  elpa2_test_real_gpu_version_single_precision@SUFFIX@
endif

if WANT_SINGLE_PRECISION_COMPLEX
noinst_PROGRAMS += \
  elpa2_test_complex_gpu_version_single_precision@SUFFIX@
endif

endif

318
build_lib = libelpa@SUFFIX@.la
Andreas Marek's avatar
Andreas Marek committed
319

320
if HAVE_REDIRECT
Andreas Marek's avatar
Andreas Marek committed
321
  redirect_sources = test/shared_sources/redir.c test/shared_sources/redirect.F90
322
323
324
325
else
  redirect_sources =
endif

326
327
328
329
330
shared_sources = test/shared_sources/util.F90 \
		 test/shared_sources/read_input_parameters.F90  \
		 test/shared_sources/check_correctnes.F90 \
		 test/shared_sources/setup_mpi.F90 \
		 test/shared_sources/blacs_infrastructure.F90 \
331
		 test/shared_sources/mod_output_types.F90 \
332
		 test/shared_sources/prepare_matrix.F90
333
334
#test/shared_sources/mod_precision_created.f90: src/mod_precision.f90
#	cp $(top_srcdir)/src/mod_precision.f90 $(top_srcdir)/test/shared_sources/mod_precision_created.f90
Andreas Marek's avatar
Andreas Marek committed
335

Andreas Marek's avatar
Andreas Marek committed
336
if !WITH_OPENMP
Andreas Marek's avatar
Andreas Marek committed
337
elpa1_test_real_c_version@SUFFIX@_SOURCES = test/c_test_programs/elpa1_test_real_c_version.c $(shared_sources) $(redirect_sources)
Andreas Marek's avatar
Andreas Marek committed
338
elpa1_test_real_c_version@SUFFIX@_LDADD = $(build_lib)
339
elpa1_test_real_c_version@SUFFIX@_LINK = $(LINK) $(FCLIBS)
340
EXTRA_elpa1_test_real_c_version@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
Andreas Marek's avatar
Andreas Marek committed
341

342
343
elpa1_test_real_with_c@SUFFIX@_SOURCES = test/fortran_test_programs/test_real_with_c.F90 test/shared_sources/mod_from_c.F90 test/shared_sources/call_elpa1.c $(shared_sources) $(redirect_sources)
elpa1_test_real_with_c@SUFFIX@_LDADD = $(build_lib)
344
EXTRA_elpa1_test_real_with_c@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
345

Andreas Marek's avatar
Andreas Marek committed
346
347
348
elpa1_test_complex_c_version@SUFFIX@_SOURCES = test/c_test_programs/elpa1_test_complex_c_version.c $(shared_sources) $(redirect_sources)
elpa1_test_complex_c_version@SUFFIX@_LDADD = $(build_lib)
elpa1_test_complex_c_version@SUFFIX@_LINK = $(LINK) $(FCLIBS)
349
EXTRA_elpa1_test_complex_c_version@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
Andreas Marek's avatar
Andreas Marek committed
350
351
352
353

elpa2_test_real_c_version@SUFFIX@_SOURCES = test/c_test_programs/elpa2_test_real_c_version.c $(shared_sources) $(redirect_sources)
elpa2_test_real_c_version@SUFFIX@_LDADD = $(build_lib)
elpa2_test_real_c_version@SUFFIX@_LINK = $(LINK) $(FCLIBS)
354
EXTRA_elpa2_test_real_c_version@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
Andreas Marek's avatar
Andreas Marek committed
355
356
357
358

elpa2_test_complex_c_version@SUFFIX@_SOURCES = test/c_test_programs/elpa2_test_complex_c_version.c $(shared_sources) $(redirect_sources)
elpa2_test_complex_c_version@SUFFIX@_LDADD = $(build_lib)
elpa2_test_complex_c_version@SUFFIX@_LINK = $(LINK) $(FCLIBS)
359
EXTRA_elpa2_test_complex_c_version@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
Andreas Marek's avatar
Andreas Marek committed
360
endif
Andreas Marek's avatar
Andreas Marek committed
361
362

elpa1_test_real@SUFFIX@_SOURCES = test/fortran_test_programs/test_real.F90 $(shared_sources) $(redirect_sources)
363
elpa1_test_real@SUFFIX@_LDADD = $(build_lib)
364
EXTRA_elpa2_test_real@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
365

366
367
#elpa1_test_complex_with_c@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex_with_c.F90 test/shared_sources/mod_from_c.F90 test/shared_sources/call_elpa1.c $(shared_sources) $(redirect_sources)
#elpa1_test_complex_with_c@SUFFIX@_LDADD = $(build_lib)
368
#EXTRA_elpa1_test_complex_with_c@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
Andreas Marek's avatar
Andreas Marek committed
369
370

elpa2_test_real@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2.F90 $(shared_sources) $(redirect_sources)
371
elpa2_test_real@SUFFIX@_LDFLAGS = -static
372
elpa2_test_real@SUFFIX@_LDADD = $(build_lib)
373
EXTRA_elpa2_test_real@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
374

Andreas Marek's avatar
Andreas Marek committed
375
elpa2_test_real_default_kernel@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_default_kernel.F90 $(shared_sources) $(redirect_sources)
376
elpa2_test_real_default_kernel@SUFFIX@_LDADD = $(build_lib)
377
EXTRA_elpa2_test_real_default_kernel@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
378

379
380
elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_default_kernel_qr_decomposition.F90 \
								   $(shared_sources) $(redirect_sources)
381
elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@_LDADD = $(build_lib)
382
EXTRA_elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
383

384
385
elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_choose_kernel_with_api.F90 \
							 $(shared_sources) $(redirect_sources)
386
elpa2_test_real_choose_kernel_with_api@SUFFIX@_LDADD = $(build_lib)
387
EXTRA_elpa2_test_real_choose_kernel_with_api@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
Andreas Marek's avatar
Andreas Marek committed
388

Andreas Marek's avatar
Andreas Marek committed
389
elpa1_test_complex@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex.F90 $(shared_sources) $(redirect_sources)
390
elpa1_test_complex@SUFFIX@_LDADD = $(build_lib)
391
EXTRA_elpa1_test_complex@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
Andreas Marek's avatar
Andreas Marek committed
392

Andreas Marek's avatar
Andreas Marek committed
393
elpa2_test_complex@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2.F90 $(shared_sources) $(redirect_sources)
394
elpa2_test_complex@SUFFIX@_LDADD = $(build_lib)
395
EXTRA_elpa2_test_complex@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
396

Andreas Marek's avatar
Andreas Marek committed
397
elpa2_test_complex_default_kernel@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2_default_kernel.F90 $(shared_sources) $(redirect_sources)
398
elpa2_test_complex_default_kernel@SUFFIX@_LDADD = $(build_lib)
399
EXTRA_elpa2_test_complex_default_kernel@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
400

401
402
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2_choose_kernel_with_api.F90 \
							    $(shared_sources) $(redirect_sources)
403
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_LDADD = $(build_lib)
404
EXTRA_elpa2_test_complex_choose_kernel_with_api@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
Andreas Marek's avatar
Andreas Marek committed
405

406
elpa2_print_kernels@SUFFIX@_SOURCES = src/print_available_elpa2_kernels.F90 src/mod_precisionF90 $(shared_sources) $(redirect_sources)
407
elpa2_print_kernels@SUFFIX@_LDADD = $(build_lib)
Andreas Marek's avatar
Andreas Marek committed
408

409
410
411
if WANT_SINGLE_PRECISION_REAL
elpa1_test_real_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_real_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa1_test_real_single_precision@SUFFIX@_LDADD = $(build_lib)
412
EXTRA_elpa1_test_real_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
413
414
415
416

elpa2_test_real_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa2_test_real_single_precision@SUFFIX@_LDFLAGS = -static
elpa2_test_real_single_precision@SUFFIX@_LDADD = $(build_lib)
417
EXTRA_elpa2_test_real_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
418

419
420
elpa2_test_real_default_kernel_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_default_kernel_single_precision.F90 \
								  $(shared_sources) $(redirect_sources)
421
elpa2_test_real_default_kernel_single_precision@SUFFIX@_LDADD = $(build_lib)
422
#elpa2_test_real_default_kernel_single_precision@SUFFIX@_LDFLAGS = -static
423
EXTRA_elpa2_test_real_default_kernel_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
424

425
426
elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@_SOURCES = \
	        test/fortran_test_programs/test_real2_default_kernel_qr_decomposition_single_precision.F90 $(shared_sources) $(redirect_sources)
427
elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@_LDADD = $(build_lib)
428
EXTRA_elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
429
430
431

elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_choose_kernel_with_api_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@_LDADD = $(build_lib)
432
EXTRA_elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
433
434
435
436
437
endif

if WANT_SINGLE_PRECISION_COMPLEX
elpa1_test_complex_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa1_test_complex_single_precision@SUFFIX@_LDADD = $(build_lib)
438
EXTRA_elpa1_test_complex_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
439
440
441

elpa2_test_complex_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa2_test_complex_single_precision@SUFFIX@_LDADD = $(build_lib)
442
EXTRA_elpa2_test_complex_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
443
444
445

elpa2_test_complex_default_kernel_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2_default_kernel_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa2_test_complex_default_kernel_single_precision@SUFFIX@_LDADD = $(build_lib)
446
#elpa2_test_complex_default_kernel_single_precision@SUFFIX@_LDFLAGS = -static
447
EXTRA_elpa2_test_complex_default_kernel_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
448
449
450

elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2_choose_kernel_with_api_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@_LDADD = $(build_lib)
451
EXTRA_elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
452
453
454
455
456
endif

if WITH_GPU_VERSION
elpa2_test_real_gpu_version@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_gpu_version.F90 $(shared_sources) $(redirect_sources)
elpa2_test_real_gpu_version@SUFFIX@_LDADD = $(build_lib)
457
EXTRA_elpa2_test_real_gpu_version@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
458
459
460

elpa2_test_complex_gpu_version@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2_gpu_version.F90 $(shared_sources) $(redirect_sources)
elpa2_test_complex_gpu_version@SUFFIX@_LDADD = $(build_lib)
461
EXTRA_elpa2_test_complex_gpu_version@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
462
463
464
465

if WANT_SINGLE_PRECISION_REAL
elpa2_test_real_gpu_version_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_gpu_version_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa2_test_real_gpu_version_single_precision@SUFFIX@_LDADD = $(build_lib)
466
EXTRA_elpa2_test_real_gpu_version_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
467
468
469
470
471
endif

if WANT_SINGLE_PRECISION_COMPLEX
elpa2_test_complex_gpu_version_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2_gpu_version_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa2_test_complex_gpu_version_single_precision@SUFFIX@_LDADD = $(build_lib)
472
EXTRA_elpa2_test_complex_gpu_version_single_precision@SUFFIX@_DEPENDENCIES = test/fortran_test_programs/elpa_test_programs_print_headers.X90
473
474
475
476
endif

endif

477
check_SCRIPTS = \
478
479
480
481
482
483
484
485
486
  elpa1_test_real@SUFFIX@.sh \
  elpa2_test_real@SUFFIX@.sh \
  elpa2_test_real_default_kernel@SUFFIX@.sh \
  elpa1_test_complex@SUFFIX@.sh \
  elpa2_test_complex@SUFFIX@.sh \
  elpa2_test_complex_default_kernel@SUFFIX@.sh \
  elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@.sh \
  elpa2_test_real_choose_kernel_with_api@SUFFIX@.sh \
  elpa2_test_complex_choose_kernel_with_api@SUFFIX@.sh \
487
  elpa2_print_kernels@SUFFIX@
488

Andreas Marek's avatar
Andreas Marek committed
489
490
if !WITH_OPENMP
check_SCRIPTS += \
491
  elpa1_test_real_with_c@SUFFIX@.sh \
492
493
494
495
  elpa1_test_real_c_version@SUFFIX@.sh \
  elpa1_test_complex_c_version@SUFFIX@.sh \
  elpa2_test_real_c_version@SUFFIX@.sh \
  elpa2_test_complex_c_version@SUFFIX@.sh
Andreas Marek's avatar
Andreas Marek committed
496
497
endif

498
499
if WANT_SINGLE_PRECISION_REAL
check_SCRIPTS += \
500
501
502
503
504
  elpa1_test_real_single_precision@SUFFIX@.sh \
  elpa2_test_real_single_precision@SUFFIX@.sh \
  elpa2_test_real_default_kernel_single_precision@SUFFIX@.sh \
  elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@.sh \
  elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@.sh
505
506
507
508
endif

if WANT_SINGLE_PRECISION_COMPLEX
check_SCRIPTS += \
509
510
511
  elpa1_test_complex_single_precision@SUFFIX@.sh \
  elpa2_test_complex_single_precision@SUFFIX@.sh \
  elpa2_test_complex_default_kernel_single_precision@SUFFIX@.sh
512
513
514
515
endif

if WITH_GPU_VERSION
check_SCRIPTS += \
516
517
  elpa2_test_real_gpu_version@SUFFIX@.sh \
  elpa2_test_complex_gpu_version@SUFFIX@.sh
518
519
if WANT_SINGLE_PRECISION_REAL
check_SCRIPTS += \
520
  elpa2_test_real_gpu_version_single_precision@SUFFIX@.sh
521
522
523
endif
if WANT_SINGLE_PRECISION_COMPLEX
check_SCRIPTS += \
524
  elpa2_test_complex_gpu_version_single_precision@SUFFIX@.sh
525
526
527
528
endif

endif

529
TESTS = $(check_SCRIPTS)
530
if WITH_MPI
531
532
533
elpa1_test_real@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa1_test_real@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real@SUFFIX@.sh
	chmod +x elpa1_test_real@SUFFIX@.sh
534

535
536
537
elpa1_test_real_with_c@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa1_test_real_with_c@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_with_c@SUFFIX@.sh
	chmod +x elpa1_test_real_with_c@SUFFIX@.sh
Andreas Marek's avatar
Andreas Marek committed
538

539
540
541
elpa2_test_real_c_version@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_c_version@SUFFIX@.sh
	chmod +x elpa2_test_real_c_version@SUFFIX@.sh
Andreas Marek's avatar
Andreas Marek committed
542

543
544
545
elpa2_test_complex_c_version@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_c_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_c_version@SUFFIX@.sh
	chmod +x elpa2_test_complex_c_version@SUFFIX@.sh
Andreas Marek's avatar
Andreas Marek committed
546

547
548
549
elpa1_test_real_c_version@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa1_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_c_version@SUFFIX@.sh
	chmod +x elpa1_test_real_c_version@SUFFIX@.sh
Andreas Marek's avatar
Andreas Marek committed
550

551
552
553
elpa1_test_complex_c_version@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa1_test_complex_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex_c_version@SUFFIX@.sh
	chmod +x elpa1_test_complex_c_version@SUFFIX@.sh
554

555
556
557
elpa2_test_real@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real@SUFFIX@.sh
	chmod +x elpa2_test_real@SUFFIX@.sh
558

559
560
561
elpa2_test_real_default_kernel@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_default_kernel@SUFFIX@.sh
	chmod +x elpa2_test_real_default_kernel@SUFFIX@.sh
Andreas Marek's avatar
Andreas Marek committed
562

563
564
565
elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@' > elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@.sh
	chmod +x elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@.sh
566

567
568
569
elpa2_test_real_choose_kernel_with_api@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_choose_kernel_with_api@SUFFIX@.sh
	chmod +x elpa2_test_real_choose_kernel_with_api@SUFFIX@.sh
Andreas Marek's avatar
Andreas Marek committed
570

571
572
573
elpa1_test_complex@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa1_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex@SUFFIX@.sh
	chmod +x elpa1_test_complex@SUFFIX@.sh
574

575
576
577
elpa2_test_complex@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex@SUFFIX@.sh
	chmod +x elpa2_test_complex@SUFFIX@.sh
Andreas Marek's avatar
Andreas Marek committed
578

579
580
581
elpa2_test_complex_default_kernel@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_default_kernel@SUFFIX@.sh
	chmod +x elpa2_test_complex_default_kernel@SUFFIX@.sh
Andreas Marek's avatar
Andreas Marek committed
582

583
584
585
elpa2_test_complex_choose_kernel_with_api@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_choose_kernel_with_api@SUFFIX@.sh
	chmod +x elpa2_test_complex_choose_kernel_with_api@SUFFIX@.sh
586
587

if WANT_SINGLE_PRECISION_REAL
588
589
590
elpa1_test_real_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa1_test_real_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_single_precision@SUFFIX@.sh
	chmod +x elpa1_test_real_single_precision@SUFFIX@.sh
591

592
593
594
elpa2_test_real_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_single_precision@SUFFIX@.sh
595

596
597
598
elpa2_test_real_default_kernel_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_default_kernel_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_default_kernel_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_default_kernel_single_precision@SUFFIX@.sh
599

600
601
602
elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@' > elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@.sh
603

604
605
606
elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@.sh
607
608
609
endif

if WANT_SINGLE_PRECISION_COMPLEX
610
611
612
elpa1_test_complex_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa1_test_complex_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex_single_precision@SUFFIX@.sh
	chmod +x elpa1_test_complex_single_precision@SUFFIX@.sh
613

614
615
616
elpa2_test_complex_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_complex_single_precision@SUFFIX@.sh
617

618
619
620
elpa2_test_complex_default_kernel_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_default_kernel_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_default_kernel_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_complex_default_kernel_single_precision@SUFFIX@.sh
621

622
623
624
elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@.sh
625
626
627
endif

if WITH_GPU_VERSION
628
629
630
elpa2_test_real_gpu_version@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_gpu_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_gpu_version@SUFFIX@.sh
	chmod +x elpa2_test_real_gpu_version@SUFFIX@.sh
631

632
633
634
elpa2_test_complex_gpu_version@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_gpu_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_gpu_version@SUFFIX@.sh
	chmod +x elpa2_test_complex_gpu_version@SUFFIX@.sh
635
636

if WANT_SINGLE_PRECISION_REAL
637
638
639
elpa2_test_real_gpu_version_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_gpu_version_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_gpu_version_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_gpu_version_single_precision@SUFFIX@.sh
640
641
642
endif

if WANT_SINGLE_PRECISION_COMPLEX
643
644
645
elpa2_test_complex_gpu_version_single_precision@SUFFIX@.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_gpu_version_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_gpu_version_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_complex_gpu_version_single_precision@SUFFIX@.sh
646
647
648
649
650
651
652
endif
# GPU_VERSION
endif

else
# build tests without mpi support

653
654
655
elpa1_test_real@SUFFIX@.sh:
	echo './elpa1_test_real@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real@SUFFIX@.sh
	chmod +x elpa1_test_real@SUFFIX@.sh
656

657
658
659
elpa1_test_real_with_c@SUFFIX@.sh:
	echo './elpa1_test_real_with_c@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_with_c@SUFFIX@.sh
	chmod +x elpa1_test_real_with_c@SUFFIX@.sh
660

661
662
663
elpa2_test_real_c_version@SUFFIX@.sh:
	echo './elpa2_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_c_version@SUFFIX@.sh
	chmod +x elpa2_test_real_c_version@SUFFIX@.sh
664

665
666
667
elpa2_test_complex_c_version@SUFFIX@.sh:
	echo './elpa2_test_complex_c_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_c_version@SUFFIX@.sh
	chmod +x elpa2_test_complex_c_version@SUFFIX@.sh
668

669
670
671
elpa1_test_real_c_version@SUFFIX@.sh:
	echo './elpa1_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_c_version@SUFFIX@.sh
	chmod +x elpa1_test_real_c_version@SUFFIX@.sh
672

673
674
675
elpa1_test_complex_c_version@SUFFIX@.sh:
	echo './elpa1_test_complex_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex_c_version@SUFFIX@.sh
	chmod +x elpa1_test_complex_c_version@SUFFIX@.sh
676

677
678
679
elpa2_test_real@SUFFIX@.sh:
	echo './elpa2_test_real@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real@SUFFIX@.sh
	chmod +x elpa2_test_real@SUFFIX@.sh
680

681
682
683
elpa2_test_real_default_kernel@SUFFIX@.sh:
	echo './elpa2_test_real_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_default_kernel@SUFFIX@.sh
	chmod +x elpa2_test_real_default_kernel@SUFFIX@.sh
684

685
686
687
elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@.sh:
	echo './elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@' > elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@.sh
	chmod +x elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@.sh
688

689
690
691
elpa2_test_real_choose_kernel_with_api@SUFFIX@.sh:
	echo './elpa2_test_real_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_choose_kernel_with_api@SUFFIX@.sh
	chmod +x elpa2_test_real_choose_kernel_with_api@SUFFIX@.sh
692

693
694
695
elpa1_test_complex@SUFFIX@.sh:
	echo './elpa1_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex@SUFFIX@.sh
	chmod +x elpa1_test_complex@SUFFIX@.sh
696

697
698
699
elpa2_test_complex@SUFFIX@.sh:
	echo './elpa2_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex@SUFFIX@.sh
	chmod +x elpa2_test_complex@SUFFIX@.sh
700

701
702
703
elpa2_test_complex_default_kernel@SUFFIX@.sh:
	echo './elpa2_test_complex_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_default_kernel@SUFFIX@.sh
	chmod +x elpa2_test_complex_default_kernel@SUFFIX@.sh
704

705
706
707
elpa2_test_complex_choose_kernel_with_api@SUFFIX@.sh:
	echo './elpa2_test_complex_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_choose_kernel_with_api@SUFFIX@.sh
	chmod +x elpa2_test_complex_choose_kernel_with_api@SUFFIX@.sh
708
709

if WANT_SINGLE_PRECISION_REAL
710
711
712
elpa1_test_real_single_precision@SUFFIX@.sh:
	echo './elpa1_test_real_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_single_precision@SUFFIX@.sh
	chmod +x elpa1_test_real_single_precision@SUFFIX@.sh
713

714
715
716
elpa2_test_real_single_precision@SUFFIX@.sh:
	echo './elpa2_test_real_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_single_precision@SUFFIX@.sh
717

718
719
720
elpa2_test_real_default_kernel_single_precision@SUFFIX@.sh:
	echo './elpa2_test_real_default_kernel_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_default_kernel_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_default_kernel_single_precision@SUFFIX@.sh
721

722
723
724
elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@.sh:
	echo './elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@' > elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@.sh
725

726
727
728
elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@.sh:
	echo './elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@.sh
729
730
731
endif

if WANT_SINGLE_PRECISION_COMPLEX
732
733
734
elpa1_test_complex_single_precision@SUFFIX@.sh:
	echo './elpa1_test_complex_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex_single_precision@SUFFIX@.sh
	chmod +x elpa1_test_complex_single_precision@SUFFIX@.sh
735

736
737
738
elpa2_test_complex_single_precision@SUFFIX@.sh:
	echo './elpa2_test_complex_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_complex_single_precision@SUFFIX@.sh
739

740
741
742
elpa2_test_complex_default_kernel_single_precision@SUFFIX@.sh:
	echo './elpa2_test_complex_default_kernel_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_default_kernel_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_complex_default_kernel_single_precision@SUFFIX@.sh
743

744
745
746
elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@.sh:
	echo './elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@.sh
747
748
749
endif

if WITH_GPU_VERSION
750
751
752
elpa2_test_real_gpu_version@SUFFIX@.sh:
	echo './elpa2_test_real_gpu_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_gpu_version@SUFFIX@.sh
	chmod +x elpa2_test_real_gpu_version@SUFFIX@.sh
753

754
755
756
elpa2_test_complex_gpu_version@SUFFIX@.sh:
	echo './elpa2_test_complex_gpu_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_gpu_version@SUFFIX@.sh
	chmod +x elpa2_test_complex_gpu_version@SUFFIX@.sh
757
758

if WANT_SINGLE_PRECISION_REAL
759
760
761
elpa2_test_real_gpu_version_single_precision@SUFFIX@.sh:
	echo './elpa2_test_real_gpu_version_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_gpu_version_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_real_gpu_version_single_precision@SUFFIX@.sh
762
763
764
endif

if WANT_SINGLE_PRECISION_COMPLEX
765
766
767
elpa2_test_complex_gpu_version_single_precision@SUFFIX@.sh:
	echo './elpa2_test_complex_gpu_version_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_gpu_version_single_precision@SUFFIX@.sh
	chmod +x elpa2_test_complex_gpu_version_single_precision@SUFFIX@.sh
768
769
770
771
772
773
774
775
776
endif
# GPU_VERSION
endif



# use mpi
endif

777
778
mod_precision.i: $(top_srcdir)/src/mod_precision.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -I$(top_srcdir)/ -c $(top_srcdir)/src/mod_precision.F90 -o $@
Andreas Marek's avatar
Andreas Marek committed
779

Andreas Marek's avatar
Andreas Marek committed
780
elpa2_utilities.i: $(top_srcdir)/src/elpa2_utilities.F90
781
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -I$(top_srcdir)/ -c $(top_srcdir)/src/elpa2_utilities.F90 -o $@
Andreas Marek's avatar
Andreas Marek committed
782

Andreas Marek's avatar
Andreas Marek committed
783
elpa2.i: $(top_srcdir)/src/elpa2.F90
784
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -I$(top_srcdir)/ -c $(top_srcdir)/src/elpa2.F90 -o $@
785

Andreas Marek's avatar
Andreas Marek committed
786
elpa1.i: $(top_srcdir)/src/elpa1.F90
787
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -I$(top_srcdir)/ -c $(top_srcdir)/src/elpa1.F90 -o $@
788

789
790
791
elpa1_compute.i: $(top_srcdir)/src/elpa1_compute.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -I$(top_srcdir)/ -c $(top_srcdir)/src/elpa1_compute.F90 -o $@

792
793
794
elpa2_compute.i: $(top_srcdir)/src/elpa2_compute.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -I$(top_srcdir)/ -c $(top_srcdir)/src/elpa2_compute.F90 -o $@

795
796
797
elpa2_kernels_real.i: $(top_srcdir)/src/elpa2_kernels/elpa2_kernels_real.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/src/elpa2_kernels/elpa2_kernels_real.F90 -o $@

798
799
800
mod_compute_hh_trafo_real.i: $(top_srcdir)/src/mod_compute_hh_trafo_real.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/src/mod_compute_hh_trafo_real.F90 -o $@

801
802
803
mod_compute_hh_trafo_complex.i: $(top_srcdir)/src/mod_compute_hh_trafo_complex.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/src/mod_compute_hh_trafo_complex.F90 -o $@

804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
test_real.i: $(top_srcdir)/test/fortran_test_programs/test_real.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/test/fortran_test_programs/test_real.F90 -o $@

blacs_infrastructure.i: $(top_srcdir)/test/shared_sources/blacs_infrastructure.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/test/shared_sources/blacs_infrastructure.F90 -o $@

check_correctnes.i: $(top_srcdir)/test/shared_sources/check_correctnes.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/test/shared_sources/check_correctnes.F90 -o $@

prepare_matrix.i: $(top_srcdir)/test/shared_sources/prepare_matrix.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/test/shared_sources/prepare_matrix.F90 -o $@

read_input_parameters.i: $(top_srcdir)/test/shared_sources/read_input_parameters.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/test/shared_sources/read_input_parameters.F90 -o $@

setup_mpi.i: $(top_srcdir)/test/shared_sources/setup_mpi.F90
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/test/shared_sources/setup_mpi.F90 -o $@

cuUtils.i: $(top_srcdir)/src/cuUtils.cu
	$(CPP) $(CPPFLAGS) -I$(top_builddir)/ -c $(top_srcdir)/src/cuUtils.cu -o $@

825
826
include doxygen.am

827
CLEANFILES = \
Andreas Marek's avatar
Andreas Marek committed
828
  elpa1_test* \
829
  elpa2_test*\
830
  *.i
831
832

clean-local:
Lorenz Huedepohl's avatar
Lorenz Huedepohl committed
833
834
835
836
	-rm -rf modules/* .fortran_dependencies/*

distclean-local:
	-rm config-f90.h
837
838
839
	-rm -rf ./src/elpa2_kernels/.deps
	-rm -rf ./src/.deps
	-rm -rf ./test/.deps
840
	-rm -rf ./elpa/elpa_generated.h
Lorenz Huedepohl's avatar
Lorenz Huedepohl committed
841
	-rmdir ./src/elpa2_kernels/
842
843
	-rmdir ./src
	-rmdir ./test
844
	-rmdir ./m4
845
	-rmdir modules/
Lorenz Huedepohl's avatar
Lorenz Huedepohl committed
846
	-rmdir .fortran_dependencies/
847

848
849
850
EXTRA_DIST = \
  fdep/fortran_dependencies.pl \
  fdep/fortran_dependencies.mk \
851
  test/fortran_test_programs/elpa_test_programs_print_headers.X90 \
852
853
  src/elpa_reduce_add_vectors.X90 \
  src/elpa_transpose_vectors.X90 \
854
855
856
857
  src/elpa1_compute_template_real.X90 \
  src/elpa1_compute_template_complex.X90 \
  src/elpa2_compute_template_real.X90 \
  src/elpa2_compute_template_complex.X90 \
858
  src/redist_band.X90 \
859
860
861
862
863
  src/elpa_qr/elpa_qrkernels.X90 \
  src/ev_tridi_band_gpu_c_v2_complex_template.Xcu \
  src/ev_tridi_band_gpu_c_v2_real_template.Xcu \
  src/cuUtils_complex_template.Xcu \
  src/cuUtils_real_template.Xcu \
864
  nvcc_wrap
865

866
867
868
869
870
871
# Rules to re-generated the headers
elpa/elpa_generated.h: $(top_srcdir)/src/elpa_c_interface.F90
	grep -h "^ *!c>" $^ | sed 's/^ *!c>//;' > $@ || { rm $@; exit 1; }

test/shared_sources/generated.h: $(wildcard $(top_srcdir)/test/shared_sources/*.F90)
	grep -h "^ *!c>" $^ | sed 's/^ *!c>//;' > $@ || { rm $@; exit 1; }
872

873
874
875
LIBTOOL_DEPS = @LIBTOOL_DEPS@
libtool: $(LIBTOOL_DEPS)
	$(SHELL) ./config.status libtool
876

877

878
@FORTRAN_MODULE_DEPS@
879
880
881
882
883

# Fortran module dependencies only work within each target,
# specify that the test programs need a finished library before
# one can compile them

884
# $1  Object name
885
define require_elpa_lib
886
$1: libelpa@SUFFIX@.la
887
888

endef
889
$(foreach p,$(bin_PROGRAMS) $(noinst_PROGRAMS),$(foreach o,$($p_OBJECTS),$(eval $(call require_elpa_lib,$o))))