Skip to content

Commit

Permalink
add Windows builds and update Linux dist to xenial
Browse files Browse the repository at this point in the history
  • Loading branch information
Bob Burger committed Apr 24, 2019
1 parent 01808c6 commit e44a209
Show file tree
Hide file tree
Showing 7 changed files with 107 additions and 61 deletions.
84 changes: 58 additions & 26 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,62 @@
language: c
matrix:
include:
- os: osx
env: TARGET_MACHINE=i3osx
- os: osx
env: TARGET_MACHINE=ti3osx
- os: osx
env: TARGET_MACHINE=a6osx
- os: osx
env: TARGET_MACHINE=ta6osx
- os: linux
env: TARGET_MACHINE=i3le
sudo: required
- os: linux
env: TARGET_MACHINE=ti3le
sudo: required
- os: linux
env: TARGET_MACHINE=a6le
- os: linux
env: TARGET_MACHINE=ta6le
dist: trusty
addons:
apt:
packages:
- gcc-multilib
- lib32ncurses5-dev
- libx32ncurses5-dev
# macOS
- env: TARGET_MACHINE=i3osx
os: osx
- env: TARGET_MACHINE=ti3osx
os: osx
- env: TARGET_MACHINE=a6osx
os: osx
- env: TARGET_MACHINE=ta6osx
os: osx

# Linux
- env: TARGET_MACHINE=i3le
os: linux
addons:
apt:
packages:
- gcc-multilib
- lib32ncurses5-dev
- libx32ncurses5-dev
- uuid-dev:i386
- env: TARGET_MACHINE=ti3le
os: linux
addons:
apt:
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:
- .travis/dobuild.sh
- .travis/build.sh
- .travis/test.sh
15 changes: 15 additions & 0 deletions .travis/build.sh
Original file line number Diff line number Diff line change
@@ -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'
27 changes: 0 additions & 27 deletions .travis/dobuild.sh

This file was deleted.

21 changes: 21 additions & 0 deletions .travis/test.sh
Original file line number Diff line number Diff line change
@@ -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
17 changes: 9 additions & 8 deletions BUILDING
Original file line number Diff line number Diff line change
Expand Up @@ -196,19 +196,20 @@ The make file supports several targets:

WINDOWS

Building Chez Scheme under 64-bit Windows with Cygwin or Bash/WSL
follows the instructions above, except that 'make install' and 'make
uninstall' are not supported. On Bash/WSL, the build directory must be
in a location with a Windows path such as /mnt/c, and the 'OS'
environment variable must be set to 'Windows_NT' to indicate a build
for Windows, as opposed to a build for Linux on Windows:
Building Chez Scheme under 64-bit Windows with Bash/WSL, MinGW/MSYS,
or Cygwin follows the instructions above, except that 'make install'
and 'make uninstall' are not supported. On Bash/WSL, the build
directory must be in a location with a Windows path such as /mnt/c,
and the 'OS' environment variable must be set to 'Windows_NT' to
indicate a build for Windows, as opposed to a build for Linux on
Windows:

env OS=Windows_NT ./configure
env OS=Windows_NT make

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
* WiX Toolset (for making an install)

Expand Down Expand Up @@ -251,7 +252,7 @@ http://gnuwin32.sourceforge.net/packages/libiconv.htm

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
should be affected.
Expand Down
3 changes: 3 additions & 0 deletions LOG
Original file line number Diff line number Diff line change
Expand Up @@ -1356,3 +1356,6 @@
- fix incorrect uses of fxzero? x86.ss backend, since a 32-bit
immediate is not necessarily a fixnum
x86.ss
- added MinGW/MSYS build support for Windows and configuration for
Travis-CI testing of all Windows builds
BUILDING, .travis*, wininstall/Makefile
1 change: 1 addition & 0 deletions wininstall/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
VERSION := 9.5.3
WIXEXTENSIONS := -ext WixUIExtension -ext WixBalExtension
export MSYS_NO_PATHCONV=1

ChezScheme.exe: x86/bundle.wixobj ChezScheme32.msi ChezScheme64.msi
cmd.exe /c light.bat -nologo $(WIXEXTENSIONS) $< -out $@
Expand Down

0 comments on commit e44a209

Please sign in to comment.