fftw3-vl.spec 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492
  1. %global quad 1
  2. Name: fftw3
  3. Version: 3.3.4
  4. Release: 1%{?_dist_release}
  5. Summary: C subroutines for computing the Discrete Fourier Transform.
  6. Group: System Environment/Libraries
  7. License: GPLv2+
  8. URL: http://www.fftw.org
  9. Source0: http://www.fftw.org/fftw-%{version}.tar.gz
  10. BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
  11. BuildRequires: gcc-gfortran
  12. BuildRequires: time
  13. BuildRequires: perl
  14. Requires(post): info
  15. Requires(preun): info
  16. Vendor: Project Vine
  17. Distribution: Vine Linux
  18. %description
  19. FFTW is a collection of fast C routines for computing the Discrete Fourier Transform
  20. in one or more dimensions. It includes complex, real, and parallel transforms, and
  21. can handle arbitrary array sizes efficiently. This RPM package includes both the
  22. double- and single-precision FFTW uniprocessor and threads libraries.
  23. (The single-precision files have an "s" prefix.)
  24. %description -l ja
  25. FFTW は1次元または多次元の離散フーリエ変換(DFT)を計算する高速なCルーチンのコレ
  26. クションです.FFTW は複素数、実数、並列変換ができ、任意のサイズの配列を効果的に
  27. 扱うことができます.このパッケージには、倍精度と単精度の単一CPUとスレッドに対応
  28. した FFTW のライブラリが収められています。(単精度用のファイル名にはfが最後に付
  29. けられています。)
  30. %package libs
  31. Summary: FFTW run-time library
  32. Group: System Environment/Libraries
  33. Provides: fftw3 = %{version}-%{release}
  34. # Pull in the actual libraries
  35. Requires: %{name}-libs-single = %{version}-%{release}
  36. Requires: %{name}-libs-double = %{version}-%{release}
  37. Requires: %{name}-libs-long = %{version}-%{release}
  38. %if %{quad}
  39. Requires: %{name}-libs-quad = %{version}-%{release}
  40. %endif
  41. %description libs
  42. This is a dummy package package, pulling in the individual FFTW
  43. run-time libraries.
  44. %package devel
  45. Summary: Headers, libraries and docs for the FFTW library
  46. Group: Development/Libraries
  47. Requires: pkgconfig
  48. Requires: %{name} = %{version}-%{release}
  49. Requires: %{name}-libs = %{version}-%{release}
  50. Provides: fftw3-devel = %{version}-%{release}
  51. %description devel
  52. FFTW is a C subroutine library for computing the Discrete Fourier
  53. Transform (DFT) in one or more dimensions, of both real and complex
  54. data, and of arbitrary input size.
  55. This package contains header files and development libraries needed to
  56. develop programs using the FFTW fast Fourier transform library.
  57. %package libs-double
  58. Summary: FFTW library, double precision
  59. Group: Development/Libraries
  60. %description libs-double
  61. This package contains the FFTW library compiled in double precision.
  62. %package libs-single
  63. Summary: FFTW library, single precision
  64. Group: Development/Libraries
  65. %description libs-single
  66. This package contains the FFTW library compiled in single precision.
  67. %package libs-long
  68. Summary: FFTW library, long double precision
  69. Group: Development/Libraries
  70. %description libs-long
  71. This package contains the FFTW library compiled in long double
  72. precision.
  73. %if %{quad}
  74. %package libs-quad
  75. Summary: FFTW library, quadruple
  76. Group: Development/Libraries
  77. %description libs-quad
  78. This package contains the FFTW library compiled in quadruple
  79. precision.
  80. %endif
  81. %package static
  82. Summary: Static versions of the FFTW libraries
  83. Group: Development/Libraries
  84. Requires: %{name}-devel = %{version}-%{release}
  85. Provides: fftw3-static = %{version}-%{release}
  86. %description static
  87. The fftw-static package contains the statically linkable version of
  88. the FFTW fast Fourier transform library.
  89. %package docs
  90. Summary: FFTW library manual
  91. Group: Documentation
  92. BuildArch: noarch
  93. %description docs
  94. This package contains the manual for the FFTW fast Fourier transform
  95. library.
  96. %prep
  97. %setup -q -n fftw-%{version}
  98. %build
  99. # Configure uses g77 by default, if present on system
  100. export F77=gfortran
  101. BASEFLAGS="--enable-shared --disable-dependency-tracking --enable-threads"
  102. BASEFLAGS+=" --enable-openmp"
  103. # Precisions to build
  104. prec_name[0]=single
  105. prec_name[1]=double
  106. prec_name[2]=long
  107. prec_name[3]=quad
  108. # Corresponding flags
  109. prec_flags[0]=--enable-single
  110. prec_flags[1]=--enable-double
  111. prec_flags[2]=--enable-long-double
  112. prec_flags[3]=--enable-quad-precision
  113. %ifarch x86_64
  114. # Enable SSE2 and AVX support for x86_64
  115. for((i=0;i<2;i++)); do
  116. prec_flags[i]+=" --enable-sse2 --enable-avx"
  117. done
  118. %endif
  119. # No NEON run time detection, not all ARM SoCs have NEON
  120. #%ifarch %{arm}
  121. ## Compile support for NEON instructions
  122. #for((i=0;i<2;i++)); do
  123. # prec_flags[i]+=" --enable-neon"
  124. #done
  125. #%endif
  126. #%ifarch ppc ppc64
  127. ## Compile support for Altivec instructions
  128. #for((i=0;i<2;i++)); do
  129. #prec_flags[i]+=" --enable-altivec"
  130. #done
  131. #%endif
  132. # Loop over precisions
  133. %if %{quad}
  134. for((iprec=0;iprec<4;iprec++))
  135. %else
  136. for((iprec=0;iprec<3;iprec++))
  137. %endif
  138. do
  139. mkdir ${prec_name[iprec]}${ver_name[iver]}
  140. cd ${prec_name[iprec]}${ver_name[iver]}
  141. ln -s ../configure .
  142. %{configure} ${BASEFLAGS} ${prec_flags[iprec]}
  143. sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
  144. sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
  145. make %{?_smp_mflags}
  146. cd ..
  147. done
  148. %install
  149. rm -rf ${RPM_BUILD_ROOT}
  150. %if %{quad}
  151. for ver in single double long quad
  152. %else
  153. for ver in single double long
  154. %endif
  155. do
  156. make -C $ver install DESTDIR=${RPM_BUILD_ROOT}
  157. done
  158. rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir
  159. rm -f ${RPM_BUILD_ROOT}%{_libdir}/*.la
  160. %check
  161. bdir=`pwd`
  162. %if %{quad}
  163. for ver in single double long quad
  164. %else
  165. for ver in single double long
  166. %endif
  167. do
  168. export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
  169. make -C $ver check
  170. done
  171. %clean
  172. rm -rf %{RPM_BUILD_ROOT}
  173. %post libs-single -p /sbin/ldconfig
  174. %postun libs-single -p /sbin/ldconfig
  175. %post libs-double -p /sbin/ldconfig
  176. %postun libs-double -p /sbin/ldconfig
  177. %post libs-long -p /sbin/ldconfig
  178. %postun libs-long -p /sbin/ldconfig
  179. %if %{quad}
  180. %post libs-quad -p /sbin/ldconfig
  181. %postun libs-quad -p /sbin/ldconfig
  182. %endif
  183. %post docs
  184. /sbin/install-info --section="Math" %{_infodir}/%{name}.info.gz %{_infodir}/dir 2>/dev/null || :
  185. %preun docs
  186. if [ "$1" = 0 ]; then
  187. /sbin/install-info --delete %{_infodir}/%{name}.info.gz %{_infodir}/dir 2>/dev/null || :
  188. fi
  189. %files
  190. %defattr(-,root,root,-)
  191. %doc %{_mandir}/man1/fftw*.1.*
  192. %{_bindir}/fftw*-wisdom*
  193. %files libs
  194. %defattr(-,root,root,-)
  195. %files libs-single
  196. %defattr(-,root,root,-)
  197. %doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
  198. %{_libdir}/libfftw3f.so.*
  199. %{_libdir}/libfftw3f_threads.so.*
  200. %{_libdir}/libfftw3f_omp.so.*
  201. %files libs-double
  202. %defattr(-,root,root,-)
  203. %doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
  204. %{_libdir}/libfftw3.so.*
  205. %{_libdir}/libfftw3_threads.so.*
  206. %{_libdir}/libfftw3_omp.so.*
  207. %files libs-long
  208. %defattr(-,root,root,-)
  209. %doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
  210. %{_libdir}/libfftw3l.so.*
  211. %{_libdir}/libfftw3l_threads.so.*
  212. %{_libdir}/libfftw3l_omp.so.*
  213. %if %{quad}
  214. %files libs-quad
  215. %defattr(-,root,root,-)
  216. %doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
  217. %{_libdir}/libfftw3q.so.*
  218. %{_libdir}/libfftw3q_threads.so.*
  219. %{_libdir}/libfftw3q_omp.so.*
  220. %endif
  221. %files devel
  222. %defattr(-,root,root,-)
  223. %{_includedir}/fftw3*
  224. %{_libdir}/pkgconfig/fftw3*.pc
  225. %{_libdir}/libfftw3*.so
  226. %files docs
  227. %defattr(-,root,root,-)
  228. %doc doc/*.pdf doc/html/
  229. %doc doc/FAQ/fftw-faq.html/
  230. %doc %{_infodir}/fftw3.info*
  231. %files static
  232. %defattr(-,root,root,-)
  233. %{_libdir}/libfftw3*.a
  234. %changelog
  235. * Sun Jan 11 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.3.4-1
  236. - new upstream release
  237. - fix spec file based on fedora package
  238. * Sat Mar 03 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.3.1-1
  239. - new upstream release
  240. * Mon Oct 04 2010 Shu KONNO <owa@bg.wakwak.com> 3.2.2-2
  241. - dropt "--enable-sse --enable-sse2" in configure (on x86_64)
  242. * Sun Oct 03 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 3.2.2-1
  243. - updated to 3.2.2
  244. - added long double precision support
  245. - split static libraries
  246. * Sat Sep 20 2008 Shu KONNO <owa@bg.wakwak.com> 3.1.2-1vl5
  247. - applied new versioning policy, spec in utf-8
  248. - removed *.la
  249. - moved *.pc file to devel
  250. * Thu Jan 03 2008 Satoshi MACHINO <machino@vinelinux.org> 3.1.2-0vl1
  251. - new upstream release
  252. * Tue Nov 27 2007 Shu KONNO <owa@bg.wakwak.com> 3.1.1-0vl2
  253. - s/gcc-g77/gcc-gfortran/
  254. - x86_64 support
  255. * Tue May 30 2006 Seiya Nishizawa <seiya@kugi.kyoto-u.ac.jp> 3.1.1-0vl1
  256. - source version up
  257. * Thu Jan 29 2004 Seiya Nishizawa <seiya@kugi.kyoto-u.ac.jp> 3.0.1-0vl1
  258. - source version up to 3
  259. - package name to fftw3
  260. - enable sse2 for double and sse for single
  261. * Thu Jul 18 2002 KOBAYASHI R. Taizo <tkoba@vinelinux.org> 2.1.3-0vl1
  262. - modified for Vine.
  263. * Mon Feb 25 2002 Fuhito Suguri <bitwalk@jcom.home.ne.jp> 2.1.3-12bw
  264. - rebuild for RH72.
  265. * Tue Oct 09 2001 Fuhito Suguri <bitwalk@nyc.odn.ne.jp> 2.1.3-11bw
  266. - corrected some wrong descriptions in this spec for RH71
  267. * Tue Oct 09 2001 Fuhito Suguri <bitwalk@nyc.odn.ne.jp> 2.1.3-10bw
  268. - corrected some wrong descriptions in this spec
  269. * Mon Oct 08 2001 Fuhito Suguri <bitwalk@nyc.odn.ne.jp> 2.1.3-9bw
  270. - rebuilt for Vine Linux 2.1.5
  271. * Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.4-5
  272. - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
  273. * Fri Jul 4 2014 Peter Robinson <pbrobinson@fedoraproject.org> 3.3.4-4
  274. - Disable SSE2/AVX on x86(32) as we support Pentium Pro as base
  275. - SSE2 only arrived with P-4
  276. - https://fedoraproject.org/wiki/Features/F12X86Support
  277. - Fix ARM macro
  278. - Disable NEON on ARM (we don't enable by default, needs runtime detection)
  279. * Thu Jul 03 2014 Conrad Meyer <cemeyer@uw.edu> - 3.3.4-3
  280. - Build with --enable-avx (rhbz# 1114964)
  281. * Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.4-2
  282. - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
  283. * Tue Mar 18 2014 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.3.4-1
  284. - Update to 3.3.4.
  285. * Sat Dec 14 2013 Conrad Meyer <cemeyer@uw.edu> - 3.3.3-8
  286. - Remove non-OpenMP / g77 build for obsolete RHEL (< 5)
  287. - Remove ancient Obsoletes (fftw < 3.3, Fedora < 16)
  288. - Remove ancient non-Quad build (Fedora < 15) on supported arch(s)
  289. - Remove obsolete conditional on BuildArch: noarch (RHEL < 6, Fedora < 13)
  290. * Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.3-7
  291. - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
  292. * Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.3-6
  293. - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
  294. * Sat Jan 19 2013 PPC Secondary Arch Admin <karsten@redhat.com> 3.3.3-5
  295. - disable altivec flag again, that works with single precision only
  296. * Mon Dec 24 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.3.3-4
  297. - Fix typo: should be %%ix86 instead of %%x86. Now should have SSE2 support
  298. on x86 as well.
  299. * Tue Dec 18 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.3.3-3
  300. - After consultation with upstream, enable SSE2 also on x86, altivec on ppc
  301. and ppc64 and NEON on arm.
  302. * Tue Dec 18 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.3.3-2
  303. - Enable SSE2 on x86_64.
  304. * Mon Nov 26 2012 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3.3-1
  305. - Update to 3.3.3.
  306. * Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.2-2
  307. - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
  308. * Fri Jun 15 2012 Orion Poplawski <orion@cora.nwra.com> - 3.3.2-1
  309. - Update to 3.3.2
  310. - Drop alignment patch
  311. * Fri Apr 27 2012 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3.1-3
  312. - Fix FTBFS with gcc 4.7.
  313. * Thu Apr 26 2012 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3.1-2
  314. - Reorganized libraries (BZ #812981).
  315. * Mon Feb 27 2012 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3.1-1
  316. - Update to 3.3.1.
  317. * Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3-5
  318. - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
  319. * Tue Oct 11 2011 Dan Horák <dan[at]danny.cz> - 3.3-4
  320. - libquadmath exists only on x86/x86_64 and ia64
  321. * Mon Oct 10 2011 Rex Dieter <rdieter@fedoraproject.org> 3.3-3
  322. - -devel: Provides: fftw3-devel (#744758)
  323. - -static: Provides: fftw3-static
  324. - drop %%_isa from Obsoletes
  325. * Sat Jul 30 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3-2
  326. - Conditionalize OpenMP and quadruple precision support based on capabilities
  327. of system compiler.
  328. * Thu Jul 28 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3-1
  329. - Update to 3.3.
  330. * Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.2-5
  331. - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
  332. * Sat Jan 9 2010 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.2.2-4
  333. - Get rid of rpath.
  334. * Sat Jan 9 2010 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.2.2-3
  335. - Branch out developers' manual to -doc.
  336. * Sat Jan 2 2010 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.2.2-2
  337. - Add check phase.
  338. - Cosmetic changes to spec file (unified changelog format, removed unnecessary
  339. space).
  340. - Use rm instead of find -delete, as latter is not present on EPEL-4.
  341. - Generalize obsoletes of fftw3 packages. Add Obsoletes: fftw3-static.
  342. * Fri Jan 1 2010 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.2.2-1
  343. - Update to 3.2.2.
  344. - Make file listings more explicit.
  345. - Don't use file dependencies for info.
  346. * Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.1-3
  347. - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
  348. * Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.1-2
  349. - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
  350. * Sat Feb 14 2009 Conrad Meyer <konrad@tylerc.org> - 3.2.1-1
  351. - Bump to 3.2.1.
  352. * Thu Dec 4 2008 Conrad Meyer <konrad@tylerc.org> - 3.2-1
  353. - Bump to 3.2.
  354. * Fri Jul 18 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 3.1.2-7
  355. - fix license tag
  356. * Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 3.1.2-6
  357. - Autorebuild for GCC 4.3
  358. * Fri Aug 24 2007 Quentin Spencer <qspencer@users.sf.net> 3.1.2-5
  359. - Rebuild for F8.
  360. * Fri Jul 27 2007 Quentin Spencer <qspencer@users.sf.net> 3.1.2-4
  361. - Split static libs into separate package (bug 249686).
  362. * Thu Oct 05 2006 Christian Iseli <Christian.Iseli@licr.org> 3.1.2-3
  363. - rebuilt for unwind info generation, broken in gcc-4.1.1-21
  364. * Tue Sep 26 2006 Quentin Spencer <qspencer@users.sf.net> 3.1.2-2
  365. - BuildRequires: pkgconfig for -devel (bug 206444).
  366. * Fri Sep 8 2006 Quentin Spencer <qspencer@users.sf.net> 3.1.2-1
  367. - New release.
  368. * Fri Jun 2 2006 Quentin Spencer <qspencer@users.sf.net> 3.1.1-1
  369. - New upstream release.
  370. * Fri Feb 24 2006 Quentin Spencer <qspencer@users.sf.net> 3.1-4
  371. - Re-enable static libs (bug 181897).
  372. - Build long-double version of libraries (bug 182587).
  373. * Mon Feb 13 2006 Quentin Spencer <qspencer@users.sf.net> 3.1-3
  374. - Add Obsoletes and Provides.
  375. * Mon Feb 13 2006 Quentin Spencer <qspencer@users.sf.net> 3.1-2
  376. - Rebuild for Fedora Extras 5.
  377. - Disable static libs.
  378. - Remove obsolete configure options.
  379. * Wed Feb 1 2006 Quentin Spencer <qspencer@users.sf.net> 3.1-1
  380. - Upgrade to the 3.x branch, incorporating changes from the fftw3 spec file.
  381. - Add dist tag.