summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 14ab14a156afd1165105083cb0f966d814d7cba1 (plain)
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
sudo: required
language: c
compiler: gcc
env:
- HOST=x86_64-linux-gnu OPT=-O0
- HOST=x86-linux-gnu OPT=-O0
- HOST=arm-linux-gnueabihf OPT=-O0
- HOST=aarch64-linux-gnu OPT=-O0
- HOST=mipsel-linux-gnu OPT=-O0
- HOST=powerpc64-linux-gnu OPT=-O0
- HOST=x86_64-linux-gnu OPT=-O2
- HOST=x86-linux-gnu OPT=-O2
- HOST=arm-linux-gnueabihf OPT=-O2
- HOST=aarch64-linux-gnu OPT=-O2
- HOST=mipsel-linux-gnu OPT=-O2
- HOST=powerpc64-linux-gnu OPT=-O2
- HOST=x86_64-linux-gnu OPT=-O3
- HOST=x86-linux-gnu OPT=-O3
- HOST=arm-linux-gnueabihf OPT=-O3
- HOST=aarch64-linux-gnu OPT=-O3
- HOST=mipsel-linux-gnu OPT=-O3
- HOST=powerpc64-linux-gnu OPT=-O3

linux-s390x: &linux-s390x
  os: linux
  dist: focal
  arch: s390x
  env: HOST=s390x-linux-gnu BUILD=s390x-linux-gnu
  script:
    - |
      CFLAGS="$OPT"
      CXXFLAGS="$OPT"
      export CFLAGS CXXFLAGS
    - autoreconf -i
    - ./configure
    - make -j32
    - ulimit -c unlimited
    - make check -j32

linux-arm64: &linux-arm64
  dist: focal
  arch: arm64-graviton2
  group: edge
  virt: vm
  env: OPT=-O2
  script:
    - |
      CFLAGS="$OPT"
      CXXFLAGS="$OPT"
      export CFLAGS CXXFLAGS
    - autoreconf -i
    - ./configure
    - make -j32
    - ulimit -c unlimited
    - make check -j32

windows-remote-only: &windows-remote-only
  os: windows
  compiler: msvc
  script:
  - cmake -G "Visual Studio 15 2017" -A ${WINHOST} -S . -B bin/windows-${WINHOST}/${TARGET}
  - cmake --build bin/windows-${WINHOST}/${TARGET}

script:
- |
  BUILD=x86_64-linux-gnu
  export BUILD
  if [ $HOST = 'x86-linux-gnu' ]; then
    sudo apt-get update 
    sudo apt-get install -yqq -o=Dpkg::Use-Pty=0 g++-multilib
    CFLAGS=" -m32"
    CXXFLAGS=" -m32"
    export CFLAGS CXXFLAGS
  elif [ $HOST != 'x86_64-linux-gnu' ]; then
    sudo apt-get update
    sudo apt-get install -yqq -o=Dpkg::Use-Pty=0 g++-$HOST
    CC=$HOST-gcc
    CXX=$HOST-g++
    export CC CXX
  fi
- |
  CFLAGS="$CFLAGS $OPT"
  CXXFLAGS="$CXXFLAGS $OPT"
  export CFLAGS CXXFLAGS
- autoreconf -i
- ./configure CC=$CC CXX=$CXX CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" --build=$BUILD --host=$HOST
- make -j32
- sudo bash -c 'echo core.%p.%p > /proc/sys/kernel/core_pattern'
- ulimit -c unlimited
- if [ $HOST = 'x86_64-linux-gnu' ]; then make check -j32; fi

after_failure: cat tests/test-suite.log 2>/dev/null

jobs:
  include:
    - <<: *linux-s390x
    - <<: *windows-remote-only
      env: WINHOST=x64 TARGET=x86_64-linux-gnu
    - <<: *windows-remote-only
      env: WINHOST=Win32 TARGET=arm-linux-gnueabihf
    - <<: *windows-remote-only
      env: WINHOST=x64 TARGET=aarch64-linux-gnu
    - <<: *linux-arm64