rebuilt with liblapack-3.4.2-5mamba implementing extended precision routines (xblas) [release 3.8.4-3mamba;Mon Aug 26 2013]

This commit is contained in:
Silvan Calarco 2024-01-06 03:49:16 +01:00
parent 9fbcde0db9
commit 4f4f019703
6 changed files with 1100 additions and 0 deletions

32
ATLAS-README Normal file
View File

@ -0,0 +1,32 @@
Because ATLAS relies on compile-time optimizations to obtain improved
performance over BLAS and LAPACK, the resulting binaries are closely
tied to the hardware on which they are compiled, and can likely result
in very poor performance on other hardware. For this reason,
including a package like ATLAS in openmamba requires some compromises.
Firstly, a binary ATLAS package must perform reasonably well on the
entire range of hardware on which it could potentially be installed.
Optimizing ATLAS for the most modern hardware can result in
significant performance penalties for users using the same package on
older hardware. Second, building from the same source package must
result in identical binaries for any computer of a particular
architecture. This is because the binaries installed on a user's
computer are built on a computer in the openmamba Extras build system,
which will have hardware different from the end user's hardware, and
quite possibly different from other available hardware in the build
system.
For i386 systems, 3 ATLAS subpackages are built for SSE1, SSE2, and SSE3 ix86
extensions, using architectural defaults obtained from PIII, Pentium 4 with
SSE2 extension and PENTIUM 4 with SSE3 extensions respectively.
This package is designed to build RPMs that are identical regardless
of where they are compiled and that provide reasonable performance on
a wide range of hardware. For users who want optimal performance on
particular hardware, custom RPMs can be built from the source package
by setting the RPM macro "enable_native_atlas" to a value of 1. This
can be done from the command line as in the following example:
rpmbuild -D "enable_native_atlas 1" --rebuild libatlas-@VER_REL@.src.rpm
This will cause the ATLAS build to use the achitectural default most
appropriate for the system on which the package is to be built.

View File

@ -1,2 +1,4 @@
# libatlas
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.

375
atlas-3.8.4-arm.patch Normal file
View File

