Don't like ads? PRO users don't see any ads ;-)
Guest

BernardH

By: a guest on Nov 8th, 2010  |  syntax: Bash  |  size: 3.32 KB  |  hits: 26  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/bash
  2. TMPdir=`mktemp -dt`
  3. OLDdir=$PWD
  4. SCILABdir="${1:-$PWD}/lib/thirdparty/"
  5. cd $TMPdir
  6. wget  http://www.netlib.org/lapack/lapack.tgz
  7. wget -O- http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.9.32/atlas3.9.32.tar.bz2 |tar xvj
  8. cd ATLAS
  9. mkdir build
  10. cd build
  11. # todo check/set freq governor to performance
  12. #export NCPU=`fgrep -c processor < /proc/cpuinfo`
  13. #cpufreq-selector -g performance
  14. export PTR_WIDTH=32
  15. if [ $(uname -m) == "x86_64" ]; then
  16.     export PTR_WIDTH=64;
  17. fi
  18. # TODO :
  19. # -Si antthr 2 if arch does not support cpu affinity
  20. # -Si omp 2  -Fa alg -fopenmp if OpenMP needed for user mt code interactions
  21. ../configure -b $PTR_WIDTH --libdir=${SCILABdir} --shared --with-netlib-lapack-tarfile=../../lapack.tgz -Si latune 1
  22. patch --ignore-whitespace -Np1 <<EOF
  23. --- build/lib/Makefile  2010-11-04 09:40:16.000000000 +0100
  24. +++ with-blas-build/lib/Makefile        2010-11-04 09:46:52.000000000 +0100
  25. @@ -10,10 +10,10 @@
  26.  #
  27.  # override with libatlas.so only when atlas is built to one lib
  28.  #
  29. -DYNlibs = liblapack.so libf77blas.so libcblas.so libatlas.so
  30. -PTDYNlibs = liblapack.so libptf77blas.so libptcblas.so libatlas.so
  31. -CDYNlibs = liblapack.so libcblas.so libatlas.so
  32. -CPTDYNlibs = liblapack.so libptcblas.so libatlas.so
  33. +DYNlibs = liblapack.so libf77blas.so libcblas.so libatlas.so libblas.so
  34. +PTDYNlibs = liblapack.so libptf77blas.so libptcblas.so libatlas.so libblas.so
  35. +CDYNlibs = liblapack.so libcblas.so libatlas.so libblas.so
  36. +CPTDYNlibs = liblapack.so libptcblas.so libatlas.so libblas.so
  37.  
  38.  VER=3.9.32
  39.  tmpd = RCW_tMp
  40. @@ -45,10 +45,10 @@
  41.  ptshared :
  42.         - rm -f libatlas.so liblapack.so
  43.         \$(MAKE) libatlas.so libptf77blas.so libf77blas.so \\
  44. -                libptcblas.so libcblas.so liblapack.so
  45. +                libptcblas.so libcblas.so liblapack.so  libblas.so
  46.  shared :
  47.         - rm -f libatlas.so liblapack.so
  48. -       \$(MAKE) libatlas.so libf77blas.so libcblas.so liblapack.so
  49. +       \$(MAKE) libatlas.so libf77blas.so libcblas.so liblapack.so  libblas.so
  50.  cptshared :
  51.         - rm -f libatlas.so libclapack.so
  52.         \$(MAKE) libatlas.so libclapack.so libptcblas.so libcblas.so
  53. @@ -84,7 +84,10 @@
  54.         ld \$(LDFLAGS) -shared -soname \$(LIBINSTdir)/libcblas.so \\
  55.             -o libcblas.so -rpath-link \$(LIBINSTdir) \\
  56.            --whole-archive libcblas.a --no-whole-archive -lc \$(LIBS)
  57. -
  58. +libblas.so : libblas.a
  59. +       ld \$(LDFLAGS) -shared -soname \$(LIBINSTdir)/libblas.so \\
  60. +           -o libblas.so -rpath-link \$(LIBINSTdir) \\
  61. +          --whole-archive libblas.a --no-whole-archive -lc \$(LIBS)
  62.  #
  63.  # Builds one shared lib from all ATLAS files
  64.  #
  65. @@ -116,6 +119,15 @@
  66.         ar r libclapack.a clapack/ATL_* clapack/clapack_*
  67.         rm -rf clapack
  68.  
  69. +libblas.a : libatlas.a libptf77blas.a libptcblas.a
  70. +       rm -rf blas
  71. +       mkdir blas
  72. +       (cd blas ; ar x ../libatlas.a);
  73. +       (cd blas ; ar x ../libptf77blas.a);
  74. +       (cd blas ; ar x ../libptcblas.a);
  75. +       ar r libblas.a blas/*.o
  76. +       rm -rf blas
  77. +
  78.  #  ============================================
  79.  #  The following commands build DLLs on Windows
  80.  #  ============================================
  81. EOF
  82. make
  83. cd lib
  84. make ptshared
  85. cp libptf77blas.so  $SCILABdir/libf77blas.so.3gf.0
  86. cp libptcblas.so  $SCILABdir/libcblas.so.3gf.0
  87. cp libblas.so  $SCILABdir/libblas.so.3gf.0
  88. cp libatlas.so $SCILABdir/libatlas.so.3gf.0
  89. cp liblapack.so  $SCILABdir/liblapack.so.3gf.0
  90. cd $OLDdir