aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2018-12-28 11:35:49 +0100
committerAnton Khirnov <anton@khirnov.net>2018-12-28 11:35:49 +0100
commit05548f19dbe9e83dc68c4ac304d1aa33fc4df242 (patch)
tree5d4f68f253b8f9568167f87c97b267a7ec1867c5
parent0e1ea1ab6fe1f1a029bfc76ea57ab711213d7024 (diff)
Replace the detection mess with pkg-config.HEADmaster
-rw-r--r--configure.sh159
1 files changed, 4 insertions, 155 deletions
diff --git a/configure.sh b/configure.sh
index b586a9f..accaf5f 100644
--- a/configure.sh
+++ b/configure.sh
@@ -13,164 +13,13 @@ set -e # Abort on errors
################################################################################
-# Search
-################################################################################
-
-if [ -z "${LAPACK_DIR}" ]; then
- echo "BEGIN MESSAGE"
- echo "LAPACK selected, but LAPACK_DIR not set. Checking some places..."
- echo "END MESSAGE"
-
- FILES="liblapack.a liblapack.so"
- DIRS="/usr/lib /usr/local/lib /usr/lib64/atlas /usr/lib/atlas-base/atlas ${HOME}"
- for file in $FILES; do
- for dir in $DIRS; do
- if test -r "$dir/$file"; then
- LAPACK_DIR="$dir"
- break
- fi
- done
- done
-
- if [ -z "$LAPACK_DIR" ]; then
- echo "BEGIN MESSAGE"
- echo "LAPACK not found"
- echo "END MESSAGE"
- else
- echo "BEGIN MESSAGE"
- echo "Found LAPACK in ${LAPACK_DIR}"
- echo "END MESSAGE"
- fi
-fi
-
-
-
-################################################################################
-# Build
-################################################################################
-
-if [ -z "${LAPACK_DIR}" \
- -o "$(echo "${LAPACK_DIR}" | tr '[a-z]' '[A-Z]')" = 'BUILD' ]
-then
- echo "BEGIN MESSAGE"
- echo "Using bundled LAPACK..."
- echo "END MESSAGE"
-
- # Set locations
- THORN=LAPACK
- NAME=lapack-3.4.2
- SRCDIR=$(dirname $0)
- BUILD_DIR=${SCRATCH_BUILD}/build/${THORN}
- if [ -z "${LAPACK_INSTALL_DIR}" ]; then
- INSTALL_DIR=${SCRATCH_BUILD}/external/${THORN}
- else
- echo "BEGIN MESSAGE"
- echo "Installing LAPACK into ${LAPACK_INSTALL_DIR}"
- echo "END MESSAGE"
- INSTALL_DIR=${LAPACK_INSTALL_DIR}
- fi
- DONE_FILE=${SCRATCH_BUILD}/done/${THORN}
- LAPACK_DIR=${INSTALL_DIR}
-
- if [ "${F77}" = "none" ]; then
- echo 'BEGIN ERROR'
- echo "Building LAPACK requires a fortran compiler, but there is none configured: F77 = $F77. Aborting."
- echo 'END ERROR'
- exit 1
- fi
-
- if [ -e ${DONE_FILE} -a ${DONE_FILE} -nt ${SRCDIR}/dist/${NAME}.tar.gz \
- -a ${DONE_FILE} -nt ${SRCDIR}/configure.sh ]
- then
- echo "BEGIN MESSAGE"
- echo "LAPACK has already been built; doing nothing"
- echo "END MESSAGE"
- else
- echo "BEGIN MESSAGE"
- echo "Building LAPACK"
- echo "END MESSAGE"
-
- # Build in a subshell
- (
- exec >&2 # Redirect stdout to stderr
- if [ "$(echo ${VERBOSE} | tr '[:upper:]' '[:lower:]')" = 'yes' ]; then
- set -x # Output commands
- fi
- set -e # Abort on errors
- cd ${SCRATCH_BUILD}
-
- # Set up environment
- unset LIBS
- if [ ${USE_RANLIB} != 'yes' ]; then
- RANLIB=': ranlib'
- fi
-
- echo "LAPACK: Preparing directory structure..."
- mkdir build external done 2> /dev/null || true
- rm -rf ${BUILD_DIR} ${INSTALL_DIR}
- mkdir ${BUILD_DIR} ${INSTALL_DIR}
-
- echo "LAPACK: Unpacking archive..."
- pushd ${BUILD_DIR}
- ${TAR?} xzf ${SRCDIR}/dist/${NAME}.tgz
-
- echo "LAPACK: Configuring..."
- cd ${NAME}/SRC
-
- echo "LAPACK: Building..."
- if echo ${F77} | grep -i xlf > /dev/null 2>&1; then
- FIXEDF77FLAGS=-qfixed
- fi
- #${F77} ${F77FLAGS} ${FIXEDF77FLAGS} -c *.f ../INSTALL/dlamch.f ../INSTALL/ilaver.f ../INSTALL/lsame.f ../INSTALL/slamch.f
- #${AR} ${ARFLAGS} liblapack.a *.o
- #if [ ${USE_RANLIB} = 'yes' ]; then
- # ${RANLIB} ${RANLIBFLAGS} liblapack.a
- #fi
- cat > make.cactus <<EOF
-SRCS = $(echo *.f) ../INSTALL/dlamch.f ../INSTALL/ilaver.f ../INSTALL/lsame.f ../INSTALL/slamch.f
-liblapack.a: \$(SRCS:%.f=%.o)
- ${AR} ${ARFLAGS} \$@ \$^
- ${RANLIB} ${RANLIBFLAGS} \$@
-%.o: %.f
- ${F77} ${F77FLAGS} ${FIXEDF77FLAGS} -c \$*.f -o \$*.o
-EOF
- ${MAKE} -f make.cactus
-
- echo "LAPACK: Installing..."
- cp liblapack.a ${LAPACK_DIR}
- popd
-
- echo "LAPACK: Cleaning up..."
- rm -rf ${BUILD_DIR}
-
- date > ${DONE_FILE}
- echo "LAPACK: Done."
- )
-
- if (( $? )); then
- echo 'BEGIN ERROR'
- echo 'Error while building LAPACK. Aborting.'
- echo 'END ERROR'
- exit 1
- fi
- fi
-
-fi
-
-
-
-################################################################################
# Configure Cactus
################################################################################
-# Set options
-if [ "${LAPACK_DIR}" != '/usr/lib' -a "${LAPACK_DIR}" != '/usr/local/lib' -a \
- "${LAPACK_DIR}" != 'NO_BUILD' ]
-then
- : ${LAPACK_INC_DIRS=}
- : ${LAPACK_LIB_DIRS="${LAPACK_DIR}"}
-fi
-: ${LAPACK_LIBS='lapack'}
+pkg-config --exists lapack || exit 1
+LAPACK_INC_DIRS=$(pkg-config --cflags-only-I lapack | sed 's/-I//g')
+LAPACK_LIB_DIRS=$(pkg-config --libs-only-L lapack | sed 's/-L//g')
+LAPACK_LIBS=$(pkg-config --libs-only-l lapack | sed 's/-l//g')
# Pass options to Cactus
echo "BEGIN MAKE_DEFINITION"