Files

131 lines
5.1 KiB
Python

#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import shelltools
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import cmaketools
from pisi.actionsapi import get
WorkDir="fftw-%s" % get.srcVERSION()
def setup():
autotools.autoreconf("-fi")
shelltools.copytree("../fftw-%s" % get.srcVERSION(), "../fftw-%s-double" % get.srcVERSION())
shelltools.copytree("../fftw-%s" % get.srcVERSION(), "../fftw-%s-long-double" % get.srcVERSION())
shelltools.copytree("../fftw-%s" % get.srcVERSION(), "../fftw-%s-quad" % get.srcVERSION())
shelltools.copytree("../fftw-%s" % get.srcVERSION(), "../fftw-%s-cmake" % get.srcVERSION())
autotools.configure("--enable-sse \
--enable-shared \
--disable-static \
--disable-dependency-tracking \
--enable-threads \
--enable-mpi \
--enable-fortran \
--enable-single")
shelltools.cd("../fftw-%s-quad" % get.srcVERSION())
autotools.configure("--enable-quad-precision \
--enable-shared \
--disable-static \
--disable-dependency-tracking \
--enable-fortran \
--enable-threads")
# The only difference here is that there is no --enable-float
shelltools.cd("../fftw-%s-double" % get.srcVERSION())
autotools.configure("--enable-sse2 \
--enable-shared \
--disable-static \
--enable-fortran \
--disable-dependency-tracking \
--enable-threads")
# The only difference here is --enable-long-double
shelltools.cd("../fftw-%s-long-double" % get.srcVERSION())
autotools.configure("--enable-shared \
--disable-static \
--disable-dependency-tracking \
--enable-threads \
--enable-fortran \
--enable-long-double")
shelltools.cd("../fftw-%s-cmake" % get.srcVERSION())
shelltools.system("sed -e 's/3.6.9/3.6.10/' -i CMakeLists.txt")
cmaketools.configure("-B build \
-D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=None \
-D ENABLE_OPENMP=ON \
-D ENABLE_THREADS=ON \
-D ENABLE_FLOAT=ON \
-D ENABLE_LONG_DOUBLE=ON \
-D ENABLE_QUAD_PRECISION=ON \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
")
# -D ENABLE_AVX2=ON \
# -D ENABLE_AVX=ON \
# -D ENABLE_SSE=ON \
# -D ENABLE_SSE2=ON \
#def check():
#autotools.make("check")
#shelltools.cd("../fftw-%s-double" % get.srcVERSION())
#autotools.make("check")
#shelltools.cd("../fftw-%s-long-double" % get.srcVERSION())
#autotools.make("check")
#shelltools.cd("../fftw-%s-quad" % get.srcVERSION())
#autotools.make("check")
def build():
autotools.make()
shelltools.cd("../fftw-%s-double" % get.srcVERSION())
autotools.make()
shelltools.cd("../fftw-%s-long-double" % get.srcVERSION())
autotools.make()
shelltools.cd("../fftw-%s-quad" % get.srcVERSION())
autotools.make()
shelltools.cd("../fftw-%s-cmake" % get.srcVERSION())
shelltools.system("export F77='gfortran'")
shelltools.export("CFLAGS", " -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -ffast-math")
shelltools.cd("build")
cmaketools.make()
# shelltools.cd("../fftw-%s-cmake" % get.srcVERSION())
shelltools.system("""sed -e 's|\(IMPORTED_LOCATION_NONE\).*|\1 "/usr/lib/libfftw3.so.3"|' -i FFTW3LibraryDepends.cmake""")
def install():
# shelltools.cd("../fftw-%s" % get.srcVERSION())
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
shelltools.cd("../fftw-%s-double" % get.srcVERSION())
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
shelltools.cd("../fftw-%s-long-double" % get.srcVERSION())
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
shelltools.cd("../fftw-%s-quad" % get.srcVERSION())
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
shelltools.cd("../fftw-%s" % get.srcVERSION())
shelltools.cd("../fftw-%s-cmake" % get.srcVERSION())
shelltools.cd("build")
cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.insinto("/usr/lib/cmake/fftw3", "FFTW3LibraryDepends.cmake")
pisitools.dohtml("../doc/html/*")
shelltools.cd("..")
pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "NEWS", "README", "TODO", "CONVENTIONS")