@ -0,0 +1,375 @@
diff -ru ATLAS/CONFIG/include/atlconf.h ATLAS-3.8.4-arm/CONFIG/include/atlconf.h
--- ATLAS/CONFIG/include/atlconf.h 2011-05-14 19:33:24.000000000 +0200
+++ ATLAS-3.8.4-arm/CONFIG/include/atlconf.h 2011-05-16 13:50:44.000000000 +0200
@@ -14,9 +14,9 @@
OSWin9x, OSWinNT, OSHPUX, OSFreeBSD, OSOSX};
#define OSIsWin(OS_) (((OS_) == OSWinNT) || ((OS_) == OSWin9x))
-enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS};
+enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS, AFARM};
-#define NMACH 37
+#define NMACH 39
static char *machnam[NMACH] =
{"UNKNOWN", "POWER3", "POWER4", "POWER5", "PPCG4", "PPCG5",
"POWER6", "POWER7",
@@ -25,7 +25,7 @@
"Efficeon", "K7", "HAMMER", "AMD64K10h", "UNKNOWNx86",
"IA64Itan", "IA64Itan2",
"USI", "USII", "USIII", "USIV", "UST2", "UnknownUS",
- "MIPSR1xK", "MIPSICE9"};
+ "MIPSR1xK", "MIPSICE9", "ARMv7VFP", "ARMv7VFPNEON"};
enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5,
IbmPwr6, IbmPwr7,
IntP5, IntP5MMX, IntPPRO, IntPII, IntPIII, IntPM, IntCoreS,
@@ -34,7 +34,8 @@
IA64Itan, IA64Itan2,
SunUSI, SunUSII, SunUSIII, SunUSIV, SunUST2, SunUSX,
MIPSR1xK, /* includes R10K, R12K, R14K, R16K */
- MIPSICE9 /* SiCortex ICE9 -- like MIPS5K */
+ MIPSICE9, /* SiCortex ICE9 -- like MIPS5K */
+ ARMv7VFP, ARMv7VFPNEON
};
#define MachIsX86(mach_) \
( (mach_) >= IntP5 && (mach_) <= x86X )
@@ -51,6 +52,8 @@
#endif
#define MachIsPPC(mach_) \
( (mach_) >= PPCG4 && (mach_) <= PPCG5 )
+#define MachIsARM(mach_) \
+ ( (mach_) >= ARMv7VFP && (mach_) <= ARMv7VFPNEON )
static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"};
static char *f2c_intstr[5] =
@@ -63,18 +66,18 @@
enum F2CINT {f2c_IntErr=0, FintCint, FintClong, FintClonglong, FintCshort};
enum F2CSTRING {f2c_StrErr=0, fstrSun, fstrCray, fstrStructVal, fstrStructPtr};
-#define NISA 6
+#define NISA 7
static char *ISAXNAM[NISA] =
- {"", "AltiVec", "SSE3", "SSE2", "SSE1", "3DNow"};
-enum ISAEXT {ISA_None=0, ISA_AV, ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow};
+ {"", "AltiVec", "SSE3", "SSE2", "SSE1", "3DNow", "NEON"};
+enum ISAEXT {ISA_None=0, ISA_AV, ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow, ISA_NEON};
-#define NASMD 7
+#define NASMD 8
enum ASMDIA
{ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc,
- gas_mips};
+ gas_mips, gas_arm};
static char *ASMNAM[NASMD] =
{"", "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC",
- "GAS_MIPS"};
+ "GAS_MIPS", "GAS_ARM"};
/*
diff -ru ATLAS/CONFIG/src/Makefile ATLAS-3.8.4-arm/CONFIG/src/Makefile
--- ATLAS/CONFIG/src/Makefile 2011-05-14 19:33:24.000000000 +0200
+++ ATLAS-3.8.4-arm/CONFIG/src/Makefile 2011-04-20 16:43:26.000000000 +0200
@@ -151,6 +151,11 @@
$(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_sse3 args="$(args)" \
redir=config0.out
- cat config0.out
+IRun_NEON :
+ $(CC) $(CCFLAGS) -mfpu=neon -o xprobe_neon $(SRCdir)/backend/probe_svec.c $(SRCdir)/backend/probe_NEON.S
+ $(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_neon args="$(args)" \
+ redir=config0.out
+ - cat config0.out
IRun_GAS_SPARC :
$(CC) $(CCFLAGS) -o xprobe_gas_sparc $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_sparc.S
@@ -177,6 +182,11 @@
$(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_x8632 args="$(args)" \
redir=config0.out
- cat config0.out
+IRun_GAS_ARM :
+ $(CC) $(CCFLAGS) -o xprobe_gas_arm $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_arm.S
+ $(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_arm args="$(args)" \
+ redir=config0.out
+ - cat config0.out
IRunC2C :
- rm -f config0.out xc2c c2cslave.o
diff -ru ATLAS/CONFIG/src/atlcomp.txt ATLAS-3.8.4-arm/CONFIG/src/atlcomp.txt
--- ATLAS/CONFIG/src/atlcomp.txt 2011-05-14 19:33:24.000000000 +0200
+++ ATLAS-3.8.4-arm/CONFIG/src/atlcomp.txt 2012-05-16 19:47:42.000000000 +0200
@@ -164,6 +164,19 @@
MACH=P4,PM OS=WinNT LVL=0 COMPS=icc,dmc,smc,dkc,skc,xcc
'icl' '-QxN -O3 -Qprec -fp:extended -fp:except -nologo -Oy'
#
+# ARM defaults
+#
+MACH=ARMv7VFP,ARMv7VFPNEON OS=ALL LVL=1000 COMPS=icc,xcc
+ 'gcc' '-march=armv7-a -O1'
+MACH=ARMv7VFPNEON OS=ALL LVL=1000 COMPS=smc,skc
+ 'gcc' '-march=armv7-a -mfpu=neon -ffast-math -O3 -fschedule-insns -fschedule-insns2 -fprefetch-loop-arrays'
+MACH=ARMv7VFP OS=ALL LVL=1000 COMPS=smc,skc
+ 'gcc' '-march=armv7-a -mfpu=vfpv3 -O1 -fno-expensive-optimizations'
+MACH=ARMv7VFP,ARMv7VFPNEON OS=ALL LVL=1000 COMPS=dmc,dkc
+ 'gcc' '-march=armv7-a -mfpu=vfpv3 -O1 -fno-schedule-insns2'
+MACH=ARMv7VFP,ARMv7VFPNEON OS=ALL LVL=1000 COMPS=f77
+ 'gfortran' '-march=armv7-a -O1'
+#
# Generic defaults
#
MACH=ALL OS=ALL LVL=5 COMPS=icc,smc,dmc,skc,dkc,xcc
diff -ru ATLAS/CONFIG/src/atlconf_misc.c ATLAS-3.8.4-arm/CONFIG/src/atlconf_misc.c
--- ATLAS/CONFIG/src/atlconf_misc.c 2011-05-14 19:33:24.000000000 +0200
+++ ATLAS-3.8.4-arm/CONFIG/src/atlconf_misc.c 2011-04-20 16:43:26.000000000 +0200
@@ -480,6 +480,7 @@
else if (strstr(res, "alpha")) fam = AFALPHA;
else if (strstr(res, "ia64")) fam = AFIA64;
else if (strstr(res, "mips")) fam = AFMIPS;
+ else if (strstr(res, "arm")) fam = AFARM;
else if ( strstr(res, "i686") || strstr(res, "i586") ||
strstr(res, "i486") || strstr(res, "i386") ||
strstr(res, "x86") || strstr(res, "x86_64") ) fam = AFX86;
@@ -501,6 +502,7 @@
strstr(res, "i486") || strstr(res, "i386") ||
strstr(res, "x86_64") ) fam = AFX86;
else if (strstr(res, "mips")) fam = AFMIPS;
+ else if (strstr(res, "arm")) fam = AFARM;
}
}
return(fam);
diff -ru ATLAS/CONFIG/src/backend/archinfo_linux.c ATLAS-3.8.4-arm/CONFIG/src/backend/archinfo_linux.c
--- ATLAS/CONFIG/src/backend/archinfo_linux.c 2011-05-14 19:33:24.000000000 +0200
+++ ATLAS-3.8.4-arm/CONFIG/src/backend/archinfo_linux.c 2011-05-16 14:19:02.000000000 +0200
@@ -166,6 +166,20 @@
else if (strstr(res, "AMD-K7")) mach = AmdAthlon;
}
break;
+ case AFARM:
+ if ( !CmndOneLine(NULL, "fgrep 'Processor' /proc/cpuinfo", res) )
+ {
+ if (strstr(res, "ARMv7") || strstr(res,"v7l")) mach = ARMv7VFP;
+ }
+ else if ( !CmndOneLine(NULL, "fgrep 'cpu' /proc/cpuinfo", res) )
+ {
+ if (strstr(res, "ARMv7") || strstr(res,"v7l")) mach = ARMv7VFP;
+ }
+ if ( !CmndOneLine(NULL, "fgrep 'Features' /proc/cpuinfo", res) )
+ {
+ if (strstr(res, "neon")) mach = ARMv7VFPNEON;
+ }
+ break;
/*
* Add these back if we get machine access and can test
*/
diff -ru ATLAS/README ATLAS-3.8.4-arm/README
--- ATLAS/README 2011-05-14 19:33:23.000000000 +0200
+++ ATLAS-3.8.4-arm/README 2012-06-18 23:19:46.000000000 +0200
@@ -1,3 +1,19 @@
+ATLAS-3.8.4-arm
+released 18 June 2012
+
+Changes since beta 1:
+
+ - assembly headers changed to link properly on Unbuntu 11.10 and 12.04
+ - VFP single-precision GEMM by Clint Whaley backported from ATLAS 3.9.x
+
+Changes since beta 2:
+
+ - VFP assembly GEMM kernels added for hard floating-point ABI (like Ubuntu 12.04)
+
+Changes since beta 3:
+ (none)
+
+
This is the README index file. If you want install intructions,
read ATLAS/INSTALL.txt. Windows users should read
ATLAS/doc/Windows.txt as well. Note that all of this documentation is
diff -ru ATLAS/tune/blas/gemm/CASES/ccases.flg ATLAS-3.8.4-arm/tune/blas/gemm/CASES/ccases.flg
--- ATLAS/tune/blas/gemm/CASES/ccases.flg 2011-05-14 19:34:10.000000000 +0200
+++ ATLAS-3.8.4-arm/tune/blas/gemm/CASES/ccases.flg 2012-06-03 14:25:17.000000000 +0200
@@ -1,5 +1,5 @@
<ID> <flag> <mb> <nb> <kb> <muladd> <lat> <mu> <nu> <ku> <rout> "<Contributer>"
-20
+25
304 192 4 3 8 0 4 4 3 8 ATL_mm4x3x8p.c "R. Clint Whaley" \
gcc
-mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O
@@ -52,3 +52,18 @@
gcc
-x assembler-with-cpp -mips4
332 192 8 2 4 1 0 8 2 4 ATL_smm8x2x4_av.c "IBM"
+333 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2pf_arm.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+334 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2dld_arm.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+335 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2pf_armhf.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+336 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2dld_armhf.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+337 480 4 4 4 1 1 4 4 4 ATL_smm4x4x4p_neon.c "Vesperix Corporation" \
+gcc
+-march=armv7-a -mfpu=neon -O2
diff -ru ATLAS/tune/blas/gemm/CASES/dcases.flg ATLAS-3.8.4-arm/tune/blas/gemm/CASES/dcases.flg
--- ATLAS/tune/blas/gemm/CASES/dcases.flg 2011-05-14 19:34:10.000000000 +0200
+++ ATLAS-3.8.4-arm/tune/blas/gemm/CASES/dcases.flg 2012-06-03 14:23:02.000000000 +0200
@@ -1,5 +1,5 @@
<ID> <flag> <mb> <nb> <kb> <muladd> <lat> <mu> <nu> <ku> <rout> "<Contributer>"
-31
+33
306 192 4 3 8 0 4 4 3 8 ATL_mm4x3x8p.c "R. Clint Whaley" \
gcc
-mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O -fno-schedule-insns -fno-schedule-insns2
@@ -85,6 +85,11 @@
338 192 8 4 2 1 0 8 4 2 ATL_dmm8x4x2_vsx.c "IBM" \
gcc
-O3 -mvsx
-
+339 448 4 4 2 1 1 4 4 2 ATL_dmm4x4x2pf_arm.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+340 448 4 4 2 1 1 4 4 2 ATL_dmm4x4x2pf_armhf.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
# NB = 80 and NB = 120 are to force UltraSparc to try NB > L1 Cache,
# needed for optimal performance on Ultra2 and Ultra4, respectively
diff -ru ATLAS/tune/blas/gemm/CASES/scases.flg ATLAS-3.8.4-arm/tune/blas/gemm/CASES/scases.flg
--- ATLAS/tune/blas/gemm/CASES/scases.flg 2011-05-14 19:34:10.000000000 +0200
+++ ATLAS-3.8.4-arm/tune/blas/gemm/CASES/scases.flg 2012-06-03 14:25:48.000000000 +0200
@@ -1,5 +1,5 @@
<ID> <flag> <mb> <nb> <kb> <muladd> <lat> <mu> <nu> <ku> <rout> "<Contributer>"
-22
+27
304 192 4 3 8 0 4 4 3 8 ATL_mm4x3x8p.c "R. Clint Whaley" \
gcc
-mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O
@@ -58,3 +58,18 @@
gcc
-x assembler-with-cpp -mips4
332 192 8 2 4 1 0 8 2 4 ATL_smm8x2x4_av.c "IBM"
+333 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2pf_arm.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+334 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2dld_arm.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+335 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2pf_armhf.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+336 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2dld_armhf.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+337 480 4 4 4 1 1 4 4 4 ATL_smm4x4x4p_neon.c "Vesperix Corporation" \
+gcc
+-march=armv7-a -mfpu=neon -O2
diff -ru ATLAS/tune/blas/gemm/CASES/zcases.flg ATLAS-3.8.4-arm/tune/blas/gemm/CASES/zcases.flg
--- ATLAS/tune/blas/gemm/CASES/zcases.flg 2011-05-14 19:34:10.000000000 +0200
+++ ATLAS-3.8.4-arm/tune/blas/gemm/CASES/zcases.flg 2012-06-03 14:23:36.000000000 +0200
@@ -1,5 +1,5 @@
<ID> <flag> <mb> <nb> <kb> <muladd> <lat> <mu> <nu> <ku> <rout> "<Contributer>"
-30
+32
306 192 4 3 8 0 4 4 3 8 ATL_mm4x3x8p.c "R. Clint Whaley" \
gcc
-mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O -fno-schedule-insns -fno-schedule-insns2
@@ -82,6 +82,11 @@
338 192 8 4 2 1 0 8 4 2 ATL_dmm8x4x2_vsx.c "IBM" \
gcc
-O3 -mvsx
-
+339 448 4 4 2 1 1 4 4 2 ATL_dmm4x4x2pf_arm.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
+340 448 4 4 2 1 1 4 4 2 ATL_dmm4x4x2pf_armhf.c "R. Clint Whaley" \
+gcc
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
# NB = 80 and NB = 120 are to force UltraSparc to try NB > L1 Cache,
# needed for optimal performance on Ultra2 and Ultra4, respectively
diff -ru ATLAS/tune/sysinfo/ATL_cputime.c ATLAS-3.8.4-arm/tune/sysinfo/ATL_cputime.c
--- ATLAS/tune/sysinfo/ATL_cputime.c 2011-05-14 19:34:09.000000000 +0200
+++ ATLAS-3.8.4-arm/tune/sysinfo/ATL_cputime.c 2012-05-05 18:16:58.000000000 +0200
@@ -48,6 +48,26 @@
t0 = clock();
return(0.0);
}
+#elif defined(POSIX_HR) /* use the POSIX HR timers */
+ #include <time.h>
+ double ATL_cputime(void)
+ {
+ struct timespec ts;
+ static double t0;
+ double res;
+ static int INIT = 0;
+
+ if (INIT)
+ {
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts);
+ res = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
+ return(res - t0);
+ }
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&ts);
+ t0 = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
+ INIT = 1;
+ return(0.0);
+ }
#elif defined(UseTimes)
#include <stdlib.h>
#include <sys/times.h>
diff -ru ATLAS/tune/sysinfo/ATL_walltime.c ATLAS-3.8.4-arm/tune/sysinfo/ATL_walltime.c
--- ATLAS/tune/sysinfo/ATL_walltime.c 2011-05-14 19:34:09.000000000 +0200
+++ ATLAS-3.8.4-arm/tune/sysinfo/ATL_walltime.c 2012-05-05 18:23:20.000000000 +0200
@@ -79,6 +79,26 @@
myout = (myout<<32) | msout.LowPart;
return(myout*freqRecip);
}
+#elif defined(POSIX_HR) /* use the POSIX HR timers */
+ #include <time.h>
+ double ATL_cputime(void)
+ {
+ struct timespec ts;
+ static double t0;
+ double res;
+ static int INIT = 0;
+
+ if (INIT)
+ {
+ clock_gettime(CLOCK_REALTIME, &ts);
+ res = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
+ return(res - t0);
+ }
+ clock_gettime(CLOCK_REALTIME,&ts);
+ t0 = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
+ INIT = 1;
+ return(0.0);
+ }
#elif defined(UseTimes)
#include <stdlib.h>
#include <sys/times.h>
@@ -97,6 +117,26 @@
{
return(gethrtime()*1.0e-9);
}
+#elif defined(POSIX_HR) /* use the POSIX HR timers */
+ #include <time.h>
+ double ATL_walltime(void)
+ {
+ struct timespec ts;
+ static double t0;
+ double res;
+ static int INIT = 0;
+
+ if (INIT)
+ {
+ clock_gettime(CLOCK_REALTIME, &ts);
+ res = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
+ return(res - t0);
+ }
+ clock_gettime(CLOCK_REALTIME, &ts);
+ t0 = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
+ INIT = 1;
+ return(0.0);
+ }
/*
* Without gcc, I know no standard Windows wall-timer, so use cputime
*/

