···1{ stdenv, fetchurl, gfortran, tolerateCpuTimingInaccuracy ? true, shared ? false }:
23let
004 optionalString = stdenv.lib.optionalString;
05in
67stdenv.mkDerivation {
8- name = "atlas-3.9.67";
910 src = fetchurl {
11- url = mirror://sourceforge/math-atlas/atlas3.9.67.tar.bz2;
12- sha256 = "06xxlv440z8a3qmfrh17p28girv71c6awvpw5vhpspr0pcsgk1pa";
13 };
14000000015 # Configure outside of the source directory.
16 preConfigure = '' mkdir build; cd build; configureScript=../configure; '';
1718 # * -fPIC allows to build atlas inside shared objects, as octave does.
19 #
20- # * Atlas aborts the build if it detects that some kind of CPU frequency
21- # scaling is active on the build machine because that feature offsets the
22- # performance timings. We ignore that check, however, because with binaries
23- # being pre-built on Hydra those timings aren't accurate for the local
24- # machine in the first place.
25 # * Atlas detects the cpu and does some tricks. For example, notices the
26 # hydra AMD Family 10h computer, and uses a SSE trick for it (bit 17 of MXCSR)
27 # available, for what I know, only in that family. So we hardcode K7
···33 configureFlags = "-Fa alg -fPIC -t 0"
34 + optionalString stdenv.isi686 " -b 32 -A 18 -V 1"
35 + optionalString stdenv.isx86_64 " -A 31 -V 192"
36- + optionalString tolerateCpuTimingInaccuracy " -Si cputhrchk 0"
37 + optionalString shared " --shared "
38 ;
39
···1{ stdenv, fetchurl, gfortran, tolerateCpuTimingInaccuracy ? true, shared ? false }:
23let
4+ version = "3.10.1";
5+6 optionalString = stdenv.lib.optionalString;
7+ optional = stdenv.lib.optional;
8in
910stdenv.mkDerivation {
11+ name = "atlas-${version}";
1213 src = fetchurl {
14+ url = "mirror://sourceforge/math-atlas/atlas${version}.tar.bz2";
15+ sha256 = "11ncgdc7kzb2y2gqb3sgarm5saj9fr07r3h2yh2h5bja429b85d2";
16 };
1718+ # Atlas aborts the build if it detects that some kind of CPU frequency
19+ # scaling is active on the build machine because that feature offsets the
20+ # performance timings. We ignore that check, however, because with binaries
21+ # being pre-built on Hydra those timings aren't accurate for the local
22+ # machine in the first place.
23+ patches = optional tolerateCpuTimingInaccuracy ./disable-timing-accuracy-check.patch;
24+25 # Configure outside of the source directory.
26 preConfigure = '' mkdir build; cd build; configureScript=../configure; '';
2728 # * -fPIC allows to build atlas inside shared objects, as octave does.
29 #
0000030 # * Atlas detects the cpu and does some tricks. For example, notices the
31 # hydra AMD Family 10h computer, and uses a SSE trick for it (bit 17 of MXCSR)
32 # available, for what I know, only in that family. So we hardcode K7
···38 configureFlags = "-Fa alg -fPIC -t 0"
39 + optionalString stdenv.isi686 " -b 32 -A 18 -V 1"
40 + optionalString stdenv.isx86_64 " -A 31 -V 192"
041 + optionalString shared " --shared "
42 ;
43