Makefile.am 36.6 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
42
43
44
45
46
47
48
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

49
if WITH_GPU_VERSION
50
51
  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
52
53
endif

54
55
56
57
58
59
60
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
61
if WITH_REAL_GENERIC_KERNEL
62
  libelpa@SUFFIX@_la_SOURCES +=  src/elpa2_kernels/elpa2_kernels_real.F90
63
64
endif

Andreas Marek's avatar
Andreas Marek committed
65
if WITH_COMPLEX_GENERIC_KERNEL
66
  libelpa@SUFFIX@_la_SOURCES +=  src/elpa2_kernels/elpa2_kernels_complex.F90
67
68
endif

Andreas Marek's avatar
Andreas Marek committed
69
if WITH_REAL_GENERIC_SIMPLE_KERNEL
70
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_simple.F90
71
72
endif

Andreas Marek's avatar
Andreas Marek committed
73
if WITH_COMPLEX_GENERIC_SIMPLE_KERNEL
74
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_simple.F90
75
76
endif

Andreas Marek's avatar
Andreas Marek committed
77
if WITH_REAL_BGP_KERNEL
78
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_bgp.f90
79
80
endif

Andreas Marek's avatar
Andreas Marek committed
81
if WITH_REAL_BGQ_KERNEL
82
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_bgq.f90
83
84
endif

85
if WITH_REAL_SSE_ASSEMBLY_KERNEL
86
87
88
89
  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
90

Andreas Marek's avatar
Andreas Marek committed
91
else
92
if WITH_COMPLEX_SSE_ASSEMBLY_KERNEL
93
94
95
96
  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
97
98
endif
endif
Andreas Marek's avatar
Andreas Marek committed
99

100
if WITH_REAL_SSE_BLOCK2_KERNEL
101
102
103
104
  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
105
106
endif

Andreas Marek's avatar
Andreas Marek committed
107
if WITH_REAL_AVX_BLOCK2_KERNEL
108
109
110
111
  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
112
113
endif

114
if WITH_REAL_SSE_BLOCK4_KERNEL
115
116
117
118
  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
119
120
endif

Andreas Marek's avatar
Andreas Marek committed
121
if WITH_REAL_AVX_BLOCK4_KERNEL
122
123
124
125
  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
126
127
endif

128
if WITH_REAL_SSE_BLOCK6_KERNEL
129
130
131
132
  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
133
134
endif

Andreas Marek's avatar
Andreas Marek committed
135
if WITH_REAL_AVX_BLOCK6_KERNEL
136
137
138
139
  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
140
141
endif

142
if WITH_COMPLEX_SSE_BLOCK1_KERNEL
143
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse_1hv_double_precision.c
144
if WANT_SINGLE_PRECISION_COMPLEX
145
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse_1hv_single_precision.c
146
endif
147
148
endif

Andreas Marek's avatar
Andreas Marek committed
149
if WITH_COMPLEX_AVX_BLOCK1_KERNEL
150
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_1hv_double_precision.c
151
if WANT_SINGLE_PRECISION_COMPLEX
152
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_1hv_single_precision.c
153
endif
154
155
endif

156
if WITH_COMPLEX_SSE_BLOCK2_KERNEL
157
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse_2hv_double_precision.c
158
if WANT_SINGLE_PRECISION_COMPLEX
159
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse_2hv_single_precision.c
160
endif
161
162
endif

Andreas Marek's avatar
Andreas Marek committed
163
if WITH_COMPLEX_AVX_BLOCK2_KERNEL
164
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_2hv_double_precision.c
165
if WANT_SINGLE_PRECISION_COMPLEX
166
  libelpa@SUFFIX@_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_2hv_single_precision.c
167
endif
168
169
endif

170
.cu.lo:
171
	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
172

