add Windows builds and update Linux dist to xenial

original commit: e44a209f27f8670c23a1d402b3f968eaa10cad29
This commit is contained in:
Bob Burger 2019-04-22 17:53:26 -04:00
parent 8850655e7d
commit 897e53b430
7 changed files with 107 additions and 61 deletions

View File

@ -1,30 +1,62 @@
language: c language: c
matrix: matrix:
include: include:
- os: osx # macOS
env: TARGET_MACHINE=i3osx - env: TARGET_MACHINE=i3osx
- os: osx os: osx
env: TARGET_MACHINE=ti3osx - env: TARGET_MACHINE=ti3osx
- os: osx os: osx
env: TARGET_MACHINE=a6osx - env: TARGET_MACHINE=a6osx
- os: osx os: osx
env: TARGET_MACHINE=ta6osx - env: TARGET_MACHINE=ta6osx
- os: linux os: osx
env: TARGET_MACHINE=i3le
sudo: required # Linux
- os: linux - env: TARGET_MACHINE=i3le
env: TARGET_MACHINE=ti3le os: linux
sudo: required addons:
- os: linux apt:
env: TARGET_MACHINE=a6le packages:
- os: linux - gcc-multilib
env: TARGET_MACHINE=ta6le - lib32ncurses5-dev
dist: trusty - libx32ncurses5-dev
addons: - uuid-dev:i386
apt: - env: TARGET_MACHINE=ti3le
packages: os: linux
- gcc-multilib addons:
- lib32ncurses5-dev apt:
- libx32ncurses5-dev packages:
- gcc-multilib
- lib32ncurses5-dev
- libx32ncurses5-dev
- uuid-dev:i386
- env: TARGET_MACHINE=a6le
os: linux
- env: TARGET_MACHINE=ta6le
os: linux
# Windows
- env: TARGET_MACHINE=i3nt
os: windows
before_script:
- git config core.autocrlf false; rm .git/index; git reset --hard
- choco install make -y
- env: TARGET_MACHINE=ti3nt
os: windows
before_script:
- git config core.autocrlf false; rm .git/index; git reset --hard
- choco install make -y
- env: TARGET_MACHINE=a6nt
os: windows
before_script:
- git config core.autocrlf false; rm .git/index; git reset --hard
- choco install make -y
- env: TARGET_MACHINE=ta6nt
os: windows
before_script:
- git config core.autocrlf false; rm .git/index; git reset --hard
- choco install make -y
dist: xenial
script: script:
- .travis/dobuild.sh - .travis/build.sh
- .travis/test.sh

15
.travis/build.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
set -e -o pipefail
echo 'travis_fold:start:build'
echo Building Chez Scheme...
./configure -m=$TARGET_MACHINE
make
case $TARGET_MACHINE in
*a6nt)
curl -Ls https://github.com/burgerrg/win-iconv/releases/download/v0.0.9/iconv-x64.dll > $TARGET_MACHINE/bin/$TARGET_MACHINE/iconv.dll
;;
*i3nt)
curl -Ls https://github.com/burgerrg/win-iconv/releases/download/v0.0.9/iconv-x86.dll > $TARGET_MACHINE/bin/$TARGET_MACHINE/iconv.dll
;;
esac
echo 'travis_fold:end:build'

View File

@ -1,27 +0,0 @@
#!/bin/bash
case $TARGET_MACHINE in
*i3le) sudo apt-get -yq --no-install-suggests --no-install-recommends install uuid-dev:i386 ;;
*)
esac
./configure -m=$TARGET_MACHINE
exitcode=$?
if [ $exitcode -ne 0 ] ; then
echo "Failed: configure step"
exit $exitcode
fi
make
exitcode=$?
if [ $exitcode -ne 0 ] ; then
echo "Failed: make step"
exit $exitcode
fi
( cd ${TARGET_MACHINE}/mats && make partialx 2>&1 ) | tee Make.out | grep '^matting '
diff -q .travis/summary ${TARGET_MACHINE}/mats/summary
exitcode=$?
if [ $exitcode -ne 0 ] ; then
echo "Failed: testing step"
echo "mats summary:"
cat ${TARGET_MACHINE}/mats/summary
exit $exitcode
fi

