summaryrefslogtreecommitdiff
path: root/repo/system/fftw
diff options
context:
space:
mode:
Diffstat (limited to 'repo/system/fftw')
-rw-r--r--repo/system/fftw/cycle.h.patch54
-rw-r--r--repo/system/fftw/fftw.xibuild54
2 files changed, 108 insertions, 0 deletions
diff --git a/repo/system/fftw/cycle.h.patch b/repo/system/fftw/cycle.h.patch
new file mode 100644
index 0000000..7e55d3e
--- /dev/null
+++ b/repo/system/fftw/cycle.h.patch
@@ -0,0 +1,54 @@
+diff --git a/kernel/cycle.h b/kernel/cycle.h
+index a0e86f3..3ff4c0e 100644
+--- a/kernel/cycle.h
++++ b/kernel/cycle.h
+@@ -368,22 +368,6 @@ INLINE_ELAPSED(inline)
+ #define HAVE_TICK_COUNTER
+ #endif
+
+-/*----------------------------------------------------------------*/
+-/* S390, courtesy of James Treacy */
+-#if defined(__GNUC__) && defined(__s390__) && !defined(HAVE_TICK_COUNTER)
+-typedef unsigned long long ticks;
+-
+-static __inline__ ticks getticks(void)
+-{
+- ticks cycles;
+- __asm__("stck 0(%0)" : : "a" (&(cycles)) : "memory", "cc");
+- return cycles;
+-}
+-
+-INLINE_ELAPSED(__inline__)
+-
+-#define HAVE_TICK_COUNTER
+-#endif
+ /*----------------------------------------------------------------*/
+ #if defined(__GNUC__) && defined(__alpha__) && !defined(HAVE_TICK_COUNTER)
+ /*
+@@ -436,26 +420,6 @@ INLINE_ELAPSED(__inline)
+
+ #define HAVE_TICK_COUNTER
+ #endif
+-/*----------------------------------------------------------------*/
+-/* SGI/Irix */
+-#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_SGI_CYCLE) && !defined(HAVE_TICK_COUNTER) && !defined(__ANDROID__)
+-typedef struct timespec ticks;
+-
+-static inline ticks getticks(void)
+-{
+- struct timespec t;
+- clock_gettime(CLOCK_SGI_CYCLE, &t);
+- return t;
+-}
+-
+-static inline double elapsed(ticks t1, ticks t0)
+-{
+- return ((double)t1.tv_sec - (double)t0.tv_sec) * 1.0E9 +
+- ((double)t1.tv_nsec - (double)t0.tv_nsec);
+-}
+-#define HAVE_TICK_COUNTER
+-#endif
+-
+ /*----------------------------------------------------------------*/
+ /* Cray UNICOS _rtc() intrinsic function */
+ #if defined(HAVE__RTC) && !defined(HAVE_TICK_COUNTER)
diff --git a/repo/system/fftw/fftw.xibuild b/repo/system/fftw/fftw.xibuild
new file mode 100644
index 0000000..41dd124
--- /dev/null
+++ b/repo/system/fftw/fftw.xibuild
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+NAME="fftw"
+DESC="Discrete Fourier transform (DFT) library"
+
+MAKEDEPS="make tar"
+DEPS="musl "
+
+PKG_VER=3.3.10
+SOURCE="http://www.fftw.org/fftw-$PKG_VER.tar.gz"
+ADDITIONAL="cycle.h.patch "
+
+precisions="single double long-double"
+
+prepare () {
+ for i in $precisions; do
+ mkdir $i
+ tar -xf fftw-$PKG_VER.tar.gz -C $i
+ done
+}
+
+build () {
+ local i; for i in $precisions; do
+ case "$i" in
+ single) cf="--enable-single";;
+ double) cf="";;
+ long-double) cf="--enable-long-double";;
+ esac
+
+ case "$i" in
+ single | double)
+ cf="$cf --enable-sse2 --enable-avx";;
+ esac
+
+ printf "Building for $i precision ($cf)"
+ cd $BUILD_ROOT/$i/fftw-$PKG_VER
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-shared \
+ --enable-threads \
+ $cf
+ make
+ done
+}
+
+package () {
+ for i in $precisions; do
+ cd $BUILD_ROOT/$i/fftw-$PKG_VER
+ make DESTDIR=$PKG_DEST install
+ done
+}