easyblock = 'ConfigureMake'

name = 'FFTW'
version = '3.3.6'

homepage = 'http://www.fftw.org'
description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
 in one or more dimensions, of arbitrary input size, and of both real and complex data."""

toolchain = {'name': 'gompi', 'version': '2017a'}
toolchainopts = {'optarch': True, 'pic': True}

source_urls = [homepage]
sources = ['fftw-%(version)s-pl1.tar.gz']
checksums = ['682a0e78d6966ca37c7446d4ab4cc2a1']

common_configopts = "--enable-threads --enable-openmp --with-pic"

configopts = [
    common_configopts + " --enable-single --enable-sse2 --enable-mpi",
    common_configopts + " --enable-long-double --enable-mpi",
    common_configopts + " --enable-quad-precision",
    common_configopts + " --enable-sse2 --enable-mpi",  # default as last
]

sanity_check_paths = {
    'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom', 'q-wisdom']] +
             ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03',
                                              '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] +
             ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']] +
             ['lib/libfftw3q.a', 'lib/libfftw3q_omp.a'],
    'dirs': ['lib/pkgconfig'],
}

moduleclass = 'numlib'