View File

@ -0,0 +1,15 @@
diff -up ATLAS/CONFIG/src/SpewMakeInc.c.melf ATLAS/CONFIG/src/SpewMakeInc.c
--- ATLAS/CONFIG/src/SpewMakeInc.c.melf 2011-05-14 11:33:24.000000000 -0600
+++ ATLAS/CONFIG/src/SpewMakeInc.c 2012-08-09 10:52:28.051926489 -0600
@@ -665,9 +665,9 @@ main(int nargs, char **args)
if (MachIsX86(mach))
{
if (ptrbits == 32)
- fprintf(fpout, " -melf_i386");
+ fprintf(fpout, " -Wl,-melf_i386");
else if (ptrbits == 64)
- fprintf(fpout, " -melf_x86_64");
+ fprintf(fpout, " -Wl,-melf_x86_64");
if (OS == OSFreeBSD)
fprintf(fpout, "_fbsd");
}

111
libatlas-3.8.4-shared.patch Normal file
View File

@ -0,0 +1,111 @@
--- ATLAS/makes/Make.lib 2009-02-18 19:47:36.000000000 +0100
+++ ATLAS/makes/Make.lib-gil 2009-05-09 08:26:56.000000000 +0200
@@ -3,6 +3,8 @@
#
# override with libatlas.so only when atlas is built to one lib
#
+so_ver_major=3
+so_ver = $(so_ver_major).0
DYNlibs = liblapack.so libf77blas.so libcblas.so libatlas.so
PTDYNlibs = liblapack.so libptf77blas.so libptcblas.so libatlas.so
CDYNlibs = liblapack.so libcblas.so libatlas.so
@@ -32,38 +34,78 @@
mv $(tarnam).tar.gz $(tarnam).tgz
ptshared :
- - rm -f libatlas.so liblapack.so
- $(MAKE) libatlas.so liblapack.so libptf77blas.so libf77blas.so \
- libptcblas.so libcblas.so liblapack.so
+ - rm -f libatlas.so* liblapack.so* \
+ lib*blas.so* libclapack.so*
+ $(MAKE) libatlas.so libcblas.so libptf77blas.so libf77blas.so \
+ libptcblas.so liblapack.so libclapack.so
shared :
- - rm -f libatlas.so liblapack.so
- $(MAKE) libatlas.so liblapack.so libf77blas.so libcblas.so liblapack.so
+ - rm -f libatlas.so liblapack.so \
+ libatlas.so.$(so_ver) liblapack.so.$(so_ver)
+ $(MAKE) libatlas.so libcblas.so libf77blas.so liblapack.so libclapack.so
cptshared :
- - rm -f libatlas.so libclapack.so
- $(MAKE) libatlas.so libclapack.so libptcblas.so libcblas.so
+ - rm -f libatlas.so libclapack.so \
+ libatlas.so.$(so_ver) libclapack.so.$(so_ver)
+ $(MAKE) libatlas.so libptcblas.so libcblas.so libclapack.so
cshared :
- - rm -f libatlas.so libclapack.so
- $(MAKE) libatlas.so libclapack.so libcblas.so
+ - rm -f libatlas.so libclapack.so \
+ libatlas.so.$(so_ver) libclapack.so.$(so_ver)
+ $(MAKE) libatlas.so libcblas.so libclapack.so
libatlas.so : libatlas.a
- ld $(LDFLAGS) -shared -soname libatlas.so -o libatlas.so \
- --whole-archive libatlas.a --no-whole-archive -lc $(LIBS)
+ mkdir static_libs ; cd static_libs ; ar x ../libatlas.a ; cd ../
+ gcc $(LDFLAGS) -shared -Wl,-soname=libatlas.so.$(so_ver_major) \
+ -o libatlas.so.$(so_ver) static_libs/*.o -lc $(LIBS)
+ rm -rf static_libs
+ ln -sf ./libatlas.so.$(so_ver) libatlas.so.$(so_ver_major)
+ ln -sf ./libatlas.so.$(so_ver) libatlas.so
liblapack.so : liblapack.a
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive \
- liblapack.a --no-whole-archive $(F77SYSLIB)
+ mkdir static_libs ; cd static_libs ; ar x ../liblapack.a ; cd ../
+ gcc $(LDFLAGS) -shared -Wl,-soname=liblapack.so.$(so_ver_major) \
+ -o liblapack.so.$(so_ver) static_libs/*.o $(F77SYSLIB) \
+ libf77blas.so.$(so_ver_major) libcblas.so.$(so_ver_major)
+ rm -rf static_libs
+ ln -sf ./liblapack.so.$(so_ver) liblapack.so.$(so_ver_major)
+ ln -sf ./liblapack.so.$(so_ver) liblapack.so
libclapack.so : libclapack.a
- ld $(LDFLAGS) -shared -soname liblapack.so -o liblapack.so \
- --whole-archive libclapack.a
+ mkdir static_libs ; cd static_libs ; ar x ../libclapack.a ; cd ../
+ gcc $(LDFLAGS) -shared -Wl,-soname=libclapack.so.$(so_ver_major) \
+ -o libclapack.so.$(so_ver) static_libs/*.o \
+ libcblas.so.$(so_ver_major) -lc $(LIBS)
+ rm -rf static_libs
+ ln -sf ./libclapack.so.$(so_ver) libclapack.so.$(so_ver_major)
+ ln -sf ./libclapack.so.$(so_ver) libclapack.so
libptf77blas.so : libptf77blas.a
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libptf77blas.a \
- --no-whole-archive $(F77SYSLIB)
+ mkdir static_libs ; cd static_libs ; ar x ../libptf77blas.a ; cd ../
+ gcc $(LDFLAGS) -shared -Wl,-soname=libptf77blas.so.$(so_ver_major) \
+ -o libptf77blas.so.$(so_ver) static_libs/*.o \
+ libatlas.so.$(so_ver) $(F77SYSLIB)
+ rm -rf static_libs
+ ln -sf ./libptf77blas.so.$(so_ver) libptf77blas.so.$(so_ver_major)
+ ln -sf ./libptf77blas.so.$(so_ver) libptf77blas.so
libf77blas.so : libf77blas.a
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libf77blas.a \
- --no-whole-archive $(F77SYSLIB)
+ mkdir static_libs ; cd static_libs ; ar x ../libf77blas.a ; cd ../
+ gcc $(LDFLAGS) -shared -Wl,-soname=libf77blas.so.$(so_ver_major) \
+ -o libf77blas.so.$(so_ver) static_libs/*.o \
+ libatlas.so.$(so_ver) $(F77SYSLIB)
+ rm -rf static_libs
+ ln -sf ./libf77blas.so.$(so_ver) libf77blas.so.$(so_ver_major)
+ ln -sf ./libf77blas.so.$(so_ver) libf77blas.so
libptcblas.so : libptcblas.a
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libptcblas.a
+ mkdir static_libs ; cd static_libs ; ar x ../libptcblas.a ; cd ../
+ gcc $(LDFLAGS) -shared -Wl,-soname=libptcblas.so.$(so_ver_major) \
+ -o libptcblas.so.$(so_ver) static_libs/*.o \
+ libatlas.so.$(so_ver) -lc $(LIBS)
+ rm -rf static_libs
+ ln -sf ./libptcblas.so.$(so_ver) libptcblas.so.$(so_ver_major)
+ ln -sf ./libptcblas.so.$(so_ver) libptcblas.so
libcblas.so : libcblas.a
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libcblas.a
+ mkdir static_libs ; cd static_libs ; ar x ../libcblas.a ; cd ../
+ gcc $(LDFLAGS) -shared -Wl,-soname=libcblas.so.$(so_ver_major) \
+ -o libcblas.so.$(so_ver) static_libs/*.o \
+ libatlas.so.$(so_ver) -lc $(LIBS)
+ rm -rf static_libs
+ ln -sf ./libcblas.so.$(so_ver) libcblas.so.$(so_ver_major)
+ ln -sf ./libcblas.so.$(so_ver) libcblas.so
#
# Builds one shared lib from all ATLAS files
#

565
libatlas.spec Normal file
View File

@ -0,0 +1,565 @@
%define major %(echo %version | cut -d. -f 1)
%ifarch arm
%define enable_native_atlas 0
%else
%define enable_native_atlas 1
%endif
%if %enable_native_atlas
%ifarch %ix86
%define types base 3dnow sse sse2 sse3
%define mode 32
%define pr_sse2 35
%endif
%ifarch x86_64
%define types base sse2
%define mode 64
%define pr_sse2 63
%endif
%else
%ifarch %ix86 arm
%define types base
%define mode 32
%endif
%ifarch x86_64
%define types base
%define mode 64
%endif
%endif
%define pr_base 32
%define pr_3dnow 33
%define pr_sse 34
%define pr_sse3 36
Name: libatlas
Version: 3.8.4
Release: 3mamba
Summary: ATLAS - Automatically Tuned Linear Algebra Software
Group: System/Libraries
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://math-atlas.sourceforge.net/
Source0: http://downloads.sourceforge.net/project/math-atlas/Stable/%{version}/atlas%{version}.tar.bz2
Source1: ATLAS-README
# http://sourceforge.net/cvs/?group_id=23725
Source2: PPRO32.tgz
Source3: K7323DNow.tgz
Source4: USII64.tgz
Source5: USII32.tgz
Patch0: libatlas-3.8.4-shared.patch
Patch1: libatlas-3.8.4-fix-melf-link-flags.patch
# ARM patch diffed from:
# http://www.vesperix.com/arm/atlas-arm/source/atlas-%{version}-arm.tar.gz
Patch2: atlas-3.8.4-arm.patch
License: BSD
## AUTOBUILDREQ-BEGIN
BuildRequires: gcc-fortran
BuildRequires: glibc-devel
## AUTOBUILDREQ-END
BuildRequires: libblas-devel >= 3.4.2-3mamba
BuildRequires: liblapack-devel >= 3.4.2-5mamba
BuildRequires: libxblas-devel
BuildRequires: libgomp-devel
#ExclusiveArch: ix86 amd64 x86_64
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
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.
%package devel
Group: Development/Libraries
Summary: Development libraries for ATLAS
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Requires: chkconfig
%description devel
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains the libraries and headers for development with ATLAS.
%if %enable_native_atlas
%ifarch x86_64
%package sse2
Group: System/Libraries
Summary: ATLAS libraries for SSE2 extensions
%description sse2
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains the ATLAS libraries compiled with optimizations for the SSE2 extensions to the x86_64 architecture.
%package sse2-devel
Group: Development/Libraries
Summary: Development libraries for ATLAS with SSE2 extensions
Requires: %{name}-sse2 = %{?epoch:%epoch:}%{version}-%{release}
Requires: chkconfig
%description sse2-devel
This package contains shared and static versions of the ATLAS libraries compiled with optimizations for the SSE2 extensions to the x86_64 architecture.
%endif
%ifarch %ix86
%package 3dnow
Group: System/Libraries
Summary: ATLAS libraries for 3DNow extensions
%description 3dnow
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains the ATLAS libraries compiled with optimizations for the 3DNow extension to the ix86 architecture.
%package 3dnow-devel
Group: Development/Libraries
Summary: Development libraries for ATLAS with 3DNow extensions
Requires: %{name}-3dnow = %{version}-%{release}
Requires: chkconfig
%description 3dnow-devel
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains headers and shared versions of the ATLAS libraries compiled with optimizations for the 3DNow extensions to the ix86 architecture.
%package sse
Group: System/Libraries
Summary: ATLAS libraries for SSE extensions
%description sse
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains the ATLAS libraries compiled with optimizations for the SSE(1) extensions to the ix86 architecture.
%package sse-devel
Group: Development/Libraries
Summary: Development libraries for ATLAS with SSE extensions
Requires: %{name}-sse = %{version}-%{release}
Requires: chkconfig
%description sse-devel
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains headers and shared versions of the ATLAS libraries compiled with optimizations for the SSE(1) extensions to the ix86 architecture.
%package sse2
Group: System/Libraries
Summary: ATLAS libraries for SSE2 extensions
%description sse2
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains ATLAS shared libraries compiled with optimizations for the SSE2 extensions to the ix86 architecture.
%package sse2-devel
Group: Development/Libraries
Summary: Development libraries for ATLAS with SSE2 extensions
Requires: %{name}-sse2 = %{?epoch:%epoch:}%{version}-%{release}
Requires: chkconfig
%description sse2-devel
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains ATLAS shared libraries compiled with optimizations for the SSE2 extensions to the ix86 architecture.
%package sse3
Group: System/Libraries
Summary: ATLAS libraries for SSE3 extensions
%description sse3
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains the ATLAS libraries compiled with optimizations for the SSE3.
%package sse3-devel
Group: Development/Libraries
Summary: Development libraries for ATLAS with SSE3 extensions
Requires: %{name}-sse3 = %{?epoch:%epoch:}%{version}-%{release}
Requires: chkconfig
%description sse3-devel
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains development libraries for ATLAS with SSE3 extensions to the ix86 architecture.
%endif
%endif
%package doc
Summary: Documentation for %{name}
Group: Documentation
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description doc
ATLAS - Automatically Tuned Linear Algebra Software.
This package contains the documentation for %{name}.
%prep
%setup -q -c -a0
#-D -T
#:<< __EOF
cd ATLAS
%patch0 -p1
%patch1 -p1
%ifarch arm
%patch2 -p1
%endif
cp %{SOURCE1} openmamba-README
sed -i "s|@VER_REL@|%{version}-%{release}|" openmamba-README
%ifnarch arm
cp %{SOURCE2} CONFIG/ARCHS/
cp %{SOURCE3} CONFIG/ARCHS/
cp %{SOURCE4} CONFIG/ARCHS/
cp %{SOURCE5} CONFIG/ARCHS/
%endif
%build
#:<< _EOF
cd ATLAS
for type in %{types}; do
if [ "$type" = "base" ]; then
libname=atlas
else
libname=atlas-${type}
fi
mkdir -p %{_arch}_${type}
cd %{_arch}_${type}
../configure -b %{mode} -D c -DWALL -Fa alg '-g -Wa,--noexecstack -fPIC'\
%ifarch arm
-Si archdef 0 -Si cputhrchk 0 \
%endif
--prefix=%{buildroot}%{_prefix} \
--incdir=%{buildroot}%{_includedir} \
--libdir=%{buildroot}%{_libdir}/${libname} \
--with-netlib-lapack=%{_libdir}/liblapack.a
sed -i "s|LDFLAGS = \(.*\)|LDFLAGS = \1 -Wl,--allow-multiple-definition -lxblas|" Make.inc
# -Si cputhrchk 0
%ifarch x86_64
if [ "$type" = "sse2" ]; then
sed -i 's#ARCH =.*#ARCH = HAMMER64SSE2#' Make.inc
sed -i 's#-DATL_SSE3##' Make.inc
sed -i 's#-msse3#-msse2#' Make.inc
fi
%endif
%ifarch %ix86
if [ "$type" = "base" ]; then
sed -i 's#ARCH =.*#ARCH = PPRO32#' Make.inc
sed -i 's#-DATL_SSE3 -DATL_SSE2 -DATL_SSE1##' Make.inc
sed -i 's#-mfpmath=sse -msse3#-mfpmath=387#' Make.inc
elif [ "$type" = "3dnow" ]; then
sed -i 's#ARCH =.*#ARCH = K7323DNow#' Make.inc
sed -i 's#-DATL_SSE3 -DATL_SSE2 -DATL_SSE1##' Make.inc
sed -i 's#-mfpmath=sse -msse3#-mfpmath=387#' Make.inc
elif [ "$type" = "sse" ]; then
sed -i 's#ARCH =.*#ARCH = PIII32SSE1#' Make.inc
sed -i 's#-DATL_SSE3 -DATL_SSE2##' Make.inc
sed -i 's#-msse3#-msse#' Make.inc
elif [ "$type" = "sse2" ]; then
sed -i 's#ARCH =.*#ARCH = P432SSE2#' Make.inc
sed -i 's#-DATL_SSE3##' Make.inc
sed -i 's#-msse3#-msse2#' Make.inc
elif [ "$type" = "sse3" ]; then
sed -i 's#ARCH =.*#ARCH = P4E32SSE3#' Make.inc
fi
%endif
make build || make build || make build
cd lib
make shared
#%ifarch x86_64
# LDFLAGS=
#%endif
make ptshared
#%ifarch x86_64
# LDFLAGS=
#%endif
cd ..
done
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
cd ATLAS
for type in %{types}; do
cd %{_arch}_${type}
make DESTDIR=%{buildroot} install
mv %{buildroot}%{_includedir}/atlas %{buildroot}%{_includedir}/atlas-%{_arch}-${type}
if [ "$type" = "base" ]; then
cp -pr lib/*.so* %{buildroot}%{_libdir}/atlas/
rm -f %{buildroot}%{_libdir}/atlas/*.a
else
cp -pr lib/*.so* %{buildroot}%{_libdir}/atlas-${type}/
rm -f %{buildroot}%{_libdir}/atlas-${type}/*.a
fi
cd ..
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
if [ "$type" = "base" ]; then
echo "%{_libdir}/atlas" \
> %{buildroot}%{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}.conf
else
echo "%{_libdir}/atlas-${type}" \
> %{buildroot}%{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-${type}.conf
fi
done
mkdir -p %{buildroot}%{_includedir}/atlas
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post devel
if [ $1 -ge 1 ]; then
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
%{_includedir}/atlas-%{_arch}-base %{pr_base}
fi
exit 0
%preun devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-base
fi
exit 0
%postun devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-base
fi
:
%if %enable_native_atlas
%ifarch x86_64
%post sse2 -p /sbin/ldconfig
%postun sse2 -p /sbin/ldconfig
%post sse2-devel
if [ $1 -ge 1 ]; then
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
%{_includedir}/atlas-%{_arch}-sse2 %{pr_sse2}
fi
exit 0
%preun sse2-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
fi
exit 0
%postun sse2-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
fi
:
%endif
%ifarch %ix86
%post 3dnow -p /sbin/ldconfig
%postun 3dnow -p /sbin/ldconfig
%post 3dnow-devel
if [ $1 -ge 1 ]; then
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
%{_includedir}/atlas-%{_arch}-3dnow %{pr_3dnow}
fi
exit 0
%preun 3dnow-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-3dnow
fi
exit 0
%postun 3dnow-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-3dnow
fi
:
%post sse -p /sbin/ldconfig
%postun sse -p /sbin/ldconfig
%post sse-devel
if [ $1 -ge 1 ]; then
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
%{_includedir}/atlas-%{_arch}-sse %{pr_sse}
fi
exit 0
%preun sse-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse
fi
exit 0
%postun sse-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse
fi
:
%post sse2 -p /sbin/ldconfig
%postun sse2 -p /sbin/ldconfig
%post sse2-devel
if [ $1 -ge 1 ]; then
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
%{_includedir}/atlas-%{_arch}-sse2 %{pr_sse2}
fi
exit 0
%preun sse2-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
fi
exit 0
%postun sse2-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
fi
:
%post sse3 -p /sbin/ldconfig
%postun sse3 -p /sbin/ldconfig
%post sse3-devel
if [ $1 -ge 1 ]; then
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
%{_includedir}/atlas-%{_arch}-sse3 %{pr_sse3}
fi
exit 0
%preun sse3-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse3
fi
exit 0
%postun sse3-devel
if [ $1 -eq 0 ]; then
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse3
fi
:
%endif
%endif
%files
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}.conf
%dir %{_libdir}/atlas
%{_libdir}/atlas/*.so.*
%doc ATLAS/*README
%files devel
%defattr(-,root,root)
%dir %{_includedir}/atlas-%{_arch}-base
%{_includedir}/atlas-%{_arch}-base/*
%{_includedir}/*.h
%{_libdir}/atlas/*.so
%if %enable_native_atlas
%ifarch x86_64
%files sse2
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-sse2.conf
%dir %{_libdir}/atlas-sse2
%{_libdir}/atlas-sse2/*.so.*
%files sse2-devel
%defattr(-,root,root)
%{_libdir}/atlas-sse2/*.so
%{_includedir}/atlas-%{_arch}-sse2/
%{_includedir}/*.h
%ghost %{_includedir}/atlas
%endif
%ifarch %ix86
%files 3dnow
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-3dnow.conf
%dir %{_libdir}/atlas-3dnow
%{_libdir}/atlas-3dnow/*.so.*
%files 3dnow-devel
%defattr(-,root,root)
%{_libdir}/atlas-3dnow/*.so
%{_includedir}/atlas-%{_arch}-3dnow/
%{_includedir}/*.h
%ghost %{_includedir}/atlas
%files sse
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-sse.conf
%dir %{_libdir}/atlas-sse
%{_libdir}/atlas-sse/*.so.*
%files sse-devel
%defattr(-,root,root)
%{_libdir}/atlas-sse/*.so
%{_includedir}/atlas-%{_arch}-sse/
%{_includedir}/*.h
%ghost %{_includedir}/atlas
%files sse2
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-sse2.conf
%dir %{_libdir}/atlas-sse2
%{_libdir}/atlas-sse2/*.so.*
%files sse2-devel
%defattr(-,root,root)
%{_libdir}/atlas-sse2/*.so
%{_includedir}/atlas-%{_arch}-sse2/
%{_includedir}/*.h
%ghost %{_includedir}/atlas
%files sse3
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-sse3.conf
%dir %{_libdir}/atlas-sse3
%{_libdir}/atlas-sse3/*.so.*
%files sse3-devel
%defattr(-,root,root)
%{_libdir}/atlas-sse3/*.so
%{_includedir}/atlas-%{_arch}-sse3/
%{_includedir}/*.h
%ghost %{_includedir}/atlas
%endif
%endif
%files doc
%defattr(-,root,root)
%doc ATLAS/doc
%changelog
* Mon Aug 26 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.4-3mamba
- rebuilt with liblapack-3.4.2-5mamba implementing extended precision routines (xblas)
* Thu Aug 22 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.4-2mamba
- rebuild with liblapack-3.4.2-3mamba providing static library
* Wed Aug 14 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.4-1mamba
- update to 3.8.4
* Wed Jan 05 2011 gil <puntogil@libero.it> 3.8.3-2mamba
- rebuilt devel
* Sat May 09 2009 gil <puntogil@libero.it> 3.8.3-1mamba
- update to 3.8.3
* Sat Oct 04 2008 gil <puntogil@libero.it> 3.8.2-1mamba
- package created by autospec