Makefile.am 3.7 KB
Newer Older
1
2
3
4
5
6
7
8
9
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4

AM_FCFLAGS = @AM_FCFLAGS@ @FC_MODINC@modules @FC_MODOUT@modules 

AM_LDFLAGS = @AM_LDFLAGS@ @BLACS_LDFLAGS@

BLACS_LDFLAGS = @BLACS_LDFLAGS@

# libelpa
10
lib_LTLIBRARIES = libelpa.la
11
12
13
14
15
16

##rule to produce fortran config file:
#config_f90.h: ./config.h
#	grep "^#define" ./config.h > $@


17
libelpa_la_SOURCES = src/elpa1.f90 src/elpa2.F90
18
19
20


if WITH_GENERIC_SIMPLE
21
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_simple.f90 \
Andreas Marek's avatar
Andreas Marek committed
22
                        src/elpa2_kernels/elpa2_kernels_real_simple.f90
23
24
25
endif

if WITH_GENERIC
26
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex.f90 \
Andreas Marek's avatar
Andreas Marek committed
27
                       src/elpa2_kernels/elpa2_kernels_real.f90
28
29
30
endif

if WITH_BGP
31
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_bgp.f90 \
Andreas Marek's avatar
Andreas Marek committed
32
                        src/elpa2_kernels/elpa2_kernels_complex.f90 
33
34
35
endif

if WITH_BGQ
36
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_bgq.f90 \
Andreas Marek's avatar
Andreas Marek committed
37
                        src/elpa2_kernels/elpa2_kernels_complex.f90 
38
39
40
endif

if WITH_SSE_AS
41
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_asm_x86_64.s
42
43
44
endif

if WITH_AVX_SANDYBRIDGE
45
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse-avx_2hv.c \
Andreas Marek's avatar
Andreas Marek committed
46
                        src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp
47
48
49
endif

if WITH_AMD_BULLDOZER
50
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse-avx_4hv.c \
Andreas Marek's avatar
Andreas Marek committed
51
52
                        src/elpa2_kernels/elpa2_kernels_real_sse-avx_2hv.c \
                        src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp
53
54
endif
if WITH_AVX_COMPLEX_BLOCK1
55
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp
56
57
58
endif

if WITH_AVX_COMPLEX_BLOCK2
59
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex_sse-avx_2hv.cpp \
Andreas Marek's avatar
Andreas Marek committed
60
                        src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp
61
62
63
endif

if WITH_AVX_REAL_BLOCK2
64
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse-avx_2hv.c
65
66
67
endif

if WITH_AVX_REAL_BLOCK4
68
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse-avx_4hv.c
69
70
71
endif

if WITH_AVX_REAL_BLOCK6
72
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse-avx_6hv.c
73
74
75
endif


76
libelpa_la_LDFLAGS = -version-info $(ELPA_SO_VERSION)
77
78

# install any .mod files in the include/ dir
79
elpa_includedir = $(includedir)/elpa
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
nobase_elpa_include_HEADERS = $(wildcard modules/*)

# other files to distribute
filesdir = $(datarootdir)
files_DATA = \
	test/read_real.f90 \
	test/read_real_gen.f90 \
	test/test_complex2.f90 \
	test/test_complex.f90 \
	test/test_complex_gen.f90 \
	test/test_real2.f90 \
	test/test_real.f90 \
	test/test_real_gen.f90

# pkg-config stuff
pkgconfigdir = $(libdir)/pkgconfig
96
pkgconfig_DATA = elpa.pc
97
98
99
100
101
102

# test programs
noinst_bindir = $(abs_top_builddir)
noinst_bin_PROGRAMS = test_real test_real2 test_complex test_complex2

test_real_SOURCES = test/test_real.f90
103
test_real_LDADD = libelpa.la 
104
105

test_real2_SOURCES = test/test_real2.f90
106
test_real2_LDADD = libelpa.la 
107
108

test_complex_SOURCES = test/test_complex.f90
109
test_complex_LDADD = libelpa.la
110
111

test_complex2_SOURCES = test/test_complex2.f90
112
test_complex2_LDADD = libelpa.la
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135


check_SCRIPTS = test_real.sh test_real2.sh test_complex.sh test_complex2.sh   
TESTS = $(check_SCRIPTS)

test_real.sh:
	echo "mpiexec -n 2 ./test_real > /dev/null 2>&1" > test_real.sh
	chmod +x test_real.sh	

test_real2.sh:
	echo "mpiexec -n 2 ./test_real2 > /dev/null 2>&1" > test_real2.sh
	chmod +x test_real2.sh	

test_complex.sh:
	echo "mpiexec -n 2 ./test_complex > /dev/null 2>&1" > test_complex.sh
	chmod +x test_complex.sh	

test_complex2.sh:
	echo "mpiexec -n 2 ./test_complex2 > /dev/null 2>&1" > test_complex2.sh
	chmod +x test_complex2.sh	


CLEANFILES = test_real.sh test_real2.sh test_complex.sh test_complex2.sh