forked from mirrors/nixpkgs
commit
2e18ba6c5a
|
@ -2,9 +2,9 @@
|
|||
# data, compression
|
||||
, bzip2, curl, hdf5, json_c, lzma, lzo, protobuf, snappy
|
||||
# maths
|
||||
, blas, eigen, nlopt, lp_solve, colpack
|
||||
, openblasCompat, eigen, nlopt, lp_solve, colpack
|
||||
# libraries
|
||||
, libarchive, liblapack, libxml2
|
||||
, libarchive, libxml2
|
||||
# extra support
|
||||
, pythonSupport ? true, pythonPackages ? null
|
||||
, opencvSupport ? false, opencv ? null
|
||||
|
@ -41,8 +41,8 @@ stdenv.mkDerivation rec {
|
|||
CCACHE_DIR=".ccache";
|
||||
|
||||
buildInputs = with lib; [
|
||||
blas bzip2 ccache cmake colpack curl ctags eigen hdf5 json_c lp_solve lzma lzo
|
||||
protobuf nlopt snappy swig (libarchive.dev) liblapack libxml2
|
||||
openblasCompat bzip2 ccache cmake colpack curl ctags eigen hdf5 json_c lp_solve lzma lzo
|
||||
protobuf nlopt snappy swig (libarchive.dev) libxml2
|
||||
]
|
||||
++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
|
||||
++ optional (opencvSupport) opencv;
|
||||
|
|
|
@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
|
|||
vertex coloring and derivative computation";
|
||||
homepage = "http://cscapes.cs.purdue.edu/coloringpage/software.htm#functionalities";
|
||||
license = licenses.lgpl3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, fetchurl, fetchpatch, texlive, bison, flex, liblapackWithoutAtlas
|
||||
{ stdenv, fetchurl, fetchpatch, texlive, bison, flex, liblapack
|
||||
, gmp, mpfr, pari, ntl, gsl, blas, mpfi
|
||||
, readline, gettext, libpng, libao, gfortran, perl
|
||||
, enableGUI ? false, libGLU_combined ? null, xorg ? null, fltk ? null
|
||||
|
@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
|
|||
# gfortran.cc default output contains static libraries compiled without -fPIC
|
||||
# we want libgfortran.so.3 instead
|
||||
(stdenv.lib.getLib gfortran.cc)
|
||||
liblapackWithoutAtlas
|
||||
liblapack
|
||||
] ++ stdenv.lib.optionals enableGUI [
|
||||
libGLU_combined fltk xorg.libX11
|
||||
];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, fetchurl, apfel, apfelgrid, applgrid, blas, gfortran, lhapdf, liblapackWithoutAtlas, libyaml, lynx, mela, root5, qcdnum, which }:
|
||||
{ stdenv, fetchurl, apfel, apfelgrid, applgrid, blas, gfortran, lhapdf, liblapack, libyaml, lynx, mela, root5, qcdnum, which }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xfitter-${version}";
|
||||
|
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ gfortran which ];
|
||||
buildInputs =
|
||||
[ apfel apfelgrid applgrid blas lhapdf liblapackWithoutAtlas mela root5 qcdnum ]
|
||||
[ apfel apfelgrid applgrid blas lhapdf liblapack mela root5 qcdnum ]
|
||||
# pdf2yaml requires fmemopen and open_memstream which are not readily available on Darwin
|
||||
++ stdenv.lib.optional (!stdenv.isDarwin) libyaml
|
||||
;
|
||||
|
|
|
@ -1,126 +0,0 @@
|
|||
{ stdenv, fetchurl, gfortran, tolerateCpuTimingInaccuracy ? true, shared ? false
|
||||
, cpuConfig ? if stdenv.isi686 then "-b 32 -A 12 -V 1" else "-b 64 -A 14 -V 384"
|
||||
, cacheEdge ? "262144"
|
||||
, threads ? "0"
|
||||
, liblapack, withLapack
|
||||
}:
|
||||
|
||||
# Atlas detects the CPU and optimizes its build accordingly. This is great when
|
||||
# the code is run on the same machine that built the binary, but in case of a
|
||||
# central build farm like Hydra, this feature is dangerous because the code may
|
||||
# be generated utilizing fancy features that users who download the binary
|
||||
# cannot execute.
|
||||
#
|
||||
# To avoid these issues, the build is configured using the 'cpuConfig'
|
||||
# parameter. Upstream recommends these defaults for distributions:
|
||||
#
|
||||
# | x86 CPU | x86_64 CPU |
|
||||
# |---------------------------------------------+------------------------|
|
||||
# | -b 32 | -b 64 |
|
||||
# | -A 12 (x86x87) | -A 14 (x86SSE2) |
|
||||
# | -V 1 (No SIMD) | -V 384 (SSE1 and SSE2) |
|
||||
#
|
||||
# These defaults should give consistent performance across machines.
|
||||
# Performance will be substantially lower than an optimized build, but a build
|
||||
# optimized for one machine will give even worse performance on others. If you
|
||||
# are a serious user of Atlas (e.g., you write code that uses it) you should
|
||||
# compile an optimized version for each of your machines.
|
||||
#
|
||||
# The parameter 'cacheEdge' sets the L2 cache per core (in bytes). Setting this
|
||||
# parameter reduces build time because some tests to detect the L2 cache size
|
||||
# will not be run. It will also reduce impurity; different build nodes on Hydra
|
||||
# may have different L2 cache sizes, but fixing the L2 cache size should
|
||||
# account for that. This also makes the performance of binary substitutes more
|
||||
# consistent.
|
||||
#
|
||||
# The -V flags can change with each release as new instruction sets are added
|
||||
# because upstream thinks it's a good idea to add entries at the start of an
|
||||
# enum, rather than the end. If the build suddenly fails with messages about
|
||||
# missing instruction sets, you may need to poke around in the source a bit.
|
||||
#
|
||||
# Upstream recommends the x86x87/x86SSE2 architectures for generic x86/x86_64
|
||||
# for distribution builds. Additionally, we set 'cacheEdge' to reduce impurity.
|
||||
# Otherwise, the cache parameters will be detected by timing which will be
|
||||
# highly variable on Hydra.
|
||||
|
||||
let
|
||||
inherit (stdenv.lib) optional optionalString;
|
||||
# Don't upgrade until https://github.com/math-atlas/math-atlas/issues/44
|
||||
# is resolved.
|
||||
version = "3.10.3";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "atlas${optionalString withLapack "-with-lapack"}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/math-atlas/atlas${version}.tar.bz2";
|
||||
sha256 = "1dyjlq3fiparvm8ypwk6rsmjzmnwk81l88gkishphpvc79ryp216";
|
||||
};
|
||||
|
||||
buildInputs = [ gfortran ];
|
||||
|
||||
# Atlas aborts the build if it detects that some kind of CPU frequency
|
||||
# scaling is active on the build machine because that feature offsets the
|
||||
# performance timings. We ignore that check, however, because with binaries
|
||||
# being pre-built on Hydra those timings aren't accurate for the local
|
||||
# machine in the first place.
|
||||
patches = optional tolerateCpuTimingInaccuracy ./disable-timing-accuracy-check.patch
|
||||
++ optional stdenv.isDarwin ./tmpdir.patch;
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
# Configure outside of the source directory.
|
||||
preConfigure = ''
|
||||
mkdir build
|
||||
cd build
|
||||
configureScript=../configure
|
||||
'';
|
||||
|
||||
# * -t 0 disables use of multi-threading. It's not quite clear what the
|
||||
# consequences of that setting are and whether it's necessary or not.
|
||||
configureFlags = [
|
||||
"-t ${threads}"
|
||||
cpuConfig
|
||||
] ++ optional shared "--shared"
|
||||
++ optional withLapack "--with-netlib-lapack-tarfile=${liblapack.src}";
|
||||
|
||||
postConfigure = ''
|
||||
if [[ -n "${cacheEdge}" ]]; then
|
||||
echo '#define CacheEdge ${cacheEdge}' >> include/atlas_cacheedge.h
|
||||
echo '#define CacheEdge ${cacheEdge}' >> include/atlas_tcacheedge.h
|
||||
fi
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
postInstall = ''
|
||||
# Avoid name collision with the real lapack (ATLAS only builds a partial
|
||||
# lapack unless withLapack = true).
|
||||
if ${if withLapack then "false" else "true"}; then
|
||||
mv $out/lib/liblapack.a $out/lib/liblapack_atlas.a
|
||||
fi
|
||||
'';
|
||||
|
||||
# 1. /buildATLAS/build/bin/ATLrun.sh: multiple segfaults.
|
||||
# 2. "atlas does its own parallel builds"
|
||||
enableParallelBuilding = false;
|
||||
|
||||
meta = {
|
||||
homepage = http://math-atlas.sourceforge.net/;
|
||||
description = "Automatically Tuned Linear Algebra Software (ATLAS)";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
broken = stdenv.isDarwin; # test when updating to >=3.10.3
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
|
||||
longDescription = ''
|
||||
The ATLAS (Automatically Tuned Linear Algebra Software) project is an
|
||||
ongoing research effort focusing on applying empirical techniques in
|
||||
order to provide portable performance. At present, it provides C and
|
||||
Fortran77 interfaces to a portably efficient BLAS implementation, as well
|
||||
as a few routines from LAPACK.
|
||||
'';
|
||||
|
||||
maintainers = with stdenv.lib.maintainers; [ ttuegel ];
|
||||
};
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
diff -ubr ATLAS-orig/CONFIG/src/config.c ATLAS/CONFIG/src/config.c
|
||||
--- ATLAS-orig/CONFIG/src/config.c 2013-02-06 11:23:47.078036878 +0100
|
||||
+++ ATLAS/CONFIG/src/config.c 2013-02-06 11:24:16.481120888 +0100
|
||||
@@ -711,17 +711,7 @@
|
||||
|
||||
int ProbeCPUThrottle(int verb, char *targarg, enum OSTYPE OS, enum ASMDIA asmb)
|
||||
{
|
||||
- int i, iret;
|
||||
- char *ln;
|
||||
- i = strlen(targarg) + 22 + 12;
|
||||
- ln = malloc(i*sizeof(char));
|
||||
- assert(ln);
|
||||
- sprintf(ln, "%s -O %d -s %d -t", targarg, OS, asmb);
|
||||
- iret = GetIntProbe(verb, ln, "arch", "CPU THROTTLE", 0);
|
||||
- free(ln);
|
||||
- if (iret) printf("CPU Throttling apparently enabled!\n");
|
||||
- else printf("Cannot detect CPU throttling.\n");
|
||||
- return(iret);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
char *NewAppendedString_SFLAG(char *old, char *flag, char *str)
|
|
@ -1,276 +0,0 @@
|
|||
diff --git a/CONFIG/ARCHS/negflt.c b/CONFIG/ARCHS/negflt.c
|
||||
index e5b7871..d45e387 100644
|
||||
--- a/CONFIG/ARCHS/negflt.c
|
||||
+++ b/CONFIG/ARCHS/negflt.c
|
||||
@@ -239,7 +239,7 @@ void NegFile(char *fnam, int N, int *cols)
|
||||
FILE *fpin, *fpout;
|
||||
WORDS *wp0, *wp;
|
||||
|
||||
- tnam = tmpnam(NULL);
|
||||
+ tnam = tempnam(NULL, NULL);
|
||||
fpin = fopen(fnam, "r");
|
||||
assert(fpin);
|
||||
fpout = fopen(tnam, "w");
|
||||
diff --git a/CONFIG/include/atlas_sys.h b/CONFIG/include/atlas_sys.h
|
||||
index b83a749..8902d38 100644
|
||||
--- a/CONFIG/include/atlas_sys.h
|
||||
+++ b/CONFIG/include/atlas_sys.h
|
||||
@@ -216,12 +216,13 @@ static char *ATL_fgets_CWS(char *sout, int *plen, FILE *fpin)
|
||||
|
||||
static char *ATL_tmpnam(void)
|
||||
{
|
||||
- static char tnam[L_tmpnam];
|
||||
+ static char *tnam;
|
||||
static char FirstTime=1;
|
||||
if (FirstTime)
|
||||
{
|
||||
FirstTime = 0;
|
||||
- assert(tmpnam(tnam));
|
||||
+ tnam = tempnam(NULL, NULL);
|
||||
+ assert(tnam);
|
||||
}
|
||||
return(tnam);
|
||||
}
|
||||
diff --git a/bin/atlas_install.c b/bin/atlas_install.c
|
||||
index 2753cbf..e49cc3e 100644
|
||||
--- a/bin/atlas_install.c
|
||||
+++ b/bin/atlas_install.c
|
||||
@@ -662,7 +662,8 @@ void GoToTown(int ARCHDEF, int L1DEF, int TuneLA)
|
||||
{
|
||||
const char TR[2] = {'N','T'};
|
||||
char prec[4] = {'d', 's', 'z', 'c'}, pre, upre, *typ;
|
||||
- char ln[1024], tnam[256], ln2[512], ln3[512], fnam[128];
|
||||
+ char ln[1024], ln2[512], ln3[512], fnam[128];
|
||||
+ char *tnam;
|
||||
char *mulinst, *peakstr, *peakstr2;
|
||||
int nprec=4;
|
||||
int iL1, lat, muladd, maused, latuse, lbnreg;
|
||||
@@ -681,7 +682,7 @@ void GoToTown(int ARCHDEF, int L1DEF, int TuneLA)
|
||||
fpsum = fopen("INSTALL_LOG/SUMMARY.LOG", "a");
|
||||
ATL_Cassert(fpsum, "OPENING INSTALL_LOG/SUMMARY.LOG", NULL);
|
||||
|
||||
- ATL_Cassert(tmpnam(tnam), "GETTING TEMPFILE", NULL);
|
||||
+ ATL_Cassert((tnam = tempnam(NULL, NULL)), "GETTING TEMPFILE", NULL);
|
||||
|
||||
if (L1DEF)
|
||||
{
|
||||
diff --git a/bin/extract.c b/bin/extract.c
|
||||
index 7a5a926..53fb8bf 100644
|
||||
--- a/bin/extract.c
|
||||
+++ b/bin/extract.c
|
||||
@@ -3378,7 +3378,7 @@ void PushProc0(EXTENV *EE, EXTPROC **basep, EXTPROC **myfuncs, char *ln)
|
||||
pp->argnams = KillWord(wp, wp);
|
||||
pp->nargs = CountWords(pp->argnams);
|
||||
|
||||
- cp = tmpnam(NULL);
|
||||
+ cp = tempnam(NULL, NULL);
|
||||
if (cp == NULL) ExtErr(EE, "Out of tmpnams!!!");
|
||||
i = Wstrlen(cp) + 1;
|
||||
pp->FileNam = malloc(i*sizeof(char));
|
||||
diff --git a/include/atlas_mvtesttime.h b/include/atlas_mvtesttime.h
|
||||
index 9147fcb..ab6a99f 100644
|
||||
--- a/include/atlas_mvtesttime.h
|
||||
+++ b/include/atlas_mvtesttime.h
|
||||
@@ -105,14 +105,15 @@ static int MVKernelFailsTest
|
||||
char ln[4096];
|
||||
char *sp;
|
||||
int i, lda0;
|
||||
- static char outnam[L_tmpnam];
|
||||
+ static char* outnam;
|
||||
static int FirstTime=1;
|
||||
|
||||
if (FirstTime)
|
||||
{
|
||||
|
||||
FirstTime = 0;
|
||||
- assert(tmpnam(outnam));
|
||||
+ outnam = tempnam(NULL, NULL);
|
||||
+ assert(outnam);
|
||||
}
|
||||
/*
|
||||
* If the file is generated, call generator to create it
|
||||
@@ -221,14 +222,15 @@ static double TimeMVKernel
|
||||
char ln[2048], resf[256], *sp;
|
||||
double *dp, mf;
|
||||
int i, align = pre2size(pre);
|
||||
- static char outnam[L_tmpnam];
|
||||
+ static char* outnam;
|
||||
static int FirstTime=1;
|
||||
|
||||
if (FirstTime)
|
||||
{
|
||||
|
||||
FirstTime = 0;
|
||||
- assert(tmpnam(outnam));
|
||||
+ outnam = tempnam(NULL, NULL);
|
||||
+ assert(outnam);
|
||||
}
|
||||
/*
|
||||
* If the file is generated, call generator to create it
|
||||
diff --git a/include/atlas_r1testtime.h b/include/atlas_r1testtime.h
|
||||
index b33213a..f27ee25 100644
|
||||
--- a/include/atlas_r1testtime.h
|
||||
+++ b/include/atlas_r1testtime.h
|
||||
@@ -76,14 +76,15 @@ static int R1KernelFailsTest
|
||||
char ln[4096];
|
||||
char *sp;
|
||||
int i, lda0;
|
||||
- static char outnam[L_tmpnam];
|
||||
+ static char* outnam;
|
||||
static int FirstTime=1;
|
||||
|
||||
if (FirstTime)
|
||||
{
|
||||
|
||||
FirstTime = 0;
|
||||
- assert(tmpnam(outnam));
|
||||
+ outnam = tempnam(NULL, NULL);
|
||||
+ assert(outnam);
|
||||
}
|
||||
/*
|
||||
* If the file is generated, call generator to create it
|
||||
@@ -187,14 +188,15 @@ static double TimeR1Kernel
|
||||
char ln[2048], resf[256], *sp;
|
||||
double *dp, mf;
|
||||
int i, align = pre2size(pre);
|
||||
- static char outnam[L_tmpnam];
|
||||
+ static char* outnam;
|
||||
static int FirstTime=1;
|
||||
|
||||
if (FirstTime)
|
||||
{
|
||||
|
||||
FirstTime = 0;
|
||||
- assert(tmpnam(outnam));
|
||||
+ outnam = tempnam(NULL, NULL);
|
||||
+ assert(outnam);
|
||||
}
|
||||
/*
|
||||
* If the file is generated, call generator to create it
|
||||
diff --git a/include/atlas_r2testtime.h b/include/atlas_r2testtime.h
|
||||
index facc66d..c638dce 100644
|
||||
--- a/include/atlas_r2testtime.h
|
||||
+++ b/include/atlas_r2testtime.h
|
||||
@@ -76,14 +76,15 @@ static int R2KernelFailsTest
|
||||
char ln[4096];
|
||||
char *sp;
|
||||
int i, lda0;
|
||||
- static char outnam[L_tmpnam];
|
||||
+ static char* outnam;
|
||||
static int FirstTime=1;
|
||||
|
||||
if (FirstTime)
|
||||
{
|
||||
|
||||
FirstTime = 0;
|
||||
- assert(tmpnam(outnam));
|
||||
+ outnam = tempnam(NULL, NULL);
|
||||
+ assert(outnam);
|
||||
}
|
||||
/*
|
||||
* If the file is generated, call generator to create it
|
||||
@@ -187,14 +188,15 @@ static double TimeR2Kernel
|
||||
char ln[2048], resf[256], *sp;
|
||||
double *dp, mf;
|
||||
int i, align = pre2size(pre);
|
||||
- static char outnam[L_tmpnam];
|
||||
+ static char* outnam;
|
||||
static int FirstTime=1;
|
||||
|
||||
if (FirstTime)
|
||||
{
|
||||
|
||||
FirstTime = 0;
|
||||
- assert(tmpnam(outnam));
|
||||
+ outnam = tempnam(NULL, NULL);
|
||||
+ assert(outnam);
|
||||
}
|
||||
/*
|
||||
* If the file is generated, call generator to create it
|
||||
diff --git a/include/atlas_sys.h b/include/atlas_sys.h
|
||||
index b83a749..b3f88d2 100644
|
||||
--- a/include/atlas_sys.h
|
||||
+++ b/include/atlas_sys.h
|
||||
@@ -216,12 +216,13 @@ static char *ATL_fgets_CWS(char *sout, int *plen, FILE *fpin)
|
||||
|
||||
static char *ATL_tmpnam(void)
|
||||
{
|
||||
- static char tnam[L_tmpnam];
|
||||
+ static char* tnam;
|
||||
static char FirstTime=1;
|
||||
if (FirstTime)
|
||||
{
|
||||
FirstTime = 0;
|
||||
- assert(tmpnam(tnam));
|
||||
+ tnam = tempnam(NULL, NULL);
|
||||
+ assert(tnam);
|
||||
}
|
||||
return(tnam);
|
||||
}
|
||||
diff --git a/tune/blas/gemm/usercomb.c b/tune/blas/gemm/usercomb.c
|
||||
index 59a7cd4..eb3eb05 100644
|
||||
--- a/tune/blas/gemm/usercomb.c
|
||||
+++ b/tune/blas/gemm/usercomb.c
|
||||
@@ -138,11 +138,13 @@ int GetUserCase(char pre, int icase, int *iflag, int *mb, int *nb, int *kb,
|
||||
|
||||
void CombineFiles(char *fout, int nfiles, char **fnams)
|
||||
{
|
||||
- char tnam[256], ln[512];
|
||||
+ char ln[512];
|
||||
+ char *tnam;
|
||||
int i, j, n, nn;
|
||||
FILE *fpout, *fpin;
|
||||
|
||||
- assert(tmpnam(tnam));
|
||||
+ tnam = tempnam(NULL, NULL);
|
||||
+ assert(tnam);
|
||||
for (n=i=0; i < nfiles; i++) n += NumUserCases0(fnams[i]);
|
||||
|
||||
fpout = fopen(tnam, "w");
|
||||
diff --git a/tune/blas/gemm/userflag.c b/tune/blas/gemm/userflag.c
|
||||
index c3983e4..b7dd70b 100644
|
||||
--- a/tune/blas/gemm/userflag.c
|
||||
+++ b/tune/blas/gemm/userflag.c
|
||||
@@ -139,8 +139,8 @@ int GetUserCase(char pre, int icase, int *iflag, int *mb, int *nb, int *kb,
|
||||
|
||||
void GoGetThem(char *infile, char *outfile)
|
||||
{
|
||||
- char ln[512], ln2[512], tnam[256], MCC[256], MMFLAGS[256];
|
||||
- char *chkfile = "FlagCheck.c", *sp, *sp2;
|
||||
+ char ln[512], ln2[512], MCC[256], MMFLAGS[256];
|
||||
+ char *chkfile = "FlagCheck.c", *sp, *sp2, *tnam;
|
||||
FILE *fpin, *fpout;
|
||||
int i, j, n, nmin=0, good;
|
||||
int wass;
|
||||
@@ -152,7 +152,8 @@ void GoGetThem(char *infile, char *outfile)
|
||||
n = NumUserCases0(infile);
|
||||
fpin = fopen(infile, "r");
|
||||
assert(fpin);
|
||||
- assert(tmpnam(tnam));
|
||||
+ tnam = tempnam(NULL, NULL);
|
||||
+ assert(tnam);
|
||||
fpout = fopen(tnam, "w");
|
||||
assert(fpout);
|
||||
assert(fgets(ln, 512, fpin));
|
||||
diff --git a/tune/sysinfo/emit_buildinfo.c b/tune/sysinfo/emit_buildinfo.c
|
||||
index 309c06a..3feaea7 100644
|
||||
--- a/tune/sysinfo/emit_buildinfo.c
|
||||
+++ b/tune/sysinfo/emit_buildinfo.c
|
||||
@@ -41,14 +41,15 @@ static char SMCVERS[LNLEN], DMCVERS[LNLEN], SKCVERS[LNLEN], DKCVERS[LNLEN];
|
||||
static char UNAM[64], DATE[128];
|
||||
char *CmndResults(char *cmnd)
|
||||
{
|
||||
- static char tnam[128];
|
||||
+ static char* tnam;
|
||||
static int FirstTime=1;
|
||||
char ln[512];
|
||||
|
||||
if (FirstTime)
|
||||
{
|
||||
FirstTime = 0;
|
||||
- assert(tmpnam(tnam));
|
||||
+ tnam = tempnam(NULL, NULL);
|
||||
+ assert(tnam);
|
||||
}
|
||||
sprintf(ln, "%s > %s\n", cmnd, tnam);
|
||||
fprintf(stderr, "system: %s", ln);
|
|
@ -4,12 +4,9 @@
|
|||
gfortran,
|
||||
cmake,
|
||||
python2,
|
||||
atlas ? null,
|
||||
shared ? false
|
||||
}:
|
||||
let
|
||||
atlasMaybeShared = if atlas != null then atlas.override { inherit shared; }
|
||||
else null;
|
||||
usedLibExtension = if shared then ".so" else ".a";
|
||||
inherit (stdenv.lib) optional optionals;
|
||||
version = "3.8.0";
|
||||
|
@ -22,7 +19,6 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "1xmwi2mqmipvg950gb0rhgprcps8gy8sjm8ic9rgy2qjlv22rcny";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ atlasMaybeShared ];
|
||||
buildInputs = [ gfortran cmake ];
|
||||
nativeBuildInputs = [ python2 ];
|
||||
|
||||
|
@ -30,15 +26,7 @@ stdenv.mkDerivation rec {
|
|||
"-DUSE_OPTIMIZED_BLAS=ON"
|
||||
"-DCMAKE_Fortran_FLAGS=-fPIC"
|
||||
]
|
||||
++ (optionals (atlas != null) [
|
||||
"-DBLAS_ATLAS_f77blas_LIBRARY=${atlasMaybeShared}/lib/libf77blas${usedLibExtension}"
|
||||
"-DBLAS_ATLAS_atlas_LIBRARY=${atlasMaybeShared}/lib/libatlas${usedLibExtension}"
|
||||
])
|
||||
++ (optional shared "-DBUILD_SHARED_LIBS=ON")
|
||||
# If we're on darwin, CMake will automatically detect impure paths. This switch
|
||||
# prevents that.
|
||||
++ (optional stdenv.isDarwin "-DCMAKE_OSX_SYSROOT:PATH=''")
|
||||
;
|
||||
++ (optional shared "-DBUILD_SHARED_LIBS=ON");
|
||||
|
||||
doCheck = ! shared;
|
||||
|
||||
|
@ -48,10 +36,6 @@ stdenv.mkDerivation rec {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
blas = atlas;
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
inherit version;
|
||||
description = "Linear Algebra PACKage";
|
||||
|
|
|
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
|
|||
homepage = http://www.netlib.org/scalapack/;
|
||||
description = "Library of high-performance linear algebra routines for parallel distributed memory machines";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.all;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
};
|
||||
|
||||
|
|
|
@ -164,6 +164,7 @@ mapAliases ({
|
|||
libgumbo = gumbo; # added 2018-01-21
|
||||
libintlOrEmpty = stdenv.lib.optional (!stdenv.isLinux || stdenv.hostPlatform.libc != "glibc") gettext; # added 2018-03-14
|
||||
libjson_rpc_cpp = libjson-rpc-cpp; # added 2017-02-28
|
||||
liblapackWithoutAtlas = liblapack; # added 2018-11-05
|
||||
libmysql = mysql.connector-c; # added # 2017-12-28, this was a misnomer refering to libmysqlclient
|
||||
librecad2 = librecad; # backwards compatibility alias, added 2015-10
|
||||
libsysfs = sysfsutils; # added 2018-04-25
|
||||
|
|
|
@ -16156,9 +16156,7 @@ with pkgs;
|
|||
|
||||
cpp_ethereum = callPackage ../applications/misc/cpp-ethereum { };
|
||||
|
||||
csdp = callPackage ../applications/science/math/csdp {
|
||||
liblapack = liblapackWithoutAtlas;
|
||||
};
|
||||
csdp = callPackage ../applications/science/math/csdp { };
|
||||
|
||||
ctop = callPackage ../tools/system/ctop { };
|
||||
|
||||
|
@ -21245,16 +21243,6 @@ with pkgs;
|
|||
|
||||
arpack = callPackage ../development/libraries/science/math/arpack { };
|
||||
|
||||
atlas = callPackage ../development/libraries/science/math/atlas {
|
||||
# The build process measures CPU capabilities and optimizes the
|
||||
# library to perform best on that particular machine. That is a
|
||||
# great feature, but it's of limited use with pre-built binaries
|
||||
# coming from a central build farm.
|
||||
tolerateCpuTimingInaccuracy = true;
|
||||
liblapack = liblapackWithoutAtlas;
|
||||
withLapack = false;
|
||||
};
|
||||
|
||||
blas = callPackage ../development/libraries/science/math/blas { };
|
||||
|
||||
brial = callPackage ../development/libraries/science/math/brial { };
|
||||
|
@ -21277,13 +21265,7 @@ with pkgs;
|
|||
|
||||
libhomfly = callPackage ../development/libraries/science/math/libhomfly { };
|
||||
|
||||
# We have essentially 4 permutations of liblapack: version 3.4.1 or 3.5.0,
|
||||
# and with or without atlas as a dependency. The default `liblapack` is 3.4.1
|
||||
# with atlas. Atlas, when built with liblapack as a dependency, uses 3.5.0
|
||||
# without atlas. Etc.
|
||||
liblapack = callPackage ../development/libraries/science/math/liblapack {};
|
||||
liblapackWithoutAtlas = liblapackWithAtlas.override { atlas = null; };
|
||||
liblapackWithAtlas = liblapack;
|
||||
|
||||
liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
|
||||
|
||||
|
@ -21350,9 +21332,7 @@ with pkgs;
|
|||
|
||||
QuadProgpp = callPackage ../development/libraries/science/math/QuadProgpp { };
|
||||
|
||||
scs = callPackage ../development/libraries/science/math/scs {
|
||||
liblapack = liblapackWithoutAtlas;
|
||||
};
|
||||
scs = callPackage ../development/libraries/science/math/scs { };
|
||||
|
||||
sage = callPackage ../applications/science/math/sage {
|
||||
nixpkgs = pkgs;
|
||||
|
|
|
@ -18,7 +18,6 @@ with import ./release-lib.nix { inherit supportedSystems; };
|
|||
|
||||
aspell = all;
|
||||
at = linux;
|
||||
atlas = linux;
|
||||
autoconf = all;
|
||||
automake = all;
|
||||
avahi = unix; # Cygwin builds fail
|
||||
|
|
Loading…
Reference in a new issue