173
# install any .mod files in the include/ dir
174
elpa_includedir = $(includedir)/elpa@SUFFIX@-@PACKAGE_VERSION@
175
nobase_elpa_include_HEADERS = $(wildcard modules/*)
Andreas Marek's avatar
Andreas Marek committed
176
nobase_elpa_include_HEADERS += elpa/elpa.h elpa/elpa_kernel_constants.h elpa/elpa_generated.h
177

Andreas Marek's avatar
Andreas Marek committed
178
man_MANS = man/solve_evp_real.3 \
179
	   man/solve_evp_real_1stage_double.3 \
Andreas Marek's avatar
Andreas Marek committed
180
	   man/solve_evp_complex.3 \
181
182
183
	   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
184
	   man/get_elpa_row_col_comms.3 \
185
	   man/get_elpa_communicators.3 \
Andreas Marek's avatar
Andreas Marek committed
186
187
	   man/print_available_elpa2_kernels.1

188
189
190
191
192
193
194
195
196
197
198
199
200
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


201
# other files to distribute
202
filesdir = $(docdir)/examples
203
dist_files_DATA = \
Andreas Marek's avatar
Andreas Marek committed
204
205
206
207
208
209
210
211
212
213
214
  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 \
215
  src/print_available_elpa2_kernels.F90
216

217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
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
245
246
dist_doc_DATA = README COPYING/COPYING COPYING/gpl.txt COPYING/lgpl.txt

247
248
# pkg-config stuff
pkgconfigdir = $(libdir)/pkgconfig
249
pkgconfig_DATA = @PKG_CONFIG_FILE@
250

251
252
# programs
bin_PROGRAMS = \
253
  elpa2_print_kernels@SUFFIX@
254
255

noinst_PROGRAMS = \
256
  elpa2_test_real_default_kernel@SUFFIX@ \
257
  elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@ \
258
259
  elpa2_test_complex_default_kernel@SUFFIX@ \
  elpa2_test_real_choose_kernel_with_api@SUFFIX@ \
Andreas Marek's avatar
Andreas Marek committed
260
  elpa2_test_complex_choose_kernel_with_api@SUFFIX@ \
261
262
263
264
265
  elpa1_test_real_with_c@SUFFIX@ \
  elpa1_test_complex@SUFFIX@ \
  elpa1_test_real@SUFFIX@ \
  elpa2_test_complex@SUFFIX@ \
  elpa2_test_real@SUFFIX@
Andreas Marek's avatar
Andreas Marek committed
266

Andreas Marek's avatar
Andreas Marek committed
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
if WITH_OPENMP
noinst_PROGRAMS = \
  elpa2_test_real_default_kernel@SUFFIX@ \
  elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@ \
  elpa2_test_complex_default_kernel@SUFFIX@ \
  elpa2_test_real_choose_kernel_with_api@SUFFIX@ \
  elpa2_test_complex_choose_kernel_with_api@SUFFIX@ \
  elpa1_test_real_with_c@SUFFIX@ \
  elpa1_test_complex@SUFFIX@ \
  elpa1_test_real@SUFFIX@ \
  elpa2_test_complex@SUFFIX@ \
  elpa2_test_real@SUFFIX@
else
noinst_PROGRAMS += \
  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

287
288
if WANT_SINGLE_PRECISION_COMPLEX
noinst_PROGRAMS += \
289
290
  elpa1_test_complex_single_precision@SUFFIX@ \
  elpa2_test_complex_single_precision@SUFFIX@ \
291
292
293
294
295
296
  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 += \
297
298
  elpa1_test_real_single_precision@SUFFIX@ \
  elpa2_test_real_single_precision@SUFFIX@ \
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
  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

321

322
build_lib = libelpa@SUFFIX@.la
Andreas Marek's avatar
Andreas Marek committed
323

324
if HAVE_REDIRECT
Andreas Marek's avatar
Andreas Marek committed
325
  redirect_sources = test/shared_sources/redir.c test/shared_sources/redirect.F90
326
327
328
329
else
  redirect_sources =
endif

330
331
332
333
334
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 \
335
		 test/shared_sources/mod_output_types.F90 \
336
		 test/shared_sources/prepare_matrix.F90
Andreas Marek's avatar
Andreas Marek committed
337

Andreas Marek's avatar
Andreas Marek committed
338
if !WITH_OPENMP
Andreas Marek's avatar
Andreas Marek committed
339
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
340
elpa1_test_real_c_version@SUFFIX@_LDADD = $(build_lib)
341
elpa1_test_real_c_version@SUFFIX@_LINK = $(LINK) $(FCLIBS)
Andreas Marek's avatar
Andreas Marek committed
342

Andreas Marek's avatar
Andreas Marek committed
343
344
345
346
347
348
349
350
351
352
353
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)

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)

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)
Andreas Marek's avatar
Andreas Marek committed
354
endif
Andreas Marek's avatar
Andreas Marek committed
355
356

elpa1_test_real@SUFFIX@_SOURCES = test/fortran_test_programs/test_real.F90 $(shared_sources) $(redirect_sources)
357
elpa1_test_real@SUFFIX@_LDADD = $(build_lib)
358

Andreas Marek's avatar
Andreas Marek committed
359
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)
Andreas Marek's avatar
Andreas Marek committed
360
361
elpa1_test_real_with_c@SUFFIX@_LDADD = $(build_lib)

362
363
#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)
Andreas Marek's avatar
Andreas Marek committed
364
365

elpa2_test_real@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2.F90 $(shared_sources) $(redirect_sources)
366
elpa2_test_real@SUFFIX@_LDFLAGS = -static
367
elpa2_test_real@SUFFIX@_LDADD = $(build_lib)
368

Andreas Marek's avatar
Andreas Marek committed
369
elpa2_test_real_default_kernel@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_default_kernel.F90 $(shared_sources) $(redirect_sources)
370
elpa2_test_real_default_kernel@SUFFIX@_LDADD = $(build_lib)
371

Andreas Marek's avatar
Andreas Marek committed
372
elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_default_kernel_qr_decomposition.F90 $(shared_sources) $(redirect_sources)
373
374
elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@_LDADD = $(build_lib)

Andreas Marek's avatar
Andreas Marek committed
375
elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_choose_kernel_with_api.F90 $(shared_sources) $(redirect_sources)
376
elpa2_test_real_choose_kernel_with_api@SUFFIX@_LDADD = $(build_lib)
Andreas Marek's avatar
Andreas Marek committed
377

Andreas Marek's avatar
Andreas Marek committed
378
elpa1_test_complex@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex.F90 $(shared_sources) $(redirect_sources)
379
elpa1_test_complex@SUFFIX@_LDADD = $(build_lib)
Andreas Marek's avatar
Andreas Marek committed
380

Andreas Marek's avatar
Andreas Marek committed
381
elpa2_test_complex@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2.F90 $(shared_sources) $(redirect_sources)
382
elpa2_test_complex@SUFFIX@_LDADD = $(build_lib)
383

Andreas Marek's avatar
Andreas Marek committed
384
elpa2_test_complex_default_kernel@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2_default_kernel.F90 $(shared_sources) $(redirect_sources)
385
elpa2_test_complex_default_kernel@SUFFIX@_LDADD = $(build_lib)
386

Andreas Marek's avatar
Andreas Marek committed
387
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_SOURCES = test/fortran_test_programs/test_complex2_choose_kernel_with_api.F90 $(shared_sources) $(redirect_sources)
388
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_LDADD = $(build_lib)
Andreas Marek's avatar
Andreas Marek committed
389

Andreas Marek's avatar
Andreas Marek committed
390
elpa2_print_kernels@SUFFIX@_SOURCES = src/print_available_elpa2_kernels.F90 $(shared_sources) $(redirect_sources)
391
elpa2_print_kernels@SUFFIX@_LDADD = $(build_lib)
Andreas Marek's avatar
Andreas Marek committed
392

393
394
395
396
397
398
399
400
401
402
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)

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)

elpa2_test_real_default_kernel_single_precision@SUFFIX@_SOURCES = test/fortran_test_programs/test_real2_default_kernel_single_precision.F90 $(shared_sources) $(redirect_sources)
elpa2_test_real_default_kernel_single_precision@SUFFIX@_LDADD = $(build_lib)
403
#elpa2_test_real_default_kernel_single_precision@SUFFIX@_LDFLAGS = -static
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420

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)
elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@_LDADD = $(build_lib)

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)
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)

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)

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)
421
#elpa2_test_complex_default_kernel_single_precision@SUFFIX@_LDFLAGS = -static
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445

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)
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)

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)

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)
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)
endif

endif

446
check_SCRIPTS = \
447
  elpa1_test_real.sh \
Andreas Marek's avatar
Andreas Marek committed
448
  elpa1_test_real_with_c.sh \
449
450
451
452
453
  elpa2_test_real.sh \
  elpa2_test_real_default_kernel.sh \
  elpa1_test_complex.sh \
  elpa2_test_complex.sh \
  elpa2_test_complex_default_kernel.sh \
454
  elpa2_test_real_default_kernel_qr_decomposition.sh \
455
456
457
  elpa2_test_real_choose_kernel_with_api.sh \
  elpa2_test_complex_choose_kernel_with_api.sh \
  elpa2_print_kernels@SUFFIX@
458

Andreas Marek's avatar
Andreas Marek committed
459
460
461
462
463
464
465
466
if !WITH_OPENMP
check_SCRIPTS += \
  elpa1_test_real_c_version.sh \
  elpa1_test_complex_c_version.sh \
  elpa2_test_real_c_version.sh \
  elpa2_test_complex_c_version.sh
endif

467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
if WANT_SINGLE_PRECISION_REAL
check_SCRIPTS += \
  elpa1_test_real_single_precision.sh \
  elpa2_test_real_single_precision.sh \
  elpa2_test_real_default_kernel_single_precision.sh \
  elpa2_test_real_default_kernel_qr_decomposition_single_precision.sh \
  elpa2_test_real_choose_kernel_with_api_single_precision.sh
endif

if WANT_SINGLE_PRECISION_COMPLEX
check_SCRIPTS += \
  elpa1_test_complex_single_precision.sh \
  elpa2_test_complex_single_precision.sh \
  elpa2_test_complex_default_kernel_single_precision.sh
endif

if WITH_GPU_VERSION
check_SCRIPTS += \
  elpa2_test_real_gpu_version.sh \
  elpa2_test_complex_gpu_version.sh
if WANT_SINGLE_PRECISION_REAL
check_SCRIPTS += \
  elpa2_test_real_gpu_version_single_precision.sh
endif
if WANT_SINGLE_PRECISION_COMPLEX
check_SCRIPTS += \
  elpa2_test_complex_gpu_version_single_precision.sh
endif

endif

498
TESTS = $(check_SCRIPTS)
499
if WITH_MPI
500
elpa1_test_real.sh:
501
	echo 'mpiexec -n 2 ./elpa1_test_real@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real.sh
502
	chmod +x elpa1_test_real.sh
503

Andreas Marek's avatar
Andreas Marek committed
504
505
506
507
elpa1_test_real_with_c.sh:
	echo 'mpiexec -n 2 ./elpa1_test_real_with_c@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_with_c.sh
	chmod +x elpa1_test_real_with_c.sh

Andreas Marek's avatar
Andreas Marek committed
508
509
510
511
512
513
514
515
elpa2_test_real_c_version.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_c_version.sh
	chmod +x elpa2_test_real_c_version.sh

elpa2_test_complex_c_version.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_c_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_c_version.sh
	chmod +x elpa2_test_complex_c_version.sh

Andreas Marek's avatar
Andreas Marek committed
516
517
518
519
elpa1_test_real_c_version.sh:
	echo 'mpiexec -n 2 ./elpa1_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_c_version.sh
	chmod +x elpa1_test_real_c_version.sh

Andreas Marek's avatar
Andreas Marek committed
520
521
522
elpa1_test_complex_c_version.sh:
	echo 'mpiexec -n 2 ./elpa1_test_complex_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex_c_version.sh
	chmod +x elpa1_test_complex_c_version.sh
523

524
elpa2_test_real.sh:
525
	echo 'mpiexec -n 2 ./elpa2_test_real@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real.sh
526
	chmod +x elpa2_test_real.sh
527

528
elpa2_test_real_default_kernel.sh:
529
	echo 'mpiexec -n 2 ./elpa2_test_real_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_default_kernel.sh
530
	chmod +x elpa2_test_real_default_kernel.sh
Andreas Marek's avatar
Andreas Marek committed
531

532
elpa2_test_real_default_kernel_qr_decomposition.sh:
533
	echo 'mpiexec -n 2 ./elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@' > elpa2_test_real_default_kernel_qr_decomposition.sh
534
535
	chmod +x elpa2_test_real_default_kernel_qr_decomposition.sh

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

540
elpa1_test_complex.sh:
541
	echo 'mpiexec -n 2 ./elpa1_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex.sh
542
	chmod +x elpa1_test_complex.sh
543

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

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

552
elpa2_test_complex_choose_kernel_with_api.sh:
553
	echo 'mpiexec -n 2 ./elpa2_test_complex_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_choose_kernel_with_api.sh
554
	chmod +x elpa2_test_complex_choose_kernel_with_api.sh
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745

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

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

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

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

elpa2_test_real_choose_kernel_with_api_single_precision.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.sh
	chmod +x elpa2_test_real_choose_kernel_with_api_single_precision.sh
endif

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

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

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

elpa2_test_complex_choose_kernel_with_api_single_precision.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.sh
	chmod +x elpa2_test_complex_choose_kernel_with_api_single_precision.sh
endif

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

elpa2_test_complex_gpu_version.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_gpu_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_gpu_version.sh
	chmod +x elpa2_test_complex_gpu_version.sh

if WANT_SINGLE_PRECISION_REAL
elpa2_test_real_gpu_version_single_precision.sh:
	echo 'mpiexec -n 2 ./elpa2_test_real_gpu_version_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_gpu_version_single_precision.sh
	chmod +x elpa2_test_real_gpu_version_single_precision.sh
endif

if WANT_SINGLE_PRECISION_COMPLEX
elpa2_test_complex_gpu_version_single_precision.sh:
	echo 'mpiexec -n 2 ./elpa2_test_complex_gpu_version_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_gpu_version_single_precision.sh
	chmod +x elpa2_test_complex_gpu_version_single_precision.sh
endif
# GPU_VERSION
endif

else
# build tests without mpi support

elpa1_test_real.sh:
	echo './elpa1_test_real@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real.sh
	chmod +x elpa1_test_real.sh

elpa1_test_real_with_c.sh:
	echo './elpa1_test_real_with_c@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_with_c.sh
	chmod +x elpa1_test_real_with_c.sh

elpa2_test_real_c_version.sh:
	echo './elpa2_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_c_version.sh
	chmod +x elpa2_test_real_c_version.sh

elpa2_test_complex_c_version.sh:
	echo './elpa2_test_complex_c_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_c_version.sh
	chmod +x elpa2_test_complex_c_version.sh

elpa1_test_real_c_version.sh:
	echo './elpa1_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_c_version.sh
	chmod +x elpa1_test_real_c_version.sh

elpa1_test_complex_c_version.sh:
	echo './elpa1_test_complex_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex_c_version.sh
	chmod +x elpa1_test_complex_c_version.sh

elpa2_test_real.sh:
	echo './elpa2_test_real@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real.sh
	chmod +x elpa2_test_real.sh

elpa2_test_real_default_kernel.sh:
	echo './elpa2_test_real_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_default_kernel.sh
	chmod +x elpa2_test_real_default_kernel.sh

elpa2_test_real_default_kernel_qr_decomposition.sh:
	echo './elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@' > elpa2_test_real_default_kernel_qr_decomposition.sh
	chmod +x elpa2_test_real_default_kernel_qr_decomposition.sh

elpa2_test_real_choose_kernel_with_api.sh:
	echo './elpa2_test_real_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_choose_kernel_with_api.sh
	chmod +x elpa2_test_real_choose_kernel_with_api.sh

elpa1_test_complex.sh:
	echo './elpa1_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex.sh
	chmod +x elpa1_test_complex.sh

elpa2_test_complex.sh:
	echo './elpa2_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex.sh
	chmod +x elpa2_test_complex.sh

elpa2_test_complex_default_kernel.sh:
	echo './elpa2_test_complex_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_default_kernel.sh
	chmod +x elpa2_test_complex_default_kernel.sh

elpa2_test_complex_choose_kernel_with_api.sh:
	echo './elpa2_test_complex_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_choose_kernel_with_api.sh
	chmod +x elpa2_test_complex_choose_kernel_with_api.sh

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

elpa2_test_real_single_precision.sh:
	echo './elpa2_test_real_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_single_precision.sh
	chmod +x elpa2_test_real_single_precision.sh

elpa2_test_real_default_kernel_single_precision.sh:
	echo './elpa2_test_real_default_kernel_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_default_kernel_single_precision.sh
	chmod +x elpa2_test_real_default_kernel_single_precision.sh

elpa2_test_real_default_kernel_qr_decomposition_single_precision.sh:
	echo './elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@' > elpa2_test_real_default_kernel_qr_decomposition_single_precision.sh
	chmod +x elpa2_test_real_default_kernel_qr_decomposition_single_precision.sh

elpa2_test_real_choose_kernel_with_api_single_precision.sh:
	echo './elpa2_test_real_choose_kernel_with_api_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_choose_kernel_with_api_single_precision.sh
	chmod +x elpa2_test_real_choose_kernel_with_api_single_precision.sh
endif

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

elpa2_test_complex_single_precision.sh:
	echo './elpa2_test_complex_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_single_precision.sh
	chmod +x elpa2_test_complex_single_precision.sh

elpa2_test_complex_default_kernel_single_precision.sh:
	echo './elpa2_test_complex_default_kernel_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_default_kernel_single_precision.sh
	chmod +x elpa2_test_complex_default_kernel_single_precision.sh

elpa2_test_complex_choose_kernel_with_api_single_precision.sh:
	echo './elpa2_test_complex_choose_kernel_with_api_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_choose_kernel_with_api_single_precision.sh
	chmod +x elpa2_test_complex_choose_kernel_with_api_single_precision.sh
endif

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

elpa2_test_complex_gpu_version.sh:
	echo './elpa2_test_complex_gpu_version@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_gpu_version.sh
	chmod +x elpa2_test_complex_gpu_version.sh

if WANT_SINGLE_PRECISION_REAL
elpa2_test_real_gpu_version_single_precision.sh:
	echo './elpa2_test_real_gpu_version_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_gpu_version_single_precision.sh
	chmod +x elpa2_test_real_gpu_version_single_precision.sh
endif

if WANT_SINGLE_PRECISION_COMPLEX
elpa2_test_complex_gpu_version_single_precision.sh:
	echo './elpa2_test_complex_gpu_version_single_precision@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_gpu_version_single_precision.sh
	chmod +x elpa2_test_complex_gpu_version_single_precision.sh
endif
# GPU_VERSION
endif



# use mpi
endif

746
747
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
748

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

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

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

758
759
760
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 $@

761
762
763
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 $@

764
765
766
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 $@

767
768
769
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 $@

770
771
772
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 $@

773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
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 $@

794
795
include doxygen.am

796
CLEANFILES = \
797
  elpa/elpa-generated.h \
Andreas Marek's avatar
Andreas Marek committed
798
  elpa/elpa_generated_fortran_interfaces.h \
799
  elpa1_test_complex.sh \
Andreas Marek's avatar
Andreas Marek committed
800
801
802
803
804
805
  elpa1_test_complex_c_version.sh \
  elpa1_test_complex_single_precision.sh \
  elpa1_test_real.sh \
  elpa1_test_real_c_version.sh \
  elpa1_test_real_single_precision.sh \
  elpa1_test_real_with_c.sh \
806
  elpa2_test_complex.sh \
Andreas Marek's avatar
Andreas Marek committed
807
  elpa2_test_complex_c_version.sh \
808
  elpa2_test_complex_choose_kernel_with_api.sh \
Andreas Marek's avatar
Andreas Marek committed
809
810
811
812
  elpa2_test_complex_default_kernel.sh \
  elpa2_test_complex_default_kernel_single_precision.sh \
  elpa2_test_real.sh \
  elpa2_test_real_single_precision.sh \
Andreas Marek's avatar
Andreas Marek committed
813
  elpa2_test_real_c_version.sh \
Andreas Marek's avatar
Andreas Marek committed
814
815
816
817
818
819
820
  elpa2_test_real_choose_kernel_with_api.sh \
  elpa2_test_real_choose_kernel_with_api_single_precision.sh \
  elpa2_test_real_default_kernel.sh \
  elpa2_test_real_default_kernel_qr_decomposition.sh \
  elpa2_test_real_default_kernel_qr_decomposition_single_precision.sh \
  elpa2_test* \
  elpa1_test* \
821
  *.i
822
823

clean-local:
Lorenz Huedepohl's avatar
Lorenz Huedepohl committed
824
825
826
827
	-rm -rf modules/* .fortran_dependencies/*

distclean-local:
	-rm config-f90.h
828
829
830
	-rm -rf ./src/elpa2_kernels/.deps
	-rm -rf ./src/.deps
	-rm -rf ./test/.deps
831
	-rm -rf ./elpa/elpa_generated.h
Lorenz Huedepohl's avatar
Lorenz Huedepohl committed
832
	-rmdir ./src/elpa2_kernels/
833
834
	-rmdir ./src
	-rmdir ./test
835
	-rmdir ./m4
836
	-rmdir modules/
Lorenz Huedepohl's avatar
Lorenz Huedepohl committed
837
	-rmdir .fortran_dependencies/
838

839
840
841
EXTRA_DIST = \
  fdep/fortran_dependencies.pl \
  fdep/fortran_dependencies.mk \
842
  test/fortran_test_programs/elpa_test_programs_print_headers.X90 \
843
844
  src/elpa_reduce_add_vectors.X90 \
  src/elpa_transpose_vectors.X90 \
845
846
847
848
  src/elpa1_compute_template_real.X90 \
  src/elpa1_compute_template_complex.X90 \
  src/elpa2_compute_template_real.X90 \
  src/elpa2_compute_template_complex.X90 \
849
  src/redist_band.X90 \
850
851
852
853
854
  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 \
855
  nvcc_wrap
856

857
858
859
860
861
862
# 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; }
863

864
865
866
LIBTOOL_DEPS = @LIBTOOL_DEPS@
libtool: $(LIBTOOL_DEPS)
	$(SHELL) ./config.status libtool
867

868

869
@FORTRAN_MODULE_DEPS@
870
871
872
873
874

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

875
# $1  Object name
876
define require_elpa_lib
877
$1: libelpa@SUFFIX@.la
878
879

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