1#! /bin/bash 2 3# A script for setting up environment for travis-ci testing. 4# Sets up Lua and Luarocks. 5# LUA must be "lua5.1", "lua5.2" or "luajit". 6# luajit2.0 - master v2.0 7# luajit2.1 - master v2.1 8 9set -eufo pipefail 10 11LUAJIT_VERSION="2.0.4" 12LUAJIT_BASE="LuaJIT-$LUAJIT_VERSION" 13 14source .travis/platform.sh 15 16LUA_HOME_DIR=$TRAVIS_BUILD_DIR/install/lua 17 18LR_HOME_DIR=$TRAVIS_BUILD_DIR/install/luarocks 19 20mkdir $HOME/.lua 21 22LUAJIT="no" 23 24if [ "$PLATFORM" == "macosx" ]; then 25 if [ "$LUA" == "luajit" ]; then 26 LUAJIT="yes"; 27 fi 28 if [ "$LUA" == "luajit2.0" ]; then 29 LUAJIT="yes"; 30 fi 31 if [ "$LUA" == "luajit2.1" ]; then 32 LUAJIT="yes"; 33 fi; 34elif [ "$(expr substr $LUA 1 6)" == "luajit" ]; then 35 LUAJIT="yes"; 36fi 37 38mkdir -p "$LUA_HOME_DIR" 39 40if [ "$LUAJIT" == "yes" ]; then 41 42 if [ "$LUA" == "luajit" ]; then 43 curl --location https://github.com/LuaJIT/LuaJIT/archive/v$LUAJIT_VERSION.tar.gz | tar xz; 44 else 45 git clone https://github.com/LuaJIT/LuaJIT.git $LUAJIT_BASE; 46 fi 47 48 cd $LUAJIT_BASE 49 50 if [ "$LUA" == "luajit2.1" ]; then 51 git checkout v2.1; 52 # force the INSTALL_TNAME to be luajit 53 perl -i -pe 's/INSTALL_TNAME=.+/INSTALL_TNAME= luajit/' Makefile 54 fi 55 56 make && make install PREFIX="$LUA_HOME_DIR" 57 58 ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/luajit 59 ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/lua; 60 61else 62 63 if [ "$LUA" == "lua5.1" ]; then 64 curl http://www.lua.org/ftp/lua-5.1.5.tar.gz | tar xz 65 cd lua-5.1.5; 66 elif [ "$LUA" == "lua5.2" ]; then 67 curl http://www.lua.org/ftp/lua-5.2.4.tar.gz | tar xz 68 cd lua-5.2.4; 69 elif [ "$LUA" == "lua5.3" ]; then 70 curl http://www.lua.org/ftp/lua-5.3.4.tar.gz | tar xz 71 cd lua-5.3.4; 72 fi 73 74 # Build Lua without backwards compatibility for testing 75 perl -i -pe 's/-DLUA_COMPAT_(ALL|5_2)//' src/Makefile 76 make $PLATFORM 77 make INSTALL_TOP="$LUA_HOME_DIR" install; 78 79 ln -s $LUA_HOME_DIR/bin/lua $HOME/.lua/lua 80 ln -s $LUA_HOME_DIR/bin/luac $HOME/.lua/luac; 81 82fi 83 84cd $TRAVIS_BUILD_DIR 85 86lua -v 87 88LUAROCKS_BASE=luarocks-$LUAROCKS 89 90curl --location http://luarocks.org/releases/$LUAROCKS_BASE.tar.gz | tar xz 91 92cd $LUAROCKS_BASE 93 94if [ "$LUA" == "luajit" ]; then 95 ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR"; 96elif [ "$LUA" == "luajit2.0" ]; then 97 ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR"; 98elif [ "$LUA" == "luajit2.1" ]; then 99 ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.1" --prefix="$LR_HOME_DIR"; 100else 101 ./configure --with-lua="$LUA_HOME_DIR" --prefix="$LR_HOME_DIR" 102fi 103 104make build && make install 105 106ln -s $LR_HOME_DIR/bin/luarocks $HOME/.lua/luarocks 107 108cd $TRAVIS_BUILD_DIR 109 110luarocks --version 111 112rm -rf $LUAROCKS_BASE 113 114if [ "$LUAJIT" == "yes" ]; then 115 rm -rf $LUAJIT_BASE; 116elif [ "$LUA" == "lua5.1" ]; then 117 rm -rf lua-5.1.5; 118elif [ "$LUA" == "lua5.2" ]; then 119 rm -rf lua-5.2.4; 120elif [ "$LUA" == "lua5.3" ]; then 121 rm -rf lua-5.3.4; 122fi 123