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