Browse Source

* Fixed library name and compilation on windows, bug #12881

git-svn-id: trunk@13117 -
joost 16 years ago
parent
commit
be72be8c8e
1 changed files with 24 additions and 14 deletions
  1. 24 14
      packages/fftw/src/fftw_s.pas

+ 24 - 14
packages/fftw/src/fftw_s.pas

@@ -25,6 +25,14 @@ unit fftw_s;
 {$MACRO on}
 {$MACRO on}
 {$INLINE on}
 {$INLINE on}
 
 
+{$IFDEF Unix}
+  const
+    fftwlib = 'fftw3f';
+{$ELSE}
+  const
+    fftwlib = 'libfftw3f';
+{$ENDIF}
+
 type    complex_single=record
 type    complex_single=record
           re,im:single;
           re,im:single;
         end;
         end;
@@ -48,51 +56,51 @@ type    complex_single=record
 {Complex to complex transformations.}
 {Complex to complex transformations.}
 function fftw_plan_dft_1d(n:cardinal;i,o:Pcomplex_single;
 function fftw_plan_dft_1d(n:cardinal;i,o:Pcomplex_single;
                           sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
                           sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_1d';
+         external fftwlib name 'fftwf_plan_dft_1d';
 function fftw_plan_dft_2d(nx,ny:cardinal;i,o:Pcomplex_single;
 function fftw_plan_dft_2d(nx,ny:cardinal;i,o:Pcomplex_single;
                           sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
                           sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_2d';
+         external fftwlib name 'fftwf_plan_dft_2d';
 function fftw_plan_dft_3d(nx,ny,nz:cardinal;i,o:Pcomplex_single;
 function fftw_plan_dft_3d(nx,ny,nz:cardinal;i,o:Pcomplex_single;
                           sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
                           sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_3d';
+         external fftwlib name 'fftwf_plan_dft_3d';
 
 
 function fftw_plan_dft(rank:cardinal;n:Pcardinal;i,o:Pcomplex_single;
 function fftw_plan_dft(rank:cardinal;n:Pcardinal;i,o:Pcomplex_single;
                        sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
                        sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft';
+         external fftwlib name 'fftwf_plan_dft';
 
 
 {Real to complex transformations.}
 {Real to complex transformations.}
 function fftw_plan_dft_1d(n:cardinal;i:Psingle;o:Pcomplex_single;
 function fftw_plan_dft_1d(n:cardinal;i:Psingle;o:Pcomplex_single;
                           flags:fftw_flagset):fftw_plan_single;
                           flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_r2c_1d';
+         external fftwlib name 'fftwf_plan_dft_r2c_1d';
 function fftw_plan_dft_2d(nx,ny:cardinal;i:Psingle;o:Pcomplex_single;
 function fftw_plan_dft_2d(nx,ny:cardinal;i:Psingle;o:Pcomplex_single;
                           flags:fftw_flagset):fftw_plan_single;
                           flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_r2c_2d';
+         external fftwlib name 'fftwf_plan_dft_r2c_2d';
 function fftw_plan_dft_3d(nx,ny,nz:cardinal;i:Psingle;o:Pcomplex_single;
 function fftw_plan_dft_3d(nx,ny,nz:cardinal;i:Psingle;o:Pcomplex_single;
                           flags:fftw_flagset):fftw_plan_single;
                           flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_r2c_3d';
+         external fftwlib name 'fftwf_plan_dft_r2c_3d';
 function fftw_plan_dft(rank:cardinal;n:Pcardinal;i:Psingle;o:Pcomplex_single;
 function fftw_plan_dft(rank:cardinal;n:Pcardinal;i:Psingle;o:Pcomplex_single;
                        flags:fftw_flagset):fftw_plan_single;
                        flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_r2c';
+         external fftwlib name 'fftwf_plan_dft_r2c';
 
 
 {Complex to real transformations.}
 {Complex to real transformations.}
 function fftw_plan_dft_1d(n:cardinal;i:Pcomplex_single;o:Psingle;
 function fftw_plan_dft_1d(n:cardinal;i:Pcomplex_single;o:Psingle;
                           flags:fftw_flagset):fftw_plan_single;
                           flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_c2r_1d';
+         external fftwlib name 'fftwf_plan_dft_c2r_1d';
 function fftw_plan_dft_2d(nx,ny:cardinal;i:Pcomplex_single;o:Psingle;
 function fftw_plan_dft_2d(nx,ny:cardinal;i:Pcomplex_single;o:Psingle;
                           flags:fftw_flagset):fftw_plan_single;
                           flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_c2r_2d';
+         external fftwlib name 'fftwf_plan_dft_c2r_2d';
 function fftw_plan_dft_3d(nx,ny,nz:cardinal;i:Pcomplex_single;o:Psingle;
 function fftw_plan_dft_3d(nx,ny,nz:cardinal;i:Pcomplex_single;o:Psingle;
                           flags:fftw_flagset):fftw_plan_single;
                           flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_c2r_3d';
+         external fftwlib name 'fftwf_plan_dft_c2r_3d';
 function fftw_plan_dft(rank:cardinal;n:Pcardinal;i:Pcomplex_single;o:Psingle;
 function fftw_plan_dft(rank:cardinal;n:Pcardinal;i:Pcomplex_single;o:Psingle;
                        flags:fftw_flagset):fftw_plan_single;
                        flags:fftw_flagset):fftw_plan_single;
-         external 'fftw3f' name 'fftwf_plan_dft_c2r';
+         external fftwlib name 'fftwf_plan_dft_c2r';
 
 
 
 
 procedure fftw_destroy_plan(plan:fftw_plan_single);
 procedure fftw_destroy_plan(plan:fftw_plan_single);
-          external 'fftw3f' name 'fftwf_destroy_plan';
+          external fftwlib name 'fftwf_destroy_plan';
 procedure fftw_execute(plan:fftw_plan_single);
 procedure fftw_execute(plan:fftw_plan_single);
-          external 'fftw3f' name 'fftwf_execute';
+          external fftwlib name 'fftwf_execute';
 
 
 {$calling register} {Back to normal!}
 {$calling register} {Back to normal!}
 procedure fftw_getmem(var p:pointer;size:sizeint);
 procedure fftw_getmem(var p:pointer;size:sizeint);
@@ -102,7 +110,9 @@ procedure fftw_freemem(p:pointer);inline;
                                   implementation
                                   implementation
 {*****************************************************************************}
 {*****************************************************************************}
 
 
+{$ifndef Windows}
 {$LINKLIB fftw3f}
 {$LINKLIB fftw3f}
+{$endif}
 
 
 {Required libraries by libfftw3}
 {Required libraries by libfftw3}
 { $LINKLIB gcc}
 { $LINKLIB gcc}