Info2: << Package: atlas Version: 3.10.3 Revision: 1 Type: gcc (9) Description: Portable optimal linear algebra software DescDetail: << The current version provides a complete BLAS and LAPACK API. For many operations, ATLAS achieves performance on par with machine-specific tuned libraries. Installs also LAPACK's docs and manpages. Headers: cblas.h clapack.h, plus the atlas headers Libraries installed: lib(pt)lapack.a : The LAPACK routines provided by ATLAS, plus the rest of LAPACK from netlib.org. lib(pt)cblas.a : The ANSI C interface to the BLAS. lib(pt)f77blas.a : The Fortran77 interface to the BLAS. libatlas.a : The main ATLAS library, providing low-level routines for all interface libs. On monoprocessor machines, the "threaded" versions (those with "pt" in parentheses) are just symlinks to the unthreaded ones. The main use of the serial interface is for parallel packages that handle the parallelism on their own, and need serial blas/lapack. The corresponding dylibs are also installed. << DescPort: << The optimized subset of LAPACK provided by ATLAS is merged with the full LAPACK from http://www.netlib.org/lapack. The --dylib configure option is used to build both static and shared libs with -fPIC in both cases for ASLR compatibility. The main atlas package provides symlinks for libptlapack.dylib, libptf77blas.dylib and libptcblas.dylib to libtatlas.dylib as well as for liblapack.dylib, libf77blas.dylib and libcblas.dylib to libsatlas.dylib. This unfortunately breaks backward compatibilty with the previous packaging which incorrectly blocked compiling against the system lapack and blas libraries without completely deinstalling atlas (and anything that depended on it). Packages should now BuildDepends on atlas (>= 3.10.1-1) and Depends on atlas-shlibs (>= 3.10.1-1). The symlinks in atlas will allow code to build against atlas but result in linkages are to libsatlas rather than liblapack and libcblas, etc. << DescUsage: << Order is important when linking! Use: -L%p/lib -lptlapack -lptcblas -lptf77blas -latlas or -L%p/lib -ltatlas (or the analogue without "pt" in pkgs that handle parallelism on their own). Also decide carefully whether you want to link to static or to shared libs. << Source: mirror:sourceforge:math-atlas/files/%n%v.tar.bz2 Source-Checksum: SHA256(2688eb733a6c5f78a18ef32144039adcd62fabce66f2eb51dd59dde806a6d2b7) Source2: http://www.netlib.org/lapack/lapack-3.6.1.tgz Source2-Checksum: SHA256(888a50d787a9d828074db581c80b2d22bdb91435a673b1bf6cd6eb51aa50d1de) PatchFile: %n.patch PatchFile-MD5: 6085b07dd1803882776cf0008c38d787 PatchFile2: %n-xcode7.patch PatchFile2-MD5: d58bb72a0fb1adad3109a5de580ce9e2 SourceDirectory: ATLAS License: BSD UseMaxBuildJobs: false BuildDependsOnly: true BuildDepends: << doxygen, fink (>= 0.30.0), gcc%type_pkg[gcc]-compiler, graphviz | graphviz-nox << BuildConflicts: << coreutils-default << Depends: << %N-shlibs (=%v-%r) << PatchScript: << #!/bin/bash -ev sed -e 's|@COMPILER_PATH@|%b/../opt-bin|g' -e 's|@F77LIB_PATH@|%p/lib/gcc%type_pkg[gcc]/lib|g' < %{PatchFile} | patch -p1 # check for incompatible clang assembler clangvers=`clang --version | cut -d\ -f4` $(`dpkg --compare-versions $clangvers '>>' 6.0`) && clangcheck='y' if [ "$clangcheck" = "y" ]; then patch -p1 < %{PatchFile2} fi chmod ugo+x ar2 perl -pi -e "s|XXXXX|%b/ar2|g" CONFIG/src/SpewMakeInc.c if [ "%m" = 'powerpc' ] then perl -pi -e 's,cMVFLAGS=\\"%%s,cMVFLAGS=\\"-force_cpusubtype_ALL\ %%s,' include/atlas_mvtesttime.h fi ## put srcs in logical dirs, version independent cd .. if [ -e LAPACK ] ; then mv LAPACK LAPACK-strange; fi mv lapack-3.6.1 LAPACK # first need the tarball of lapack (and no % will give the path to the original; # not worth to check the user's fink.conf for a FetchAltDir entry etc) tar -czf lapack.tgz LAPACK cd - ## # -e '/f77blas\.dylib *:/,/lapack\.dylib *:/s, \$(LIBS),,' \ sed -i.bak -e 's,libtool -dynamic,\$(LIBTOOL) -dynamic,' -e 's,_version %v,_version \$(VER),g' \ -e 's,-compatibility_version \$(VER) ,,' \ -e '/^dylib :/,/^ptdylib :/s,[(]LIBS[)],& $(F77SYSLIB),' \ -e '/lapack\.dylib *:/,/clapack\.dylib *:/s,\$(LIBS),-lgcc_s.1 &,' makes/Make.lib sed -i.bak -e 's,LIBTOOL",LIBTOOL -single_module -dead_strip -x",' configure # use correct fink prefix sed -i.bak -e 's,/sw,%p,' CONFIG/src/{config,probe_comp}.c # Link with gcc-fsf-%type_pkg[gcc] to obtain correct libgcc related linkages to resolve symbols on ppc perl -pi -e 's,\$\(LIBTOOL\) -dynamic,gcc-fsf-%type_pkg[gcc] -dynamiclib,g' makes/Make.lib # force GOODGCC to gcc-fsf-%type_pkg[gcc] perl -pi -e "s|GOODGCC =.*|GOODGCC = gcc-fsf-%type_pkg[gcc]\");|" CONFIG/src/SpewMakeInc.c cd .. cd LAPACK sed -e 's,\.\./.\./librefblas\.a,%b/../bld/lib/libf77blas.a %b/../bld/lib/libcblas.a %b/../bld/lib/libatlas.a,' \ -e 's,liblapack\.a,../darwin_bld/lib/liblapack.a,' \ -e 's,libtmglib.a,../darwin_bld/src/lapack/reference/libtmglib.a,' \ -e 's, -g$,,' -e '/LOADOPTS/s,=,= $(OPTS),' < make.inc.example > make.inc.proto path=`which perl` sed -i'' -e "s,/s./bin/perl,$path," DOCS/Doxyfile* << # -Si omp 2 -Si antthr 2 -Si lapackref ? -Ss flapack %b/../LAPACK/SRC ? ConfigureParams: -v 2 -Si archdef 1 -Si latune 1 --with-netlib-lapack-tarfile=../lapack.tgz CompileScript: << #!/bin/sh -ev cd .. mkdir opt-bin ln -s %p/lib/gcc%type_pkg[gcc]/bin/gcc-%type_pkg[gcc] opt-bin/gcc ln -s %p/lib/gcc%type_pkg[gcc]/bin/gfortran opt-bin/gfortran GCCADDR=`pwd` export PATH=$GCCADDR:$PATH ### BUILDSCRIPT BLD () { confflags="-b 32" mflags="$mflags -fomit-frame-pointer -O3" if [ "%m" = 'i386' ] then mflags="$mflags -m32 -mfpmath=sse" else if [ "%m" = 'x86_64' ] then mflags="$mflags -m64 -mfpmath=sse"; confflags="-b 64" else mflags="$mflags -maltivec -mabi=altivec -mcpu=7400 -mtune=7400 -force_cpusubtype_ALL" if [ `machine|sed -e 's,ppc,,' -e 's,\([0-9]\).*,\1,'` != 9 ] then confflags='-Si cputhrchk 0 -D c -DATL_AVgcc -b 32' fi fi fi lflags="$iflags" sed -e "/^OPTS /s;=;= $mflags;" -e "s,ATLAS/../bld,$1,g" < LAPACK/make.inc.proto > LAPACK/make.inc cd $1 if [ "%m" = 'powerpc' ] then ../ATLAS/configure %c -C ac $GCCADDR/opt-bin/gcc -C if `which gfortran-fsf-%type_pkg[gcc]` -A 4 -F alg "$mflags" $confflags --dylibs else ../ATLAS/configure %c -C ac $GCCADDR/opt-bin/gcc -C if `which gfortran-fsf-%type_pkg[gcc]` -F alg "$mflags" $confflags --dylibs fi make -w ### Static Libs cd lib ranlib *.a # Apparently on some machines (=monoprocessors ?) the threaded libs are not made; # we first make atlas 'look the same' to all other pkgs, independently of the machine for l in atlas cblas f77blas lapack do if [ ! -f libpt$l.a ] ; then ln -s lib$l.a libpt$l.a ; fi done cd ../.. } ### BUILDING iflags='-fPIC' mflags='-fPIC' mkdir -p darwin_bld BLD darwin_bld ### LAPACK-DOCS cd %b/../LAPACK make -w man html << InfoTest: << TestSuiteSize: large TestScript: << #!/bin/sh -ev set +e cd .. export PATH=`pwd`/opt-bin:$PATH cd LAPACK make -k blas_testing || : # to get timing uncluttered by compilation times, we'll repeat the tests at the end of the log: rm BLAS/*.out cd ../darwin_bld make -k full_test || : if test -f lib/libptcblas.a then make -k lapack_test_al_pt || :; make -k ptcheck || : fi make -k lapack_test_al_ab || :; make -k check time || : cd ../LAPACK; time { make -k blas_testing || :; cd ../STAT_bld/bin/LAPACK_TEST; make -k all || : ; } ; cd - # here: real 3m10.903s; user 2m55.622s; sys 0m15.570s (average of 3) # with 3.8.2: real 3m19.518s; user 3m2.366s; sys 0m18.272s egrep "fail|Error" BLAS/*.out cat ../darwin_bld/bin/LAPACK_TEST/SUMMARY_al_*.txt << << InstallScript: << #!/bin/sh -ev mkdir -p %i/share/doc/%n/LAPACK cp doc/* INSTALL.txt README %i/share/doc/%n head -n29 bin/atlas_tee.c > %i/share/doc/%n/LICENSE cp -pPR ../LAPACK/DOCS/man %i/share # Remove directory reference files, because they include local build pathnames # (but don't delete some __*__.3 files) ## remove this and bump bdep doxygen (>= 1.8.16) when it becomes available ## https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943431 rm %i/share/man/man3/_*_%f_*.3 cp -pPR ../LAPACK/DOCS/{org2.ps,lapacke.pdf,lawn81.tex} %i/share/doc/%n/LAPACK cp -pPR ../LAPACK/{LICENSE,README} %i/share/doc/%n/LAPACK cp -pPR ../LAPACK/DOCS/explore-html %i/share/doc/%n/LAPACK/html ln -s html/index.html %i/share/doc/%n/LAPACK/lapack.html cd ../darwin_bld make install DESTDIR=%i # create symlinks to threaded atlas ln -sf %p/lib/libtatlas.dylib %i/lib/libptlapack.dylib ln -sf %p/lib/libtatlas.dylib %i/lib/libptf77blas.dylib ln -sf %p/lib/libtatlas.dylib %i/lib/libptcblas.dylib # create symlinks to serial atlas ln -sf %p/lib/libsatlas.dylib %i/lib/liblapack.dylib ln -sf %p/lib/libsatlas.dylib %i/lib/libf77blas.dylib ln -sf %p/lib/libsatlas.dylib %i/lib/libcblas.dylib # create a threaded -> serial atlas symlink if the threaded lib was not built. # This happens with monoprocessor machines. # Only make the symlink if file not present AND CPU=1, to make sure we don't # cover up other build failures. if [ ! -e %i/lib/libtatlas.dylib -a "`sysctl -n hw.logicalcpu`" -eq "1" ]; then ln -sf %p/lib/libsatlas.dylib %i/lib/libtatlas.dylib fi # rm empty headers cd %i/include/atlas; ls -1s|grep '^[[:space:]]*0[[:space:]]'|sed -e 's,.* ,,'|xargs rm -f; cd - find %i/lib -type f -name '*.a' -exec ranlib \{\} \; chmod -R a-x %i/lib/* chmod -R a+rX %i/share # rm manpage causing a conflict on case-insensitive FS (actually just a reference to Cintface.c.3) cd %i/share/man/man3 [ -f C_INTFACE.3 ] && [ ! C_INTFACE.3 -ef c_intface.3 ] && rm C_INTFACE.3 || echo "no file to remove" << Splitoff: << Package: %N-shlibs Depends: << gcc%type_pkg[gcc]-shlibs << Files: lib/libtatlas.dylib lib/libsatlas.dylib InstallScript: mkdir -p %i/share/doc; ln -s %N %i/share/doc/%n Shlibs: << %p/lib/libtatlas.dylib 0.0.0 %n (>= 3.10.2-5) %p/lib/libsatlas.dylib 0.0.0 %n (>= 3.10.2-5) << << SplitOff2: << Package: %N-doc Files: share/man share/doc/%N/LAPACK InstallScript: mkdir -p %i/share/doc; ln -s %N %i/share/doc/%n << Homepage: http://math-atlas.sourceforge.net Maintainer: None <<