diff --git a/autogen.sh b/autogen.sh index f67ded0..cb6d26c 100755 --- a/autogen.sh +++ b/autogen.sh @@ -14,7 +14,7 @@ check_autotools_version() tool=$1 req_ver=$2 curr_ver=$($tool --version | head -1 | cut -f4 -d' ' | xargs echo -n) - if [ "$curr_ver" != "$req_ver" ]; then + if [ "$curr_ver" -ge "$req_ver" ]; then echo "" echo "$tool version mismatch ($req_ver) required" exit diff --git a/travis/build-run.sh b/travis/build-run.sh index 2d747e5..6df0c99 100755 --- a/travis/build-run.sh +++ b/travis/build-run.sh @@ -29,12 +29,14 @@ case "$MPI_IMPL" in mpicc --showme:command # see https://github.com/open-mpi/ompi/issues/2956 export TMPDIR=/tmp + # suppress excessive output + OMPI_NO_WARN="-Wno-unknown-attributes" ;; esac # Configure and build ./autogen.sh -./configure CC=mpicc CFLAGS="-std=c99" --disable-static --prefix=/tmp +./configure CC=mpicc CFLAGS="-std=c99 $OMPI_NO_WARN" --disable-static --prefix=/tmp make V=1 make V=1 install diff --git a/travis/install-autotools.sh b/travis/install-autotools.sh index 5bddfc0..b84ab11 100755 --- a/travis/install-autotools.sh +++ b/travis/install-autotools.sh @@ -3,120 +3,128 @@ #set -e set -x -os=`uname` TOP="$1" - MAKE_JNUM=2 - M4_VERSION=1.4.17 - LIBTOOL_VERSION=2.4.6 - AUTOCONF_VERSION=2.69 - AUTOMAKE_VERSION=1.15 +M4_VERSION=1.4.17 +LIBTOOL_VERSION=2.4.6 +AUTOCONF_VERSION=2.69 +AUTOMAKE_VERSION=1.15 - cd ${TOP} - TOOL=m4 - TDIR=${TOOL}-${M4_VERSION} - FILE=${TDIR}.tar.gz - BIN=${TOP}/bin/${TOOL} - if [ -f ${FILE} ] ; then - echo ${FILE} already exists! Using existing copy. - else - wget http://ftp.gnu.org/gnu/${TOOL}/${FILE} - fi - if [ -d ${TDIR} ] ; then - echo ${TDIR} already exists! Using existing copy. - else - echo Unpacking ${FILE} - tar -xzf ${FILE} - fi - if [ -f ${BIN} ] ; then - echo ${BIN} already exists! Skipping build. - else - cd ${TOP}/${TDIR} - ./configure --prefix=${TOP} && make -j ${MAKE_JNUM} && make install - if [ "x$?" != "x0" ] ; then - echo FAILURE 1 - exit - fi - fi +if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - cd ${TOP} - TOOL=libtool - TDIR=${TOOL}-${LIBTOOL_VERSION} - FILE=${TDIR}.tar.gz - BIN=${TOP}/bin/${TOOL} - if [ ! -f ${FILE} ] ; then - wget http://ftp.gnu.org/gnu/${TOOL}/${FILE} - else - echo ${FILE} already exists! Using existing copy. - fi - if [ ! -d ${TDIR} ] ; then - echo Unpacking ${FILE} - tar -xzf ${FILE} - else - echo ${TDIR} already exists! Using existing copy. - fi - if [ -f ${BIN} ] ; then - echo ${BIN} already exists! Skipping build. - else - cd ${TOP}/${TDIR} - ./configure --prefix=${TOP} M4=${TOP}/bin/m4 && make -j ${MAKE_JNUM} && make install - if [ "x$?" != "x0" ] ; then - echo FAILURE 2 - exit - fi - fi + brew install m4 || brew upgrade m4 + brew install libtool || brew upgrade libtool + brew install autoconf || brew upgrade autoconf + brew install automake || brew upgrade automake - cd ${TOP} - TOOL=autoconf - TDIR=${TOOL}-${AUTOCONF_VERSION} - FILE=${TDIR}.tar.gz - BIN=${TOP}/bin/${TOOL} - if [ ! -f ${FILE} ] ; then - wget http://ftp.gnu.org/gnu/${TOOL}/${FILE} - else - echo ${FILE} already exists! Using existing copy. - fi - if [ ! -d ${TDIR} ] ; then - echo Unpacking ${FILE} - tar -xzf ${FILE} - else - echo ${TDIR} already exists! Using existing copy. - fi - if [ -f ${BIN} ] ; then - echo ${BIN} already exists! Skipping build. - else - cd ${TOP}/${TDIR} - ./configure --prefix=${TOP} M4=${TOP}/bin/m4 && make -j ${MAKE_JNUM} && make install - if [ "x$?" != "x0" ] ; then - echo FAILURE 3 - exit - fi - fi +else + MAKE_JNUM=2 - cd ${TOP} - TOOL=automake - TDIR=${TOOL}-${AUTOMAKE_VERSION} - FILE=${TDIR}.tar.gz - BIN=${TOP}/bin/${TOOL} - if [ ! -f ${FILE} ] ; then - wget http://ftp.gnu.org/gnu/${TOOL}/${FILE} - else - echo ${FILE} already exists! Using existing copy. - fi - if [ ! -d ${TDIR} ] ; then - echo Unpacking ${FILE} - tar -xzf ${FILE} - else - echo ${TDIR} already exists! Using existing copy. - fi - if [ -f ${BIN} ] ; then - echo ${BIN} already exists! Skipping build. - else - cd ${TOP}/${TDIR} - ./configure --prefix=${TOP} M4=${TOP}/bin/m4 && make -j ${MAKE_JNUM} && make install - if [ "x$?" != "x0" ] ; then - echo FAILURE 4 - exit - fi - fi + cd ${TOP} + TOOL=m4 + TDIR=${TOOL}-${M4_VERSION} + FILE=${TDIR}.tar.gz + BIN=${TOP}/bin/${TOOL} + if [ -f ${FILE} ] ; then + echo ${FILE} already exists! Using existing copy. + else + wget http://ftp.gnu.org/gnu/${TOOL}/${FILE} + fi + if [ -d ${TDIR} ] ; then + echo ${TDIR} already exists! Using existing copy. + else + echo Unpacking ${FILE} + tar -xzf ${FILE} + fi + if [ -f ${BIN} ] ; then + echo ${BIN} already exists! Skipping build. + else + cd ${TOP}/${TDIR} + ./configure --prefix=${TOP} && make -j ${MAKE_JNUM} && make install + if [ "x$?" != "x0" ] ; then + echo FAILURE 1 + exit + fi + fi + cd ${TOP} + TOOL=libtool + TDIR=${TOOL}-${LIBTOOL_VERSION} + FILE=${TDIR}.tar.gz + BIN=${TOP}/bin/${TOOL} + if [ ! -f ${FILE} ] ; then + wget http://ftp.gnu.org/gnu/${TOOL}/${FILE} + else + echo ${FILE} already exists! Using existing copy. + fi + if [ ! -d ${TDIR} ] ; then + echo Unpacking ${FILE} + tar -xzf ${FILE} + else + echo ${TDIR} already exists! Using existing copy. + fi + if [ -f ${BIN} ] ; then + echo ${BIN} already exists! Skipping build. + else + cd ${TOP}/${TDIR} + ./configure --prefix=${TOP} M4=${TOP}/bin/m4 && make -j ${MAKE_JNUM} && make install + if [ "x$?" != "x0" ] ; then + echo FAILURE 2 + exit + fi + fi + + cd ${TOP} + TOOL=autoconf + TDIR=${TOOL}-${AUTOCONF_VERSION} + FILE=${TDIR}.tar.gz + BIN=${TOP}/bin/${TOOL} + if [ ! -f ${FILE} ] ; then + wget http://ftp.gnu.org/gnu/${TOOL}/${FILE} + else + echo ${FILE} already exists! Using existing copy. + fi + if [ ! -d ${TDIR} ] ; then + echo Unpacking ${FILE} + tar -xzf ${FILE} + else + echo ${TDIR} already exists! Using existing copy. + fi + if [ -f ${BIN} ] ; then + echo ${BIN} already exists! Skipping build. + else + cd ${TOP}/${TDIR} + ./configure --prefix=${TOP} M4=${TOP}/bin/m4 && make -j ${MAKE_JNUM} && make install + if [ "x$?" != "x0" ] ; then + echo FAILURE 3 + exit + fi + fi + + cd ${TOP} + TOOL=automake + TDIR=${TOOL}-${AUTOMAKE_VERSION} + FILE=${TDIR}.tar.gz + BIN=${TOP}/bin/${TOOL} + if [ ! -f ${FILE} ] ; then + wget http://ftp.gnu.org/gnu/${TOOL}/${FILE} + else + echo ${FILE} already exists! Using existing copy. + fi + if [ ! -d ${TDIR} ] ; then + echo Unpacking ${FILE} + tar -xzf ${FILE} + else + echo ${TDIR} already exists! Using existing copy. + fi + if [ -f ${BIN} ] ; then + echo ${BIN} already exists! Skipping build. + else + cd ${TOP}/${TDIR} + ./configure --prefix=${TOP} M4=${TOP}/bin/m4 && make -j ${MAKE_JNUM} && make install + if [ "x$?" != "x0" ] ; then + echo FAILURE 4 + exit + fi + fi +fi diff --git a/travis/install-mpi.sh b/travis/install-mpi.sh index 7c39bc1..b9e75e9 100755 --- a/travis/install-mpi.sh +++ b/travis/install-mpi.sh @@ -37,10 +37,9 @@ case "$os" in case "$MPI_IMPL" in mpich_shm|mpich_odd) if [ ! -d "$TRAVIS_ROOT/mpich" ]; then - # mpich-v3.3a2 has symbol visibility issue, see https://github.com/pmodels/mpich/issues/2471. - wget --no-check-certificate http://www.mpich.org/static/downloads/nightly/master/mpich/mpich-master-v3.3a2-452-ge0000be3f049.tar.gz - tar -xzf mpich-master-v3.3a2-452-ge0000be3f049.tar.gz - cd mpich-master-v3.3a2-452-ge0000be3f049 + wget --no-check-certificate http://www.mpich.org/static/downloads/3.3.2/mpich-3.3.2.tar.gz + tar -xzf mpich-3.3.2.tar.gz + cd mpich-3.3.2 mkdir build && cd build ../configure CFLAGS="-w" --prefix=$TRAVIS_ROOT/mpich --disable-fortran --disable-static make -j2 @@ -51,9 +50,9 @@ case "$os" in ;; openmpi) if [ ! -d "$TRAVIS_ROOT/open-mpi" ]; then - wget --no-check-certificate https://www.open-mpi.org/software/ompi/v3.0/downloads/openmpi-3.0.0.tar.bz2 - tar -xjf openmpi-3.0.0.tar.bz2 - cd openmpi-3.0.0 + wget --no-check-certificate https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.2.tar.bz2 + tar -xjf openmpi-4.0.2.tar.bz2 + cd openmpi-4.0.2 mkdir build && cd build ../configure CFLAGS="-w" --prefix=$TRAVIS_ROOT/open-mpi \ --without-verbs --without-fca --without-mxm --without-ucx \