Merge branch 'feature/syncLuaTravis' into develop
[luaevent.git] / .travis / setup_lua.sh
blob6dcc0c6ee1fac7d826f609c3561c75b91253ec0b
1 #! /bin/bash
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
9 set -eufo pipefail
11 LUAJIT_VERSION="2.0.4"
12 LUAJIT_BASE="LuaJIT-$LUAJIT_VERSION"
14 source .travis/platform.sh
16 LUA_HOME_DIR=$TRAVIS_BUILD_DIR/install/lua
18 LR_HOME_DIR=$TRAVIS_BUILD_DIR/install/luarocks
20 mkdir $HOME/.lua
22 LUAJIT="no"
24 if [ "$PLATFORM" == "macosx" ]; then
25 if [ "$LUA" == "luajit" ]; then
26 LUAJIT="yes";
28 if [ "$LUA" == "luajit2.0" ]; then
29 LUAJIT="yes";
31 if [ "$LUA" == "luajit2.1" ]; then
32 LUAJIT="yes";
33 fi;
34 elif [ "$(expr substr $LUA 1 6)" == "luajit" ]; then
35 LUAJIT="yes";
38 mkdir -p "$LUA_HOME_DIR"
40 if [ "$LUAJIT" == "yes" ]; then
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;
48 cd $LUAJIT_BASE
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
56 make && make install PREFIX="$LUA_HOME_DIR"
58 ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/luajit
59 ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/lua;
61 else
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.2.tar.gz | tar xz
71 cd lua-5.3.2;
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;
79 ln -s $LUA_HOME_DIR/bin/lua $HOME/.lua/lua
80 ln -s $LUA_HOME_DIR/bin/luac $HOME/.lua/luac;
84 cd $TRAVIS_BUILD_DIR
86 lua -v
88 LUAROCKS_BASE=luarocks-$LUAROCKS
90 curl --location http://luarocks.org/releases/$LUAROCKS_BASE.tar.gz | tar xz
92 cd $LUAROCKS_BASE
94 if [ "$LUA" == "luajit" ]; then
95 ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR";
96 elif [ "$LUA" == "luajit2.0" ]; then
97 ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR";
98 elif [ "$LUA" == "luajit2.1" ]; then
99 ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.1" --prefix="$LR_HOME_DIR";
100 else
101 ./configure --with-lua="$LUA_HOME_DIR" --prefix="$LR_HOME_DIR"
104 make build && make install
106 ln -s $LR_HOME_DIR/bin/luarocks $HOME/.lua/luarocks
108 cd $TRAVIS_BUILD_DIR
110 luarocks --version
112 rm -rf $LUAROCKS_BASE
114 if [ "$LUAJIT" == "yes" ]; then
115 rm -rf $LUAJIT_BASE;
116 elif [ "$LUA" == "lua5.1" ]; then
117 rm -rf lua-5.1.5;
118 elif [ "$LUA" == "lua5.2" ]; then
119 rm -rf lua-5.2.4;
120 elif [ "$LUA" == "lua5.3" ]; then
121 rm -rf lua-5.3.2;