21
.travis/test.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash
runmats() {
echo travis_fold:start:mats
echo make allxhelp "$@"
make -C ${TARGET_MACHINE}/mats allxhelp "$@" 2>&1 | tee -a Make.out | grep '^matting '
echo travis_fold:end:mats
}
# Split these out so that we get output every 10 minutes on Windows builds.
runmats o=0
runmats o=3
runmats o=3 cp0=t
runmats o=3 cp0=t eval=interpret
if [ -f ${TARGET_MACHINE}/mats/summary ]; then
cat ${TARGET_MACHINE}/mats/summary
diff -q .travis/summary ${TARGET_MACHINE}/mats/summary
exit $?
else
exit 1
fi

View File

@ -196,19 +196,20 @@ The make file supports several targets:
WINDOWS WINDOWS
Building Chez Scheme under 64-bit Windows with Cygwin or Bash/WSL Building Chez Scheme under 64-bit Windows with Bash/WSL, MinGW/MSYS,
follows the instructions above, except that 'make install' and 'make or Cygwin follows the instructions above, except that 'make install'
uninstall' are not supported. On Bash/WSL, the build directory must be and 'make uninstall' are not supported. On Bash/WSL, the build
in a location with a Windows path such as /mnt/c, and the 'OS' directory must be in a location with a Windows path such as /mnt/c,
environment variable must be set to 'Windows_NT' to indicate a build and the 'OS' environment variable must be set to 'Windows_NT' to
for Windows, as opposed to a build for Linux on Windows: indicate a build for Windows, as opposed to a build for Linux on
Windows:
env OS=Windows_NT ./configure env OS=Windows_NT ./configure
env OS=Windows_NT make env OS=Windows_NT make
Prerequisites: Prerequisites:
* Cygwin or Bash/WSL with bash, git, grep, make, sed, etc. * Bash/WSL, MinGW/MSYS, or Cygwin with bash, git, grep, make, sed, etc.
* Microsoft Visual Studio 2017 or 2015 * Microsoft Visual Studio 2017 or 2015
* WiX Toolset (for making an install) * WiX Toolset (for making an install)
@ -251,7 +252,7 @@ http://gnuwin32.sourceforge.net/packages/libiconv.htm
An alternative that uses the Windows API can be found at: An alternative that uses the Windows API can be found at:
https://github.com/win-iconv/win-iconv https://github.com/burgerrg/win-iconv/releases
If the DLL is not present, the iconv tests will fail. No other tests If the DLL is not present, the iconv tests will fail. No other tests
should be affected. should be affected.

3
LOG
View File

@ -1356,3 +1356,6 @@
- fix incorrect uses of fxzero? x86.ss backend, since a 32-bit - fix incorrect uses of fxzero? x86.ss backend, since a 32-bit
immediate is not necessarily a fixnum immediate is not necessarily a fixnum
x86.ss x86.ss
- added MinGW/MSYS build support for Windows and configuration for
Travis-CI testing of all Windows builds
BUILDING, .travis*, wininstall/Makefile

View File

@ -1,5 +1,6 @@
VERSION := 9.5.3 VERSION := 9.5.3
WIXEXTENSIONS := -ext WixUIExtension -ext WixBalExtension WIXEXTENSIONS := -ext WixUIExtension -ext WixBalExtension
export MSYS_NO_PATHCONV=1
ChezScheme.exe: x86/bundle.wixobj ChezScheme32.msi ChezScheme64.msi ChezScheme.exe: x86/bundle.wixobj ChezScheme32.msi ChezScheme64.msi
cmd.exe /c light.bat -nologo $(WIXEXTENSIONS) $< -out $@ cmd.exe /c light.bat -nologo $(WIXEXTENSIONS) $< -out $@