-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconfigure
executable file
·190 lines (171 loc) · 5.23 KB
/
configure
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#!/bin/sh
while getopts "hv:" arg; do
case $arg in
h)
echo "Usage: configure [-h] [-v <Lua version>]"
echo "<Lua version> : \"5.4\", \"5.3\", \"5.2\" or \"5.1\""
exit 0
;;
v)
OPTLUAVERSION=$OPTARG
echo "Selected Lua version: $OPTLUAVERSION"
;;
esac
done
FIND=find
GREP=grep
DIRNAME=dirname
PKGCONFIG=pkg-config
LUAROCKS=luarocks
RED='\033[0;31m'
NOCOL='\033[0m'
LLVM_VERSION=`llvm-config --version | awk -F "." '{print $1}'`
echo "return $LLVM_VERSION" > examples/llvm_version.lua
if [ "$LLVM_VERSION" -lt "10" ] || [ "$LLVM_VERSION" -gt "17" ]; then
echo "${RED}ERR${NOCOL} mewa is not tested with the LLVM version $LLVM_VERSION!"
echo ""
fi
findLuaInclude() {
local VERSION=$1
local SEARCHPATH="$2"
local FILE=`$FIND $SEARCHPATH -name luaconf.h | $GREP $VERSION`
if [ x$FILE != 'x' ]; then
local RESULT=`$DIRNAME $FILE`
echo $RESULT
fi
}
findLuaLib() {
local VERSION=$1
local SEARCHPATH="$2"
local FILE=`$FIND $SEARCHPATH -name "liblua$VERSION.so"`
if [ x$FILE != 'x' ]; then
local RESULT=`$DIRNAME $FILE`
echo $RESULT
fi
}
findLuaBin() {
local VERSION=$1
local SEARCHPATH="$2"
local RESULT=`$FIND $SEARCHPATH -type f -name "lua$VERSION"`
if [ x$RESULT != 'x' ]; then
echo $RESULT
fi
}
writeLuaInclude() {
local VERSION=$1
local INCPATH=$2
local LIBPATH=$3
local BINPATH=$4
local CMODPATH=$5
echo "LUAVER := $VERSION" > Lua.inc
echo "LUAINC := $INCPATH" >> Lua.inc
echo "LUALIBDIR:= $LIBPATH" >> Lua.inc
echo "LUABIN := $BINPATH" >> Lua.inc
echo "LUALIBS := -llua$VERSION -L$LIBPATH" >> Lua.inc
echo "CMODPATH := $CMODPATH" >> Lua.inc
}
writePlatformInclude() {
UNAM=`uname -m -o`
if [ "X$UNAM" = "Xi686 GNU/Linux" ]; then
echo "TARGET := i686-pc-linux-gnu" > Platform.inc
elif [ "X$UNAM" = "Xx86_64 GNU/Linux" ]; then
echo "TARGET := x86_64-pc-linux-gnu" > Platform.inc
else
echo "TARGET := \"?? unknown, probing of 'target triple' in configure failed ??\"" > Platform.inc
>&2 echo "Failed to determine target triple used for tests! Some tests with the interpreter will fail."
fi
}
writeLuaModulePathsInclude() {
local VERSION=$1
$LUAROCKS --lua-version "$VERSION" path > LuaPath.inc
}
searchLuaVersionWithPkgConfig() {
local VERSION=$1
>&2 echo "Checking with pkg-config for version $VERSION ..."
$PKGCONFIG --exists lua$VERSION
if [ $? = 0 ]; then
local LUAVERSION=`$PKGCONFIG --variable=V lua$VERSION`
if [ x$LUAVERSION = 'x' ]; then
LUAVERSION=`$PKGCONFIG --variable=version lua$VERSION`
fi
if [ x$LUAVERSION != 'x' ]; then
local INCPATH="`$PKGCONFIG --variable=includedir lua$VERSION`/lua$VERSION"
local LIBPATH=`$PKGCONFIG --variable=libdir lua$VERSION`
local PREFIX=`$PKGCONFIG --variable=prefix lua$VERSION`
local CMODPATH=`$PKGCONFIG --variable=INSTALL_CMOD lua$VERSION`
if [ x$CMODPATH != 'x' ]; then
>&2 echo "$PKGCONFIG --variable=INSTALL_CMOD lua$VERSION => $CMODPATH"
else
CMODPATH="$LIBPATH/lua/$VERSION"
fi
if [ x$INCPATH != 'x' ] && [ x$LIBPATH != 'x' ] && [ x$PREFIX != 'x' ] ; then
local BINPATH="$PREFIX/bin/lua$VERSION"
writeLuaInclude $VERSION $INCPATH $LIBPATH $BINPATH $CMODPATH
writeLuaModulePathsInclude $VERSION
>&2 echo "$PKGCONFIG --variable=includedir lua$VERSION => $INCPATH"
>&2 echo "$PKGCONFIG --variable=libdir lua$VERSION => $LIBPATH"
>&2 echo "$PKGCONFIG --variable=prefix lua$VERSION => $PREFIX, BINPATH=$BINPATH"
>&2 echo "$PKGCONFIG --variable=version lua$VERSION => $LUAVERSION"
>&2 echo ""
>&2 echo "Wrote file Lua.inc:"
>&2 cat Lua.inc
writePlatformInclude
>&2 echo ""
>&2 echo "Wrote file Platform.inc:"
>&2 cat Platform.inc
exit 0
fi
fi
fi
}
searchLuaWithPkgConfig() {
if [ "x$OPTLUAVERSION" != "x" ]; then
searchLuaVersionWithPkgConfig $OPTLUAVERSION
else
for VERSION in 5.4 5.3 5.2 5.1 ; do
searchLuaVersionWithPkgConfig $VERSION
done
fi
}
searchLuaVersionWithRawFind() {
local VERSION=$1
>&2 echo "Raw search for version $VERSION ..."
local INCPATH=`findLuaInclude $VERSION "/usr/local/include /usr/include"`
local LIBPATH=`findLuaLib $VERSION "/usr/local/lib /usr/lib"`
local BINPATH=`findLuaBin $VERSION "/usr/bin /usr/local/bin"`
local CMODPATH="$LIBPATH/lua/$VERSION"
if [ x$INCPATH != 'x' ] && [ x$LIBPATH != 'x' ]; then
writeLuaInclude $VERSION $INCPATH $LIBPATH $BINPATH $CMODPATH
writeLuaModulePathsInclude $VERSION
>&2 echo "Lua include path = $INCPATH"
>&2 echo "Lua library path = $LIBPATH"
>&2 echo "Lua binary path = $BINPATH"
>&2 echo "Lua version = $VERSION"
>&2 echo "Lua cmod install path = $CMODPATH"
>&2 echo ""
>&2 echo "Wrote file Lua.inc:"
>&2 cat Lua.inc
writePlatformInclude
>&2 echo ""
>&2 echo "Wrote file Platform.inc:"
>&2 cat Platform.inc
exit 0
fi
}
searchLuaWithRawFind() {
if [ "x$OPTLUAVERSION" != "x" ]; then
searchLuaVersionWithRawFind $OPTLUAVERSION
else
for VERSION in 5.4 5.3 5.2 5.1 ; do
searchLuaVersionWithRawFind $VERSION
done
fi
}
searchLuaWithPkgConfig
>&2 echo "Failed to determine Lua package info with $PKGCONFIG, now searching with raw find ..."
searchLuaWithRawFind
if [ "x$OPTLUAVERSION" != "x" ]; then
>&2 echo "Lua installation (version $OPTLUAVERSION) not found!"
else
>&2 echo "Lua installation (version 5.1,5.2,5.3 or 5.4) not found!"
fi