SPECS: atlas.spec - more work; leaving as is
arekm
arekm at pld-linux.org
Wed Jun 29 21:34:39 CEST 2005
Author: arekm Date: Wed Jun 29 19:34:39 2005 GMT
Module: SPECS Tag: HEAD
---- Log message:
- more work; leaving as is
---- Files affected:
SPECS:
atlas.spec (1.1 -> 1.2)
---- Diffs:
================================================================
Index: SPECS/atlas.spec
diff -u SPECS/atlas.spec:1.1 SPECS/atlas.spec:1.2
--- SPECS/atlas.spec:1.1 Wed Jun 29 19:54:38 2005
+++ SPECS/atlas.spec Wed Jun 29 21:34:33 2005
@@ -1,17 +1,20 @@
# $Revision$, $Date$
+# TODO:
+# - missing BR/R?
+# - disable altivec/3dnow autodetection - force values from spec
+# - fix for other arches
+# - deal with -fPIC to get shared libs
Summary: The atlas libraries for numerical linear algebra
Summary(pl): Biblioteki numeryczne atlas do algebry liniowej
Name: atlas
Version: 3.7.10
-Release: 1
-License: freely distributable
+Release: 0.1
+License: BSD
Group: Development/Libraries
Source0: http://dl.sourceforge.net/math-atlas/%{name}%{version}.tar.bz2
# Source0-md5: c24aa9f676122fe6331fa63dd88c4113
URL: http://math-atlas.sourceforge.net/
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: libtool >= 1:1.4.2-9
+BuildRequires: expect
BuildRequires: gcc-g77
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -27,8 +30,6 @@
Summary(pl): Pliki nagłówkowe atlas
Group: Development/Libraries
Requires: %{name} = %{version}
-Requires: blas-devel = %{version}
-Obsoletes: lapack-man
%description devel
atlas header files.
@@ -48,56 +49,6 @@
%description static -l pl
Biblioteki statyczne atlas.
-%package -n blas
-Summary: The BLAS (Basic Linear Algebra Subprograms) library for Linux
-Summary(pl): Biblioteka BLAS (Basic Linear Algebra Subprograms) dla Linuksa
-Group: Development/Libraries
-Obsoletes: lapack-blas
-
-%description -n blas
-BLAS (Basic Linear Algebra Subprograms) is a standard library for
-numerical algebra. BLAS provides a number of basic algorithms for
-linear algebra. BLAS is fast and well-tested, was written in FORTRAN
-77.
-
-Warning: this is a reference implementation from Netlib. If possible,
-use version optimized for your architecture instead.
-
-%description -n blas -l pl
-BLAS (Basic Linear Algebra Subprograms) jest standardową biblioteką
-numeryczną algebry. Dostarcza wiele podstawowych algorytmów dla
-algebry liniowej. Jest szybka i dobrze przetestowana, została napisana
-w Fortranie 77.
-
-Ostrzeżenie: to jest implementacja przykładowa z repozytorium Netlib.
-Jeżeli to możliwe, należy używać zamiast niej wersji zoptymalizowanej
-pod daną architekturę.
-
-%package -n blas-devel
-Summary: BLAS header files
-Summary(pl): Pliki nagłówkowe BLAS
-Group: Development/Libraries
-Requires: blas = %{version}
-Obsoletes: blas-man
-
-%description -n blas-devel
-BLAS header files.
-
-%description -n blas-devel -l pl
-Pliki nagłówkowe BLAS.
-
-%package -n blas-static
-Summary: Static BLAS libraries
-Summary(pl): Biblioteki statyczne BLAS
-Group: Development/Libraries
-Requires: blas-devel = %{version}
-
-%description -n blas-static
-Static BLAS libraries.
-
-%description -n blas-static -l pl
-Biblioteki statyczne BLAS.
-
%prep
%setup -q -n ATLAS
@@ -111,7 +62,10 @@
while {\$finished == 0} {
set timeout 120
expect {
- -nocase {Enter number at top left of screen} {send "99\n"}
+%ifarch %{x8664} sparc64
+ -nocase {Enter bit number \[2\]:} {send "2\n"}
+%endif
+ -nocase {Enter number at top left of screen} {send "25\n"}
-nocase {Have you scoped the errata file\?} {send "y\n"}
-nocase {Are you ready to continue\?} {send "y\n"}
-nocase {Enter machine number \[2\]: } {send "1\n"}
@@ -119,7 +73,7 @@
-nocase {enable Posix threads support\?} {send "y\n"}
-nocase {use express setup\?} {send "y\n"}
-nocase -indices -re {Enter Architecture name \(ARCH\) \[(.*)\]}
- {global arch; set arch Linux_PPCGP; send "Linux_PPCGP\n"}
+ {global arch; set arch \$expect_out(1,string); send "\$arch\n"}
-nocase {overwrite it\?} {send "y\n"}
-nocase {Enter File creation delay in seconds}
{send "0\n"}
@@ -153,27 +107,81 @@
#file copy -force Make.\$arch Make.Linux
exit
EOF
- make xconfig
- expect -f config.expect
- rm -f config.expect
+%{__make} xconfig
+expect -f config.expect
+rm -f config.expect
+
+mksolib() {
+ #set -x
+ lib=$1
+ mode=$2
+ v=$3
+ so=$4
+ rm -f lib$lib.a
+ ar ruv lib$lib.a *.o
+ if [ -r *.lo ]; then
+ ar ruv lib$lib.a *.lo
+ fi
+ %{__cc} -shared -Wl,-soname,lib${lib}.so.${so} -Wl,--whole-archive -L. -l${lib} -Wl,--no-whole-archive -o lib${lib}.so.${v}
+ ln -s lib${lib}.so.${v} lib${lib}.so.${so}
+ ln -s lib${lib}.so.${v} lib${lib}.so
+ rm -f *.o *.lo
+}
+
+%ifarch %{x8664} sparc64
+OBJECT_MODE=64
+%else
+OBJECT_MODE=32
+%endif
+export OBJECT_MODE
+
+arch=$(ls -1 Make.Linux* | sed -e 's#^Make\.##g')
+
+%{__make} install \
+ CC="%{__cc}" \
+ arch=${arch}
+
+install -d lib/${arch}/shared
+cd lib/${arch}/shared
+libs="atlas cblas f77blas lapack tstatlas"
+
+for lib in `echo ${libs} | xargs`; do
+ case "$lib" in
+ "lapack")
+ lib=atllapack
+ ;;
+ "cblas")
+ lib=atlcblas
+ ;;
+ esac
+ echo $lib
+ ar x ../lib${lib}.a
+ mksolib ${lib} ${OBJECT_MODE} 1.1 1
+ mv *.so* ../
+ mv *.a ../
+done
+cd ../../../
+rm -rf lib/${arch}/shared
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install DESTDIR=$RPM_BUILD_ROOT
+arch=$(ls -1 Make.Linux* | sed -e 's#^Make\.##g')
-# present both in blas and lapack
-rm -f man/manl/{lsame,xerbla}.l
+install -d $RPM_BUILD_ROOT{%{_includedir}/%{name},%{_libdir}}
-install -d $RPM_BUILD_ROOT%{_mandir}/man3
-for d in man/manl/*.l blas/man/manl/*.l ; do
- install $d $RPM_BUILD_ROOT%{_mandir}/man3/`basename $d .l`.3
+libs="atlas cblas f77blas lapack tstatlas"
+
+cd lib/${arch}/
+for lib in `echo ${libs} | xargs`; do
+ install lib${lib}.a $RPM_BUILD_ROOT%{_libdir}
+ install lib${lib}.so.1.1 $RPM_BUILD_ROOT%{_libdir}
+ ln -s lib${lib}.so.1.1 $RPM_BUILD_ROOT%{_libdir}/lib${lib}.so
done
+cd ../../
+
+cp -a include/* $RPM_BUILD_ROOT%{_includedir}/%{name}
-echo "%defattr(644, root, root, 755)" > blasmans.list
-find blas/man/manl -name "*.l" -printf "%{_mandir}/man3/%%f\n" | sed 's/\.l/.3*/' >> blasmans.list
-echo "%defattr(644, root, root, 755)" > mans.list
-find man/manl -name "*.l" -printf "%{_mandir}/man3/%%f\n" | sed 's/\.l/.3*/' >> mans.list
%clean
rm -fr $RPM_BUILD_ROOT
@@ -181,35 +189,19 @@
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
-%post -n blas -p /sbin/ldconfig
-%postun -n blas -p /sbin/ldconfig
-
%files
%defattr(644,root,root,755)
-%doc README
-%attr(755,root,root) %{_libdir}/liblapack.so.*.*.*
+%doc doc/*
+%attr(755,root,root) %{_libdir}/lib*.so.*
-%files devel -f mans.list
+%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/liblapack.so
-%{_libdir}/liblapack.la
+%attr(755,root,root) %{_libdir}/lib*.so
+%{_includedir}/%{name}
%files static
%defattr(644,root,root,755)
-%{_libdir}/liblapack.a
-
-%files -n blas
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libblas.so.*.*.*
-
-%files -n blas-devel -f blasmans.list
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libblas.so
-%{_libdir}/libblas.la
-
-%files -n blas-static
-%defattr(644,root,root,755)
-%{_libdir}/libblas.a
+%{_libdir}/lib*.a
%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
%changelog
@@ -217,101 +209,8 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.2 2005/06/29 19:34:33 arekm
+- more work; leaving as is
+
Revision 1.1 2005/06/29 17:54:38 arekm
- very raw/broken/nfy version
-
-Revision 1.26 2004/11/29 11:42:41 ankry
-- formatting, pl
-
-Revision 1.25 2004/11/29 11:10:14 roman
-- changed Description for blas (added a warning that this is an unoptimized version)
-
-Revision 1.24 2003/11/25 10:28:54 averne
-- r18
-
-Revision 1.23 2003/05/28 12:59:25 malekith
-- massive attack: source-md5
-
-Revision 1.22 2003/05/25 05:49:39 misi3k
-- massive attack s/pld.org.pl/pld-linux.org/
-
-Revision 1.21 2002/12/25 21:41:54 qboosh
-- added *.la to *-devel
-- use fixed libtool instead of hacking *.la
-
-Revision 1.20 2002/10/09 13:14:36 kloczek
-- use more macros, some cosmetics, added missing "rm -f missing" and use new %doc
-
-Revision 1.19 2002/06/11 06:19:30 kloczek
-- bump release to 17.
-
-Revision 1.18 2002/06/09 16:17:03 qboosh
-- changed automake_support patch to work with both libtool 1.4.2 and 1.4d
-- lapack-devel Requires: blas-devel
-- removed conflicting man pages from lapack-devel (already in blas-devel)
-- simplified %%prep, new %%doc
-- release 14
-
-Revision 1.17 2002/05/21 23:13:42 kloczek
-perl -pi -e "s/^automake -a -c -f --foreing/\%\{__automake\}/; \
- s/^automake -a -c -f/\%\{__automake\}/; \
- s/^autoconf/\%\{__autoconf\}/"
-
-Revision 1.16 2002/04/05 15:26:38 roman
-s/Freely/freely in License
-
-Revision 1.15 2002/02/23 03:26:00 kloczek
-- adapterized.
-
-Revision 1.14 2002/02/22 23:29:09 kloczek
-- removed all Group fields translations (oure rpm now can handle translating
- Group field using gettext).
-
-Revision 1.13 2002/01/18 02:13:36 kloczek
-perl -pi -e "s/pld-list\@pld.org.pl/feedback\@pld.org.pl/"
-
-Revision 1.12 2001/12/15 21:29:01 kloczek
-- release 13: added 20010525 patch with lapack updates.
-
-Revision 1.11 2001/10/10 18:38:00 qboosh
-- libtool 1.4.x ready
-- renamed man pages: manl/*.l to man3/*.3
-
-Revision 1.10 2001/09/26 11:51:05 qboosh
-- BuildRequires: autoconf, automake, libtool, ed
-- pl translations, some fixes in English summaries/descriptions
-- release 3
-
-Revision 1.9 2001/07/18 19:51:11 kloczek
-- merge man into devel subpackages.
-
-Revision 1.8 2001/07/18 11:22:46 wiget
-libtool 1.4b workarounds
-
-Revision 1.7 2000/11/13 08:30:58 qboosh
-- BuildRequires: gcc-g77
-
-Revision 1.6 2000/07/26 21:36:47 kloczek
-- fixed Source urls.
-
-Revision 1.5 2000/07/25 21:11:04 klakier
-- removed config.h.in manual creation (it is autoheader's job)
-- Requires: blas
-
-Revision 1.4 2000/07/25 20:56:54 klakier
-- fixed libblas perms
-
-Revision 1.3 2000/07/25 16:40:23 klakier
-- split to devel and static subpackages
-
-Revision 1.2 2000/07/25 16:32:04 klakier
-- added building libraries using automake/autoconf
-- PLD adapted
-
-Revision 1.1 2000/07/24 22:40:52 klakier
-- adapterized from rh powertools spec
-
-* Wed Jan 19 2000 Tim Powers <timp at redhat.com>
-- bzipped sources to conserve space
-
-Based on spec file from RedHat.
================================================================
---- CVS-web:
http://cvs.pld-linux.org/SPECS/atlas.spec?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list