fftw3-vl.spec 15 KB

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