Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagesmc
Path: blob/master/build/pkgs/fflas_ffpack/spkg-install
8817 views
#!/usr/bin/env bash

if [ -z "$SAGE_LOCAL" ]; then
    echo >&2 "SAGE_LOCAL undefined ... exiting"
    echo >&2 "Maybe run 'sage --sh'?"
    exit 1
fi

cd src

# Apply patches.  See SPKG.txt for information about what each patch
# does.
for patch in ../patches/*.patch; do
    [ -r "$patch" ] || continue  # Skip non-existing or non-readable patches
    patch -p1 <"$patch"
    if [ $? -ne 0 ]; then
        echo >&2 "Error applying '$patch'"
        exit 1
    fi
done


export CFLAGS="-g -O2 -fPIC $CFLAGS"
export CXXFLAGS="-g -O2 -fPIC $CXXFLAGS"

if [ "$SAGE64" = "yes" ]; then
   echo "64 bit build"
   CFLAGS="-m64 $CFLAGS "; export CFLAGS
   CXXFLAGS="-m64 $CXXFLAGS "; export CXXFLAGS
   CPPFLAGS="-m64 $CPPFLAGS "; export CPPFLAGS
   LDFLAGS="-m64"; export LDFLAGS
fi


if [ "$LINBOX_BLAS" != "" ]; then

    echo "Using environment variable LINBOX_BLAS "$LINBOX_BLAS""

elif [ $UNAME = "Darwin" -a -f "/usr/lib/libcblas.dylib" ]; then

    LINBOX_BLAS=/usr/lib/libcblas.dylib

elif [ $UNAME = "Linux" -a -f "${SAGE_LOCAL}/lib/libcblas.so" ]; then

    echo "Linux cblas"

    LINBOX_BLAS="-lcblas -latlas"

elif [ $UNAME = "CYGWIN" ]; then

    echo "Using system-wide Cygwin LAPACK BLAS."
    if [ ! -f "/usr/lib/libblas.a" ]; then
        echo "*************************************************"
        echo "*"
        echo "* On Cygwin you must install the standard LAPACK Cygwin package"
        echo "* via the Cygwin setup.exe program in the 'Math' category."
        echo "*"
        echo "*************************************************"
        exit 1
    fi
    LINBOX_BLAS="-lblas "

elif [ $UNAME = "SunOS" -a -f "${SAGE_LOCAL}/lib/libcblas.so" ]; then

    echo "Solaris cblas"

    LINBOX_BLAS="-lcblas -latlas"

elif [ $UNAME = "FreeBSD" -a -f "${SAGE_LOCAL}/lib/libcblas.a" ]; then

    echo "FreeBSD cblas"

    LINBOX_BLAS="-lcblas -latlas"

elif [ $UNAME = "FreeBSD" -a -f "${SAGE_LOCAL}/lib/libcblas.so" ]; then

    echo "FreeBSD cblas"

    LINBOX_BLAS="-lcblas -latlas"

else
    echo "WARNING WARNING"
    echo "WARNING WARNING"
    echo "WARNING WARNING"
    echo "WARNING WARNING"
    echo "using frickin' slow GSL C-blas"
    echo "WARNING WARNING"
    echo "WARNING WARNING"
    echo "WARNING WARNING"
    echo "WARNING WARNING"
    echo "WARNING WARNING"

    if [ $UNAME = "Darwin" ]; then
        LINBOX_BLAS="$SAGE_LOCAL"/lib/libgslcblas.dylib
    else
        LINBOX_BLAS="$SAGE_LOCAL"/lib/libgslcblas.so
    fi

fi

echo "*************************************************"
echo " Using LINBOX_BLAS=$LINBOX_BLAS"
echo "*************************************************"

./configure --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib" \
    --with-default="$SAGE_LOCAL" \
    --with-blas="$LINBOX_BLAS" \
    --enable-optimization --disable-static

if [ $? -ne 0 ]; then
    echo "Error configuring linbox"
    exit 1
fi

$MAKE
if [ $? -ne 0 ]; then
    echo "Error building linbox"
fi

$MAKE install
if [ $? -ne 0 ]; then
    echo "Error installing linbox"
    exit 1
fi

echo $LINBOX_BLAS > $SAGE_LOCAL/share/cblas_config