forked from ICLDisco/ompi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
85 lines (77 loc) · 3.5 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Use "required" for sudo, because we want to use the "trusty" Debian
# distro, which is (currently) only available in the legacy Travis
# infrastructure (i.e., if we put "sudo: false" to use the new container-
# based Travis infrastructure, then "trusty" is not available). We
# need the "trusty" distro because it has more recent versions of the
# GNU Autotools (i.e., autogen.pl will fail if you use the regular
# distro because the GNU Autotools are too old).
sudo: required
dist: trusty
language: c
# Iterate over 2 different compilers
compiler:
- gcc
- clang
# Iterate over 2 different OSs
os:
- linux
- osx
addons:
# For Linux, make sure we have some extra packages that we like to
# build with
apt:
packages:
- autoconf
- automake
- libtool
- libnl-3-200
- libnl-3-dev
- libnl-route-3-200
- libnl-route-3-dev
- libibverbs-dev
- librdmacm-dev
- libhwloc-dev
sources:
- ubuntu-toolchain-r-test
env:
global:
- AM_MAKEFLAGS="-j4"
- CPPFLAGS="-I$HOME/bogus/include"
- LDFLAGS="-L$HOME/bogus/lib"
- LD_LIBRARY_PATH="$HOME/bogus/lib"
matrix:
- GCC_VERSION=default
- GCC_VERSION=6
# Install dependencies for the verbs and usnic providers. Open MPI is
# not currently using the verbs provider in Libfabric, so we might as
# well not build it.
before_install:
- if [[ "GCC_VERSION" == "6" ]]; then COMPILERS="CC=gcc-6 CXX=g++-6 FC=gfortran-6"; fi
- export CONFIGURE_ARGS="--prefix=$HOME/bogus $COMPILERS" DISTCHECK_CONFIGURE_FLAGS="$CONFIGURE_ARGS"
- export DISTCHECK_CONFIGURE_FLAGS="$CONFIGURE_ARGS"
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then git clone https://github.com/ofiwg/libfabric.git ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$GCC_VERSION" == "6" ]] ; then sudo apt-get --assume-yes install gcc-6 g++-6 gfortran-6; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cd libfabric && ./autogen.sh && ./configure --prefix=$HOME/bogus --enable-usnic --disable-verbs $COMPILERS && make install && cd .. ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; brew upgrade automake || true; brew upgrade libtool || true; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew tap homebrew/science || true; brew install hwloc || true; brew upgrade hwloc || true ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$GCC_VERSION" == "6" ]] ; then brew install gcc || true; brew upgrade gcc || true ; fi
- mkdir -p $HOME/bogus/include $HOME/bogus/lib
# Note that we use "make -k" to do the entire build, even if there was a
# build error in there somewhere. This prevents us from needing to submit
# to Travis, see the first error, fix that first error, submit again, ...etc.
install:
- m4 --version
- autoconf --version
- automake --version
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then libtool --version; else glibtool --version; fi
- ./autogen.pl
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "gcc" ]]; then ./configure $CONFIGURE_ARGS --with-libfabric=$HOME/bogus --with-usnic --with-verbs; else ./configure $CONFIGURE_ARGS; fi
- make -k
# We only need to distcheck on one OS / compiler combination (this is just
# a minor optimization to make the overall set of builds faster).
script:
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "gcc" ]]; then make distcheck; else make check; fi
matrix:
exclude:
- env: GCC_VERSION=6
compiler: clang