FFTW-3.3.8-GCC-8.1.0-2.30.eb 1.38 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
# IT4Innovations 2019

easyblock = 'ConfigureMake'

name = 'FFTW'
version = '3.3.8'

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': 'GCC', 'version': '8.1.0-2.30'}
toolchainopts = {'optarch': True, 'pic': True}

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

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

configopts = [
    common_configopts + " --enable-single --enable-sse2 ",
    common_configopts + " --enable-quad-precision",
    common_configopts + " --enable-long-double ",
    common_configopts + " --enable-sse2 ",  # 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 [
                    '.f', '.f03', '.h', 'l.f03', 'q.f03']] + [
                        'lib/libfftw3%s%s.a' %
                        (x, y) for x in [
                            '', 'f', 'l'] for y in [
                                '', '_omp', '_threads']] + [
                                    'lib/libfftw3q.a', 'lib/libfftw3q_omp.a'], 'dirs': ['lib/pkgconfig'], }

moduleclass = 'numlib'