Makefile.am 3.85 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 \
22 23 24 25
                                           src/elpa2_kernels/elpa2_kernels_real_simple.f90
endif

if WITH_GENERIC
26
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_complex.f90 \
27 28 29 30
                                           src/elpa2_kernels/elpa2_kernels_real.f90
endif

if WITH_BGP
31
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_bgp.f90 \
32 33 34 35
                                           src/elpa2_kernels/elpa2_kernels_complex.f90 
endif

if WITH_BGQ
36
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_bgq.f90 \
37 38 39 40
                                           src/elpa2_kernels/elpa2_kernels_complex.f90 
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 \
46 47 48 49
                                           src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp
endif

if WITH_AMD_BULLDOZER
50
  libelpa_la_SOURCES += src/elpa2_kernels/elpa2_kernels_real_sse-avx_4hv.c \
51 52 53 54
                                           src/elpa2_kernels/elpa2_kernels_real_sse-avx_2hv.c \
                                           src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp
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 \
60 61 62 63
                                           src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp
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