From 6e07f248cdebc8ea020bfed9108194694e2e1e45 Mon Sep 17 00:00:00 2001 From: Gareth Rees Date: Thu, 20 Mar 2014 18:52:46 +0000 Subject: [PATCH] Open dylan continuous integration test (first draft). Copied from Perforce Change: 184914 ServerID: perforce.ravenbrook.com --- mps/tool/testopendylan | 157 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100755 mps/tool/testopendylan diff --git a/mps/tool/testopendylan b/mps/tool/testopendylan new file mode 100755 index 00000000000..a7a34b258a4 --- /dev/null +++ b/mps/tool/testopendylan @@ -0,0 +1,157 @@ +#!/bin/sh +# +# Ravenbrook +# +# +# TESTOPENDYLAN -- TEST THE MPS WITH OPENDYLAN +# +# Gareth Rees, Ravenbrook Limited, 2014-03-20 +# +# +# 1. INTRODUCTION +# +# This shell script pulls Open Dylan from GitHub and builds it against +# the MPS. + + +# 2. CONFIGURATION + +# MPS sources we are testing against +MPS=$(cd -- "$(dirname "$0")/.." && pwd) + +# OpenDylan version for bootstrapping +VERSION=2013.2 + +# OpenDylan git repository +REMOTE=https://github.com/dylan-lang/opendylan.git + +# Directory to put everything in +TESTDIR="$PWD/.test" +mkdir -p -- "$TESTDIR" +cd -- "$TESTDIR" + + +# 3. PROCEDURE + +# 3.1. Clone the git repository and pull. See [OPENDYLAN]. + +REPO=opendylan + +if [ -d "$REPO" ]; then + echo "$REPO exists: skipping clone." +else + echo "cloning $REMOTE into $REPO." + git clone --recursive -- "$REMOTE" "$REPO" +fi +( + cd -- "$REPO" && + git pull; +) + + +# 3.2. Download the binary distribution, for bootstrapping. See [DOWNLOAD]. + +UNAME=$(uname -m)-$(uname -s) +case "$UNAME" in + i686-Linux) + PLATFORM=x86-linux ;; + *) + echo "Platform $UNAME not supported." + exit 1 +esac + +URL="http://opendylan.org/downloads/opendylan/$VERSION/opendylan-$VERSION-$PLATFORM.tar.bz2" +PACKAGE=$(basename "$URL") +PACKAGE_DIR="opendylan-$VERSION" + +if [ -f "$PACKAGE" ]; then + echo "$PACKAGE exists: skipping download." +else + echo "Downloading $URL..." + curl --url "$URL" --output "$PACKAGE" +fi + +if [ -d "$PACKAGE_DIR" ]; then + echo "$PACKAGE_DIR exists: skipping unpack." +else + echo "Unpacking $PACKAGE..." + bunzip2 --stdout "$PACKAGE" | tar xf - +fi + + +# 3.3. Set up PATH and check that the compiler runs. + +PATH="$PWD/$PACKAGE_DIR/bin:$PATH" +export PATH +COMPILER_VERSION=$(dylan-compiler -version) + +if [ "$COMPILER_VERSION" != "Version $VERSION" ]; then + echo "Unexpected version: $COMPILER_VERSION" + exit 1 +fi + + +# 3.4. Configure and build. See "Building" section of [WELCOME]. + +PREFIX="$PWD/prefix" + +if [ -f "$REPO/Makefile" ]; then + echo "$REPO/Makefile exists: skipping configure" +else ( + cd -- "$REPO" && + ./autogen.sh && + ./configure --with-mps="$MPS" --prefix="$PREFIX" +) fi +( + cd -- "$REPO" && + make 3-stage-bootstrap +) + + +# A. REFERENCES +# +# [DOWNLOAD] "Open Dylan Downloads" +# +# +# [OPENDYLAN] "dylan-lang/opendylan project on GitHub" +# +# +# [WELCOME] "Welcome to Open Dylan!" +# +# +# +# B. DOCUMENT HISTORY +# +# 2014-03-20 GDR Created based on [WELCOME]. +# +# +# C. COPYRIGHT AND LICENCE +# +# Copyright (c) 2014 Ravenbrook Ltd. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# +# $Id: //info.ravenbrook.com/project/mps/master/tool/branch.py#1 $