1#!/bin/bash 2set -eu 3set -o pipefail 4 5if [ -d `pwd`/mpich/bin ]; then 6 export PATH=`pwd`/mpich/bin:$PATH 7fi 8if [ -d `pwd`/texlive/bin ]; then 9 export PATH=`pwd`/texlive/bin/`uname -m`-linux:$PATH 10fi 11if [ -d `pwd`/formlib ]; then 12 export FORMPATH=`pwd`/formlib 13fi 14 15# Print all executed commands to the log. 16set -x 17 18case $CI_TARGET in 19 form) 20 autoreconf -iv 21 ./configure --disable-dependency-tracking --enable-scalar --disable-threaded --disable-parform --with-gmp --with-zlib 22 make 23 ./check/check.rb ./sources/form --stat 24 ./check/check.rb ./sources/form --stat -C forcer --timeout 60 25 ;; 26 tform) 27 autoreconf -iv 28 ./configure --disable-dependency-tracking --disable-scalar --enable-threaded --disable-parform --with-gmp --with-zlib 29 make 30 ./check/check.rb ./sources/tform --stat 31 ./check/check.rb ./sources/tform --stat -C forcer --timeout 60 32 ;; 33 parform) 34 autoreconf -iv 35 ./configure --disable-dependency-tracking --disable-scalar --disable-threaded --enable-parform --with-gmp --with-zlib 36 make 37 ./check/check.rb ./sources/parform --stat 38 ;; 39 form-i386) 40 # Use Docker (travis-ci/travis-ci#5770). 41 docker exec -i -t build_test /bin/sh -c "export CI_TARGET=form && cd $(pwd) && linux32 --32bit i386 ./scripts/travis-script.sh" 42 ;; 43 tform-i386) 44 # Use Docker (travis-ci/travis-ci#5770). 45 docker exec -i -t build_test /bin/sh -c "export CI_TARGET=tform && cd $(pwd) && linux32 --32bit i386 ./scripts/travis-script.sh" 46 ;; 47 sanitize-vorm) 48 autoreconf -iv 49 ./configure --disable-dependency-tracking --enable-scalar --disable-threaded --disable-parform --enable-debug --enable-sanitize --with-gmp --with-zlib 50 make -C sources vorm 51 ./check/check.rb ./sources/vorm --stat --timeout 60 52 ;; 53 sanitize-tvorm) 54 autoreconf -iv 55 ./configure --disable-dependency-tracking --disable-scalar --enable-threaded --disable-parform --enable-debug --enable-sanitize --with-gmp --with-zlib 56 make -C sources tvorm 57 ./check/check.rb ./sources/tvorm --stat --timeout 60 58 ;; 59 sanitize-parvorm) 60 autoreconf -iv 61 ./configure --disable-dependency-tracking --disable-scalar --disable-threaded --enable-parform --enable-debug --enable-sanitize --with-gmp --with-zlib 62 make -C sources parvorm 63 ./check/check.rb ./sources/parvorm --stat --timeout 60 64 ;; 65 coverage-vorm) 66 autoreconf -iv 67 ./configure --disable-dependency-tracking --enable-scalar --disable-threaded --disable-parform --enable-debug --enable-coverage --with-gmp --with-zlib 68 make -C sources vorm 69 ./check/check.rb ./sources/vorm --stat --timeout 30 70 ;; 71 coverage-tvorm) 72 autoreconf -iv 73 ./configure --disable-dependency-tracking --disable-scalar --enable-threaded --disable-parform --enable-debug --enable-coverage --with-gmp --with-zlib 74 make -C sources tvorm 75 ./check/check.rb ./sources/tvorm --stat --timeout 30 76 ;; 77 coverage-parvorm) 78 autoreconf -iv 79 ./configure --disable-dependency-tracking --disable-scalar --disable-threaded --enable-parform --enable-debug --enable-coverage --with-gmp --with-zlib 80 make -C sources parvorm 81 ./check/check.rb ./sources/parvorm --stat --timeout 30 82 ;; 83 valgrind-vorm) 84 autoreconf -iv 85 ./configure --disable-dependency-tracking --enable-scalar --disable-threaded --disable-parform --enable-debug --with-gmp --with-zlib 86 make -C sources vorm 87 ./check/check.rb valgrind ./sources/vorm --stat $TEST 88 ;; 89 valgrind-tvorm) 90 autoreconf -iv 91 ./configure --disable-dependency-tracking --disable-scalar --enable-threaded --disable-parform --enable-debug --with-gmp --with-zlib 92 make -C sources tvorm 93 ./check/check.rb valgrind ./sources/tvorm --stat $TEST 94 ;; 95 valgrind-parvorm) 96 autoreconf -iv 97 ./configure --disable-dependency-tracking --disable-scalar --disable-threaded --enable-parform --enable-debug --with-gmp --with-zlib 98 make -C sources parvorm 99 ./check/check.rb valgrind ./sources/parvorm --stat $TEST 100 ;; 101 src-release) 102 distname=form-`./scripts/git-version-gen.sh -r | sed '2q;d' | sed 's/^v//'` 103 distdir=$distname 104 autoreconf -iv 105 ./configure --disable-dependency-tracking 106 make distdir=$distdir distcheck 107 ls -l $distdir.tar.gz && file $distdir.tar.gz 108 ;; 109 doc-pdf-release) 110 distname=form-`./scripts/git-version-gen.sh -r | sed '2q;d' | sed 's/^v//'` 111 distname=$distname-manual 112 autoreconf -iv 113 ./configure --disable-dependency-tracking 114 make pdf 115 cp doc/manual/manual.pdf $distname.pdf 116 ls -l $distname.pdf && file $distname.pdf 117 ;; 118 doc-html-release) 119 distname=form-`./scripts/git-version-gen.sh -r | sed '2q;d' | sed 's/^v//'` 120 distdir=$distname-manual-html 121 autoreconf -iv 122 ./configure --disable-dependency-tracking 123 make -C doc/manual latex2html 124 ( 125 cd doc/manual/manual 126 rm -f images.aux images.idx images.log images.pl images.tex internals.pl labels.pl WARNINGS 127 ) 128 cp -r doc/manual/manual $distdir 129 tar c $distdir/* | gzip -c -9 > $distdir.tar.gz 130 ls -l $distdir.tar.gz && file $distdir.tar.gz 131 ;; 132 bin-release) 133 distname=form-`./scripts/git-version-gen.sh -r | sed '2q;d' | sed 's/^v//'` 134 distdir=$distname-`uname -m`-$TRAVIS_OS_NAME 135 autoreconf -iv 136 if [ "x$TRAVIS_OS_NAME" = xosx ]; then 137 # --static fails on macOS but we want to statically link to brewed gmp. 138 # The linker supports neither -Wl,-static nor -l:libgmp.a. 139 # Make a library directory with libgmp.a but without libgmp.dylib. 140 mkdir static-lib 141 ln -s /usr/local/opt/gmp/lib/libgmp.a static-lib/libgmp.a 142 export LIBRARY_PATH="`pwd`/static-lib:${LIBRARY_PATH:-}" 143 ./configure --disable-dependency-tracking --disable-native --enable-scalar --enable-threaded 144 else 145 ./configure --disable-dependency-tracking --enable-static-link --disable-native --enable-scalar --enable-threaded 146 fi 147 make 148 make check TEST_OPTS=--stat 149 mkdir $distdir 150 cp sources/form sources/tform $distdir 151 tar c $distdir/* | gzip -c -9 > $distdir.tar.gz 152 ls -l $distdir.tar.gz && file $distdir.tar.gz sources/form sources/tform 153 if [ "x$TRAVIS_OS_NAME" = xosx ]; then 154 otool -L sources/form sources/tform 155 # Check if gmp is statically linked. 156 if otool -L sources/form sources/tform | grep -q gmp; then 157 echo 'Error: failed to statically link to gmp' >&2 158 exit 1 159 fi 160 fi 161 ;; 162 *) 163 echo "Error: unknown CI_TARGET=$CI_TARGET" >&2 164 exit 1 165 ;; 166esac 167