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

# test programs
Andreas Marek's avatar
Andreas Marek committed
99 100
#noinst_bindir = $(abs_top_builddir)
bin_PROGRAMS = test_real test_real2 test_complex test_complex2
101 102

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