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