diff --git a/ShellB3/shallbethree.sh b/ShellB3/shallbethree.sh index f8491ba0551d2fe91626bea4753d0768df2ee9f6..3d0f1330ce521772cd34ed7d983043086b5de25a 100755 --- a/ShellB3/shallbethree.sh +++ b/ShellB3/shallbethree.sh @@ -2003,7 +2003,7 @@ if isDarwin ; then export SB3CXXFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET} -stdlib=libc++" export SB3LDFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -lc++ -lc++abi -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" export SB3CPPFLAGS="-stdlib=libc++ -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" - export SYS_FORBIDDENLIBS="libstdc++,libssl" + export SYS_FORBIDDENLIBS="libstdc++,libssl,libblas,libcblas,liblapack,Accelerate,libgrib_api" export USE_PORTABLE_LIBTOOL=YES export IGNORE_PIP=YES #PIP's expectation of ssl borks everything ;; @@ -2066,7 +2066,7 @@ elif isLinux ; then if [ -z "${MACHTYPE}" ] ; then export MACHTYPE=${CPUTYPE} fi - export SYS_FORBIDDENLIBS="" + export SYS_FORBIDDENLIBS="libblas,libcblas,liblapack,libgrib_api" #deprecated echo "Checking for bundled compilers" _find_cots ACLANG clang $BASE/sysbin $BASE/bin || echo bundled clang not found _find_cots AFLANG flang $BASE/sysbin $BASE/bin || echo bundled flang not found @@ -3200,10 +3200,12 @@ mk_numpy() { resume_tracker echo unpacking numpy... - _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "numpy requires blas" - _find_cots_lib CBLAS libcblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "numpy requires cblas" - _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr || oops "numpy requires lapack" _find_cots_lib OPENBLAS libopenblas $BASE $COTS_HOME || echo "numpy didn't find openblas. using blas" + if [ -z "${OPENBLAS}" ] ; then + _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "numpy requires blas or openblas" + _find_cots_lib CBLAS libcblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "numpy requires cblas or openblas" + _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr || oops "numpy requires lapack or openblas" + fi if isTrue USING_FLANG ; then export FLIB=flang @@ -3500,6 +3502,7 @@ mk_eccodes() { install_name_tool $( for g in lib/libeccodes*.dylib ; do \ echo "-change ./$g @rpath/$g -change $(basename $g) @rpath/$g -change @rpath/$(basename $g) @rpath/$g" ; \ done ) \ + -change /usr/local/lib/libgcc_s.1.dylib ${BASE}/lib/libgcc_s.1.dylib \ -change @rpath/Python @rpath/Library/Frameworks/Python.framework/Versions/${PYFSVER}/Python $f ; \ reid $f ; \ install_name_tool -add_rpath @loader_path/.. $f ; fi ; done @@ -3604,6 +3607,12 @@ mk_hdf5() { --enable-shared $( isDarwin && echo "--build=${PLATFORM}" ) --with-pic \ --with-zlib=$ZLIB --enable-cxx $( isNotTrue USING_FLANG && echo "--enable-fortran" ) --with-pthread $( test -n "$SZLIB" && echo --with-szlib=$SZLIB ) + if isDarwin ; then + for f in $( find lib* -name *.dylib -type f ) ; do + install_name_tool -change /usr/local/lib/libgcc_s.1.dylib ${BASE}/lib/libgcc_s.1.dylib $f + done + fi + return 0 } @@ -3696,8 +3705,11 @@ mk_cython() { mk_numexpr() { resume_tracker && return 0 echo extracting numexpr... - _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "numexpr requires blas" - _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr || oops "numexpr requires lapack" + _find_cots_lib OPENBLAS libopenblas $BASE $COTS_HOME || echo "octave didn't find openblas. using blas" + if [ -z "${OPENBLAS}" ] ; then + _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "numexpr requires blas or openblas" + _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr || oops "numexpr requires lapack or openblas" + fi _setup_build_install numexpr src/numexpr-${NUMEXPRVER}.tar.gz numexpr-${NUMEXPRVER} } @@ -3803,7 +3815,7 @@ SCRIPT __ssmk() { resume_tracker && return 0 - ( cd build/SuiteSparse && make config \ + ( cd build/SuiteSparse && make config "$@" \ && make library \ && MAKEFLAGS="" make install ) || return $? } @@ -3823,8 +3835,11 @@ mk_suitesparse() { fi echo unpacking suitesparse... - _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "suitesparse requires blas" - _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr || oops "suitesparse requires lapack" + _find_cots_lib OPENBLAS libopenblas $BASE $COTS_HOME || echo "octave didn't find openblas. using blas" + if [ -z "${OPENBLAS}" ] ; then + _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "suitesparse requires blas or openblas" + _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr || oops "suitesparse requires lapack or openblas" + fi _find_cots_lib METIS libmetis $BASE $COTS_HOME ${SYSROOT}/usr || export METISLIBFILE="/dev/null" _find_cots_lib METISINC metislib.h $BASE/include $COTS_HOME/include ${SYSROOT}/usr/include || export METISLIBFILE="/dev/null" @@ -3852,7 +3867,10 @@ mk_suitesparse() { if isTrue DISABLE_GRAPHBLAS ; then mv Makefile _oldmake && grep -v GraphBLAS _oldmake > Makefile fi - +for f in \$( find * -type f -name SuiteSparse_config.mk ) ; do + echo Patching \$f + sed -i.old -e 's,BLAS = -framework Accelerate,,g' -e 's,LAPACK = -framework Accelerate,,g' \$f +done SCRIPT #copied from _cmake_make() @@ -3884,12 +3902,20 @@ PATCH _decompress_in_build "${name}" ${tarball} "${buildir}" "$@" echo "building suitesparse for $BASE" + if [ -z "${OPENBLAS}" ] ; then CMAKE_OPTIONS="${CMAKEEXTRA}" CC="$MYCC" MY_METIS_LIB="${METISLIBFILE}" MY_METIS_INC="${METISINC}" \ GPU_CONFIG=-DNPARTITION CFLAGS="-fPIC $SB3FLAGS" CHOLMOD_CONFIG=-DNPARTITION \ CF="${CFLAGS} -O3 -fexceptions ${LINUXCPUFLAGS}" INSTALL="${BASE}" CFOPENMP=" -fexceptions " \ BLAS="-L${BLASLIBDIR} ${LDFLAGS} -lblas ${FLIBS}" LAPACK="-L${LAPACKLIBDIR} ${LDFLAGS} -llapack ${FLIBS}" __ssmk \ - || oops "suitesparse build failed" - + || oops "suitesparse build with blas/lapack failed" + else + CMAKE_OPTIONS="${CMAKEEXTRA}" CC="$MYCC" MY_METIS_LIB="${METISLIBFILE}" MY_METIS_INC="${METISINC}" \ + GPU_CONFIG=-DNPARTITION CFLAGS="-fPIC $SB3FLAGS" CHOLMOD_CONFIG=-DNPARTITION \ + CF="${CFLAGS} -O3 -fexceptions ${LINUXCPUFLAGS}" INSTALL="${BASE}" CFOPENMP=" -fexceptions " \ + OPENBLAS="-L${OPENBLASLIBDIR} ${LDFLAGS} -lopenblas ${FLIBS}" \ + BLAS="-L${OPENBLASLIBDIR} ${LDFLAGS} -lopenblas ${FLIBS}" LAPACK="-L${OPENBLASLIBDIR} ${LDFLAGS} -lopenblas ${FLIBS}" __ssmk \ + BLAS="-L${OPENBLASLIBDIR} ${LDFLAGS} -lopenblas ${FLIBS}" LAPACK="-L${OPENBLASLIBDIR} ${LDFLAGS} -lopenblas ${FLIBS}" || oops "suitesparse build with openblas failed" + fi _compiler_proxy_end ld MYLD reid ${BASE}/lib*/libgraphblas* ${BASE}/lib*/libmongoose* @@ -3900,9 +3926,11 @@ PATCH mk_scipy() { resume_tracker && return 0 - _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "scipy requires blas" - _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr ||oops "scipy requires lapack" _find_cots_lib OPENBLAS libopenblas $BASE $COTS_HOME || echo "numpy didn't find openblas. using blas" + if [ -z "${OPENBLAS}" ] ; then + _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "scipy requires blas or openblas" + _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr ||oops "scipy requires lapack or openblas" + fi if isTrue USING_FLANG ; then export FLIB=flang @@ -7752,8 +7780,12 @@ mk_octave() { isDarwin && OCTAVEEXTRA="${OCTAVEEXTRA} --with-x=no --disable-no-undefined" # --without-framework-carbon" #isDarwin && [ -n "$(clang --version | grep "LLVM 3.5" )" ] && OCTAVEEXTRA="${OCTAVEEXTRA} --without-jit" #jit triggers a bug in LLVM3.5 - _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "octave needs blas" - _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr || oops "octave needs lapack" + _find_cots_lib OPENBLAS libopenblas $BASE $COTS_HOME || echo "octave didn't find openblas. using blas" + if [ -z "${OPENBLAS}" ] ; then + oops FIXME + _find_cots_lib BLAS libblas $BASE $COTS_HOME ${SYSROOT}/usr || oops "octave needs blas or openblas" + _find_cots_lib LAPACK liblapack $BASE $COTS_HOME ${SYSROOT}/usr || oops "octave needs lapack or openblas" + fi _find_cots_lib LIBREADLINE libreadline $BASE $COTS_HOME ${SYSROOT}/usr || oops "octave needs libreadline" _find_cots LIBMAGICK include/ImageMagick-6/Magick++.h $BASE || echo "making octave without magick" #oops "octave needs ImageMagick" @@ -9380,9 +9412,6 @@ mk_core() { && mk_packaging \ && mk_setuptools && mk_setuptools_scm \ && mk_openblas \ - && mk_blas \ - && mk_cblas \ - && mk_lapack \ && mk_numpy \ && mk_jpeg \ && mk_cmake \ @@ -9560,9 +9589,7 @@ mk_iasi2fbf() { && mk_libffi \ && mk_expat \ && mk_apy \ - && mk_blas \ - && mk_cblas \ - && mk_lapack \ + && mk_openblas \ && mk_numpy \ && mk_eugene \ && mk_setuptools \