[arch-commits] Commit in grace/trunk (PKGBUILD grace-fftw3.patch)

Antonio Rojas arojas at archlinux.org
Thu Nov 2 07:58:17 UTC 2017


    Date: Thursday, November 2, 2017 @ 07:58:17
  Author: arojas
Revision: 265083

libva 2.0.0 rebuild, fix build with fftw3

Added:
  grace/trunk/grace-fftw3.patch
Modified:
  grace/trunk/PKGBUILD

-------------------+
 PKGBUILD          |   19 ++-
 grace-fftw3.patch |  258 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 270 insertions(+), 7 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-11-02 07:58:03 UTC (rev 265082)
+++ PKGBUILD	2017-11-02 07:58:17 UTC (rev 265083)
@@ -5,21 +5,26 @@
 
 pkgname=grace
 pkgver=5.1.25
-pkgrel=5
+pkgrel=6
 pkgdesc="2D plotting tool"
 arch=(i686 x86_64)
 url="http://plasma-gate.weizmann.ac.il/Grace/"
-depends=('libjpeg' 'libpng' 'openmotif' 't1lib' 'netcdf')
-makedepends=('netcdf' 'fftw')
+depends=('libjpeg' 'libpng' 'openmotif' 't1lib' 'netcdf' 'fftw')
 license=('GPL')
 options=('staticlibs')
-source=(ftp://plasma-gate.weizmann.ac.il/pub/grace/src/grace5/$pkgname-$pkgver.tar.gz)
-md5sums=('c0482b1f18b113192946a96f5ff35a4d')
+source=(ftp://plasma-gate.weizmann.ac.il/pub/grace/src/grace5/$pkgname-$pkgver.tar.gz grace-fftw3.patch)
+md5sums=('c0482b1f18b113192946a96f5ff35a4d'
+         '0c61460189e4d19713e59a84c28f23c2')
 
+prepare() {
+  cd $pkgname-$pkgver
+  sed -i '1,1i#include <zlib.h>' src/rstdrv.c
+  sed -i 's|png_ptr->jmpbuf|png_jmpbuf(png_ptr)|g' src/rstdrv.c
+  patch -p1 -i ../grace-fftw3.patch # port to FFTW3 (Debian)
+}
+
 build() {
   cd "$srcdir"/$pkgname-$pkgver
-  sed -i '1,1i#include <zlib.h>' src/rstdrv.c
-  sed -i 's|png_ptr->jmpbuf|png_jmpbuf(png_ptr)|g' src/rstdrv.c
   ./configure   --prefix=/usr --exec-prefix=/usr \
 		--enable-grace-home=/usr/share/grace \
 		--includedir=/usr/include --libdir=/usr/lib \

Added: grace-fftw3.patch
===================================================================
--- grace-fftw3.patch	                        (rev 0)
+++ grace-fftw3.patch	2017-11-02 07:58:17 UTC (rev 265083)
@@ -0,0 +1,258 @@
+Description: Switch dependency from FFTW2 to FFTW3
+Author: Ionut Georgescu
+Bug: http://bugs.debian.org/264201
+Index: grace-5.1.24-patch/src/fourier.c
+===================================================================
+--- grace-5.1.24-patch.orig/src/fourier.c
++++ grace-5.1.24-patch/src/fourier.c
+@@ -230,7 +230,8 @@ static int bit_swap(int i, int nu)
+ #else
+ /* Start of new FFTW-based transforms by Marcus H. Mendenhall */
+ 
+-#include <fftw.h>
++#include <complex.h>
++#include <fftw3.h>
+ #include <string.h>
+ 
+ static char  *wisdom_file=0;
+@@ -258,7 +259,7 @@ void dft(double *jr, double *ji, int n,
+   fftw_plan plan;
+   int i;
+   double ninv;
+-  FFTW_COMPLEX *cbuf;
++  fftw_complex *cbuf;
+   static int wisdom_inited=0;
+   char *ram_cache_wisdom;
+   int plan_flags;
+@@ -274,7 +275,7 @@ void dft(double *jr, double *ji, int n,
+     if(wisdom_file && wisdom_file[0] ) {
+       /* if a file was specified in GRACE_FFTW_WISDOM_FILE, try to read it */
+       FILE *wf;
+-      fftw_status fstat;
++      int fstat;
+       wf=fopen(wisdom_file,"r");
+       if(wf) {
+ 	fstat=fftw_import_wisdom_from_file(wf);
+@@ -286,30 +287,35 @@ void dft(double *jr, double *ji, int n,
+     }
+   }
+ 
+-  plan_flags=using_wisdom? (FFTW_USE_WISDOM | FFTW_MEASURE) : FFTW_ESTIMATE;
+-
+-  plan=fftw_create_plan(n, iflag?FFTW_BACKWARD:FFTW_FORWARD,
+-		   plan_flags | FFTW_IN_PLACE);
+-  cbuf=xcalloc(n, sizeof(*cbuf));
++  /* fftw_malloc behaves like malloc except that it properly aligns the array
++   * when SIMD instructions (such as SSE and Altivec) are available.
++   */
++  cbuf=(fftw_complex *)fftw_malloc(n*sizeof(fftw_complex));
+   if(!cbuf) return;
++
+   for(i=0; i<n; i++) {
+-    cbuf[i].re=jr[i]; cbuf[i].im=ji[i];
++    cbuf[i] = jr[i] + I * ji[i];
+   }
+-  fftw(plan, 1, cbuf, 1, 1, 0, 1, 1);
++
++  plan_flags=using_wisdom? (FFTW_MEASURE) : FFTW_ESTIMATE;
++  plan=fftw_plan_dft_1d(n, cbuf, cbuf, iflag?FFTW_BACKWARD:FFTW_FORWARD,
++		   plan_flags);
++
++  fftw_execute(plan);
+   fftw_destroy_plan(plan);
+ 
+   if(!iflag) {
+     ninv=1.0/n;
+     for(i=0; i<n; i++) {
+-    jr[i]=cbuf[i].re*ninv; ji[i]=cbuf[i].im*ninv;
++    jr[i]=creal(cbuf[i])*ninv; ji[i]=cimag(cbuf[i])*ninv;
+     }
+   } else {
+     for(i=0; i<n; i++) {
+-      jr[i]=cbuf[i].re; ji[i]=cbuf[i].im;
++      jr[i]=creal(cbuf[i]); ji[i]=cimag(cbuf[i]);
+     }
+   }
+ 
+-  XCFREE(cbuf);
++  fftw_free(cbuf);
+   
+ }
+ 
+Index: grace-5.1.24-patch/ac-tools/configure.in
+===================================================================
+--- grace-5.1.24-patch.orig/ac-tools/configure.in
++++ grace-5.1.24-patch/ac-tools/configure.in
+@@ -554,8 +554,17 @@ fi
+ 
+ if test $fftw = true
+ then
+-  ACX_CHECK_FFTW(2.1.3, AC_DEFINE(HAVE_FFTW),
+-                 AC_MSG_RESULT(--> using legacy unoptimized FFT code))
++  AC_CHECK_HEADERS(fftw3.h,
++  [
++	AC_CHECK_LIB(fftw3, fftw_execute,
++	[
++		FFTW_LIB="-lfftw3"
++		AC_DEFINE(HAVE_FFTW)
++	],
++	[AC_MSG_RESULT([--> using legacy unoptimized FFT code])]
++	)
++  ],
++  [AC_MSG_RESULT([--> using legacy unoptimized FFT code])])
+ fi
+ 
+ dnl **** check for libz - needed for PDF and PNG drivers and XmHTML
+Index: grace-5.1.24-patch/configure
+===================================================================
+--- grace-5.1.24-patch.orig/configure
++++ grace-5.1.24-patch/configure
+@@ -748,7 +748,6 @@ with_printcmd
+ enable_debug
+ enable_maintainer
+ with_netcdf_libraries
+-with_fftw_library
+ with_zlib_library
+ with_jpeg_library
+ with_png_library
+@@ -1412,7 +1411,6 @@ Optional Packages:
+   --with-helpviewer=COMMAND    define help viewer command ["mozilla %s"]
+   --with-printcmd=PROG         use PROG for printing
+   --with-netcdf-libraries=OBJ  use OBJ as netCDF libraries [-lnetcdf]
+-  --with-fftw-library=OBJ      use OBJ as FFTW library [-lfftw]
+   --with-zlib-library=OBJ      use OBJ as ZLIB library [-lz]
+   --with-jpeg-library=OBJ      use OBJ as JPEG library [-ljpeg]
+   --with-png-library=OBJ       use OBJ as PNG library [-lpng]
+@@ -8225,84 +8223,69 @@ fi
+ 
+ if test $fftw = true
+ then
++  for ac_header in fftw3.h
++do :
++  ac_fn_c_check_header_mongrel "$LINENO" "fftw3.h" "ac_cv_header_fftw3_h" "$ac_includes_default"
++if test "x$ac_cv_header_fftw3_h" = xyes; then :
++  cat >>confdefs.h <<_ACEOF
++#define HAVE_FFTW3_H 1
++_ACEOF
+ 
+-
+-# Check whether --with-fftw_library was given.
+-if test "${with_fftw_library+set}" = set; then :
+-  withval=$with_fftw_library; fftw_library="$withval"
+-fi
+-
+-  if test "x$fftw_library" = "x"
+-  then
+-    fftw_library=-lfftw
+-  fi
+-
+-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFTW library >= 2.1.3" >&5
+-$as_echo_n "checking for FFTW library >= 2.1.3... " >&6; }
+-if ${acx_cv_fftw+:} false; then :
++	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw_execute in -lfftw3" >&5
++$as_echo_n "checking for fftw_execute in -lfftw3... " >&6; }
++if ${ac_cv_lib_fftw3_fftw_execute+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+-  if ${acx_cv_fftw_library+:} false; then :
+-  $as_echo_n "(cached) " >&6
+-else
+-  acx_cv_fftw_library=$fftw_library
+-fi
+-
+-
+-    save_CFLAGS=$CFLAGS
+-    save_CPPFLAGS=$CPPFLAGS
+-    save_LDFLAGS=$LDFLAGS
+-    save_LIBS=$LIBS
+-
+-    LIBS="$acx_cv_fftw_library $LIBS"
+-    if test "$cross_compiling" = yes; then :
+-  acx_cv_fftw="no"
+-
+-else
+-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++  ac_check_lib_save_LIBS=$LIBS
++LIBS="-lfftw3  $LIBS"
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+-#include <fftw.h>
+-#include <string.h>
+-      int main(void) {
+-        char *vlib = (char *) fftw_version;
+-        if (strcmp(vlib, "2.1.3") < 0) {
+-          exit(1);
+-        }
+-        exit(0);
+-      }
+-
++/* Override any GCC internal prototype to avoid an error.
++   Use char because int might match the return type of a GCC
++   builtin and then its argument prototype would still apply.  */
++#ifdef __cplusplus
++extern "C"
++#endif
++char fftw_execute ();
++int
++main ()
++{
++return fftw_execute ();
++  ;
++  return 0;
++}
+ _ACEOF
+-if ac_fn_c_try_run "$LINENO"; then :
+-  acx_cv_fftw="yes"
++if ac_fn_c_try_link "$LINENO"; then :
++  ac_cv_lib_fftw3_fftw_execute=yes
+ else
+-  acx_cv_fftw="no"
++  ac_cv_lib_fftw3_fftw_execute=no
+ fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+-  conftest.$ac_objext conftest.beam conftest.$ac_ext
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
+ fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fftw3_fftw_execute" >&5
++$as_echo "$ac_cv_lib_fftw3_fftw_execute" >&6; }
++if test "x$ac_cv_lib_fftw3_fftw_execute" = xyes; then :
+ 
++		FFTW_LIB="-lfftw3"
++		$as_echo "#define HAVE_FFTW 1" >>confdefs.h
+ 
+ 
+-    CFLAGS=$save_CFLAGS
+-    CPPFLAGS=$save_CPPFLAGS
+-    LDFLAGS=$save_LDFLAGS
+-    LIBS=$save_LIBS
+-
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> using legacy unoptimized FFT code" >&5
++$as_echo "--> using legacy unoptimized FFT code" >&6; }
+ 
+ fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_fftw" >&5
+-$as_echo "$acx_cv_fftw" >&6; }
+-  if test "$acx_cv_fftw" = "yes"
+-  then
+-    FFTW_LIB="$acx_cv_fftw_library"
+-    $as_echo "#define HAVE_FFTW 1" >>confdefs.h
+ 
+-  else
+-    FFTW_LIB=
+-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> using legacy unoptimized FFT code" >&5
++
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: --> using legacy unoptimized FFT code" >&5
+ $as_echo "--> using legacy unoptimized FFT code" >&6; }
+-  fi
++fi
++
++done
+ 
+ fi
+ 
+


More information about the arch-commits mailing list