diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 633 |
1 files changed, 303 insertions, 330 deletions
@@ -1,74 +1,44 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | # A basic configure script for LuaRocks. | ||
4 | # Not doing any fancy shell stuff here to keep good compatibility. | ||
5 | |||
6 | # Defaults | 3 | # Defaults |
7 | 4 | ||
8 | PREFIX="/usr/local" | 5 | PREFIX="/usr/local" |
9 | SYSCONFDIR="$PREFIX/etc/luarocks" | 6 | SYSCONFDIR="$PREFIX/etc/luarocks" |
10 | ROCKS_TREE="$PREFIX" | 7 | ROCKS_TREE="$PREFIX" |
11 | LUA_SUFFIX="" | ||
12 | LUA_DIR="/usr" | ||
13 | LUA_BINDIR="/usr/bin" | ||
14 | LUA_INCDIR="/usr/include" | ||
15 | LUA_LIBDIR="/usr/lib" | ||
16 | LUA_VERSION="5.1" | ||
17 | MULTIARCH_SUBDIR="" | ||
18 | 8 | ||
19 | # ---------------------------------------------------------------------------- | 9 | # ---------------------------------------------------------------------------- |
20 | # FUNCTION DEFINITIONS | 10 | # FUNCTION DEFINITIONS |
21 | # ---------------------------------------------------------------------------- | 11 | # ---------------------------------------------------------------------------- |
22 | 12 | ||
23 | # Help | 13 | # Utility functions |
14 | # ----------------- | ||
24 | 15 | ||
25 | show_help() { | 16 | # Resolves a full path |
26 | cat <<EOF | 17 | # - alternative to "readlink -f", which is not available on solaris |
27 | Configure LuaRocks. | 18 | # based on https://stackoverflow.com/a/6554854/1793220 |
28 | 19 | canonicalpath() { | |
29 | --help This help. | 20 | oldpwd="$PWD" |
30 | --prefix=DIR Prefix where LuaRocks should be installed. | 21 | if [ -d "$1" ] |
31 | Default is $PREFIX | 22 | then |
32 | --sysconfdir=DIR Location where the config file should be installed. | 23 | if cd "$1" >/dev/null 2>&1 |
33 | Default is \$PREFIX/etc/luarocks | 24 | then |
34 | 25 | echo "$PWD" | |
35 | Where to install files installed by rocks, to make the accessible to Lua and | 26 | else |
36 | your \$PATH. Beware of clashes between files installed by LuaRocks and by your | 27 | echo "$1" |
37 | system's package manager. | 28 | fi |
38 | 29 | else | |
39 | --rocks-tree=DIR Root of the local tree of installed rocks. | 30 | if cd "$(dirname "$1")" >/dev/null 2>&1 |
40 | Default is \$PREFIX | 31 | then |
41 | 32 | echo "$PWD/$(basename "$1")" | |
42 | --lua-version=VERSION Use specific Lua version: 5.1, 5.2, 5.3, or 5.4 | 33 | else |
43 | Default is auto-detected. | 34 | echo "$1" |
44 | --lua-suffix=SUFFIX Versioning suffix to use in Lua filenames. | 35 | fi |
45 | Default is "$LUA_SUFFIX" (lua$LUA_SUFFIX...) | 36 | fi |
46 | --with-lua=PREFIX Use Lua from given prefix. | 37 | cd "$oldpwd" >/dev/null 2>&1 || return |
47 | Default is auto-detected (the parent directory of \$LUA_BINDIR). | ||
48 | --with-lua-bin=DIR You can also specify Lua's bin dir. | ||
49 | Default is the directory of the auto-detected Lua interpreter, | ||
50 | or \$LUA_DIR/bin if --with-lua is used. | ||
51 | --with-lua-include=DIR You can also specify Lua's includes dir. | ||
52 | Default is \$LUA_DIR/include | ||
53 | --with-lua-lib=DIR You can also specify Lua's libraries dir. | ||
54 | Default is \$LUA_DIR/lib | ||
55 | --with-downloader=TOOL Which tool to use as a downloader. | ||
56 | Valid options are: curl, wget. | ||
57 | Default is to auto-detect. | ||
58 | --with-md5-checker=TOOL Which tool to use as a downloader. | ||
59 | Valid options are: md5sum, openssl | ||
60 | Default is to auto-detect. | ||
61 | --force-config Use a single config location. Do not use the | ||
62 | \$LUAROCKS_CONFIG variable or the user's home | ||
63 | directory. Useful to avoid conflicts when LuaRocks | ||
64 | is embedded within an application. | ||
65 | EOF | ||
66 | } | 38 | } |
67 | 39 | ||
68 | # Helper functions | ||
69 | |||
70 | find_program() { | 40 | find_program() { |
71 | prog=`command -v "$1" 2>/dev/null` | 41 | prog=$(command -v "$1" 2>/dev/null) |
72 | if [ -n "$prog" ] | 42 | if [ -n "$prog" ] |
73 | then | 43 | then |
74 | dirname "$prog" | 44 | dirname "$prog" |
@@ -78,37 +48,154 @@ find_program() { | |||
78 | die() { | 48 | die() { |
79 | echo "$*" | 49 | echo "$*" |
80 | echo | 50 | echo |
81 | echo "configure failed." | 51 | RED "configure failed." |
52 | echo | ||
82 | echo | 53 | echo |
83 | exit 1 | 54 | exit 1 |
84 | } | 55 | } |
85 | 56 | ||
86 | find_helper() { | 57 | echo_n() { |
87 | explanation="$1" | 58 | printf "%s" "$*" |
88 | shift | 59 | } |
89 | tried="$*" | 60 | |
90 | while [ -n "$1" ] | 61 | bold='\033[1m' |
91 | do | 62 | red='\033[1;31m' |
92 | found=`find_program "$1"` | 63 | green='\033[1;32m' |
93 | if [ -n "$found" ] | 64 | blue='\033[1;36m' |
65 | reset='\033[0m' | ||
66 | |||
67 | BOLD() { | ||
68 | printf "$bold%s$reset" "$*" | ||
69 | } | ||
70 | |||
71 | RED() { | ||
72 | printf "$red%s$reset" "$*" | ||
73 | } | ||
74 | |||
75 | GREEN() { | ||
76 | printf "$green%s$reset" "$*" | ||
77 | } | ||
78 | |||
79 | BLUE() { | ||
80 | printf "$blue%s$reset" "$*" | ||
81 | } | ||
82 | |||
83 | # Help | ||
84 | # ---- | ||
85 | |||
86 | show_help() { | ||
87 | cat <<EOF | ||
88 | |||
89 | Configure the build process of LuaRocks. | ||
90 | |||
91 | --help This help. | ||
92 | |||
93 | Where to install LuaRocks: | ||
94 | -------------------------- | ||
95 | |||
96 | --prefix=PREFIX Directory where LuaRocks should be installed. | ||
97 | - Default is $PREFIX | ||
98 | --sysconfdir=SYSCONFDIR Where the config file should be installed. | ||
99 | - Default is $SYSCONFDIR | ||
100 | (PREFIX/etc/luarocks) | ||
101 | |||
102 | Where to install files provided by rocks: | ||
103 | ----------------------------------------- | ||
104 | |||
105 | --rocks-tree=ROCKS_DIR Root of the local tree of installed rocks. | ||
106 | To make files installed in this location | ||
107 | accessible to Lua and your \$PATH, see | ||
108 | "luarocks path --help" after installation. | ||
109 | Avoid using paths controlled by your | ||
110 | system's package manager, such as /usr. | ||
111 | - Default is $PREFIX | ||
112 | (PREFIX) | ||
113 | |||
114 | Where is your Lua interpreter: | ||
115 | ------------------------------ | ||
116 | |||
117 | --lua-version=VERSION) Use specific Lua version: 5.1, 5.2, 5.3, or 5.4 | ||
118 | - Default is auto-detected. | ||
119 | --with-lua=LUA_DIR) Use Lua from given directory. | ||
120 | - Default is auto-detected from your \$PATH | ||
121 | (or the parent directory of LUA_BINDIR | ||
122 | if --with-lua-bin is used). | ||
123 | --with-lua-bin=LUA_BINDIR) You can also specify Lua's bin dir. | ||
124 | - Default is the directory of the | ||
125 | auto-detected Lua interpreter, | ||
126 | (or LUA_DIR/bin if --with-lua is used) | ||
127 | --with-lua-include=LUA_INCDIR) Lua's includes dir. | ||
128 | - Default is LUA_DIR/include | ||
129 | --with-lua-lib=LUA_LIBDIR) Lua's libraries dir. | ||
130 | - Default is LUA_DIR/lib | ||
131 | |||
132 | For specialized uses of LuaRocks: | ||
133 | --------------------------------- | ||
134 | |||
135 | --force-config) Force using a single config location. | ||
136 | Do not honor the \$LUAROCKS_CONFIG_5_x | ||
137 | or \$LUAROCKS_CONFIG environment | ||
138 | variable or the user's local config. | ||
139 | Useful to avoid conflicts when LuaRocks | ||
140 | is embedded within an application. | ||
141 | |||
142 | EOF | ||
143 | } | ||
144 | |||
145 | # Lua detection | ||
146 | # ------------- | ||
147 | |||
148 | detect_lua_version() { | ||
149 | detected_lua=$($1 -e 'print(_VERSION:match(" (5%.[1234])$"))' 2> /dev/null) | ||
150 | if [ "$detected_lua" != "nil" ] | ||
151 | then | ||
152 | if [ "$LUA_VERSION_SET" != "yes" ] | ||
94 | then | 153 | then |
95 | echo "$1 found at $found" | 154 | echo "Lua version detected: $(GREEN "$detected_lua")" |
96 | HELPER=$1 | 155 | LUA_VERSION=$detected_lua |
97 | return | 156 | return 0 |
157 | elif [ "$LUA_VERSION" = "$detected_lua" ] | ||
158 | then | ||
159 | return 0 | ||
98 | fi | 160 | fi |
99 | shift | 161 | fi |
100 | done | 162 | return 1 |
101 | echo "Could not find $explanation. Tried: $tried." | ||
102 | die "Make sure one of them is installed and available in your PATH." | ||
103 | } | 163 | } |
104 | 164 | ||
105 | case `echo -n x` in | 165 | search_interpreter() { |
106 | -n*) echo_n_flag='';; | 166 | suffix="$1" |
107 | *) echo_n_flag='-n';; | 167 | lua_at="" |
108 | esac | 168 | if [ "$LUA_BINDIR_SET" = "yes" ] |
109 | 169 | then | |
110 | echo_n() { | 170 | lua_at="$LUA_BINDIR" |
111 | echo $echo_n_flag "$*" | 171 | elif [ "$LUA_DIR_SET" = "yes" ] |
172 | then | ||
173 | LUA_BINDIR="$LUA_DIR/bin" | ||
174 | if [ -f "$LUA_BINDIR/lua$suffix" ] | ||
175 | then | ||
176 | lua_at="$LUA_BINDIR" | ||
177 | fi | ||
178 | else | ||
179 | lua_at=$(find_program "lua$suffix") | ||
180 | fi | ||
181 | if [ -n "$lua_at" ] && [ -x "$lua_at/lua$suffix" ] | ||
182 | then | ||
183 | if detect_lua_version "$lua_at/lua$suffix" | ||
184 | then | ||
185 | echo "Lua interpreter found: $(GREEN "$lua_at/lua$suffix")" | ||
186 | if [ "$LUA_BINDIR_SET" != "yes" ] | ||
187 | then | ||
188 | LUA_BINDIR="$lua_at" | ||
189 | fi | ||
190 | if [ "$LUA_DIR_SET" != "yes" ] | ||
191 | then | ||
192 | LUA_DIR=$(dirname "$lua_at") | ||
193 | fi | ||
194 | LUA_INTERPRETER="lua$suffix" | ||
195 | return 0 | ||
196 | fi | ||
197 | fi | ||
198 | return 1 | ||
112 | } | 199 | } |
113 | 200 | ||
114 | # ---------------------------------------------------------------------------- | 201 | # ---------------------------------------------------------------------------- |
@@ -119,89 +206,97 @@ echo_n() { | |||
119 | 206 | ||
120 | while [ -n "$1" ] | 207 | while [ -n "$1" ] |
121 | do | 208 | do |
122 | value="`echo $1 | sed 's/[^=]*.\(.*\)/\1/'`" | 209 | value="$(echo "$1" | sed 's/[^=]*.\(.*\)/\1/')" |
123 | key="`echo $1 | sed 's/=.*//'`" | 210 | key="$(echo "$1" | sed 's/=.*//')" |
124 | if `echo "$value" | grep "~" >/dev/null 2>/dev/null` | 211 | if echo "$value" | grep "~" >/dev/null 2>/dev/null |
125 | then | 212 | then |
126 | echo | 213 | echo |
127 | echo '*WARNING*: the "~" sign is not expanded in flags.' | 214 | echo "$(RED WARNING:) the '~' sign is not expanded in flags." |
128 | echo 'If you mean the home directory, use $HOME instead.' | 215 | echo "If you mean the home directory, use \$HOME instead." |
129 | echo | 216 | echo |
130 | fi | 217 | fi |
131 | case "$key" in | 218 | case "$key" in |
219 | |||
220 | # Help | ||
221 | # ---- | ||
132 | --help) | 222 | --help) |
133 | show_help | 223 | show_help |
134 | exit 0 | 224 | exit 0 |
135 | ;; | 225 | ;; |
226 | |||
227 | # Where to install LuaRocks: | ||
228 | # -------------------------- | ||
136 | --prefix) | 229 | --prefix) |
137 | [ -n "$value" ] || die "Missing value in flag $key." | 230 | [ -n "$value" ] || die "Missing value in flag $key." |
138 | PREFIX="$value" | 231 | PREFIX="$(canonicalpath "$value")" |
139 | PREFIX_SET=yes | 232 | PREFIX_SET=yes |
140 | ;; | 233 | ;; |
141 | --sysconfdir) | 234 | --sysconfdir) |
142 | [ -n "$value" ] || die "Missing value in flag $key." | 235 | [ -n "$value" ] || die "Missing value in flag $key." |
143 | SYSCONFDIR="$value" | 236 | SYSCONFDIR="$(canonicalpath "$value")" |
144 | SYSCONFDIR_SET=yes | 237 | SYSCONFDIR_SET=yes |
145 | ;; | 238 | ;; |
239 | |||
240 | |||
241 | # Where to install files provided by rocks: | ||
242 | # ----------------------------------------- | ||
146 | --rocks-tree) | 243 | --rocks-tree) |
147 | [ -n "$value" ] || die "Missing value in flag $key." | 244 | [ -n "$value" ] || die "Missing value in flag $key." |
148 | ROCKS_TREE="$value" | 245 | ROCKS_TREE="$(canonicalpath "$value")" |
149 | ROCKS_TREE_SET=yes | 246 | ROCKS_TREE_SET=yes |
150 | ;; | 247 | ;; |
151 | --force-config) | 248 | |
152 | FORCE_CONFIG=yes | 249 | # Where is your Lua interpreter: |
153 | ;; | 250 | # ------------------------------ |
154 | --versioned-rocks-dir) | ||
155 | echo "--versioned-rocks-dir is no longer necessary." | ||
156 | echo "The rocks tree in LuaRocks 3.0 is always versioned." | ||
157 | ;; | ||
158 | --lua-suffix) | ||
159 | [ -n "$value" ] || die "Missing value in flag $key." | ||
160 | LUA_SUFFIX="$value" | ||
161 | LUA_SUFFIX_SET=yes | ||
162 | ;; | ||
163 | --lua-version|--with-lua-version) | 251 | --lua-version|--with-lua-version) |
164 | [ -n "$value" ] || die "Missing value in flag $key." | 252 | [ -n "$value" ] || die "Missing value in flag $key." |
165 | LUA_VERSION="$value" | 253 | LUA_VERSION="$value" |
166 | [ "$LUA_VERSION" = "5.1" -o "$LUA_VERSION" = "5.2" -o "$LUA_VERSION" = "5.3" -o "$LUA_VERSION" = "5.4" ] || die "Invalid Lua version in flag $key." | 254 | case "$LUA_VERSION" in |
255 | 5.1|5.2|5.3|5.4) ;; | ||
256 | *) die "Invalid Lua version in flag $key." | ||
257 | esac | ||
167 | LUA_VERSION_SET=yes | 258 | LUA_VERSION_SET=yes |
168 | ;; | 259 | ;; |
169 | --with-lua) | 260 | --with-lua) |
170 | [ -n "$value" ] || die "Missing value in flag $key." | 261 | [ -n "$value" ] || die "Missing value in flag $key." |
171 | LUA_DIR="$value" | 262 | LUA_DIR="$(canonicalpath "$value")" |
263 | [ -d "$LUA_DIR" ] || die "Bad value for --with-lua: $LUA_DIR is not a valid directory." | ||
172 | LUA_DIR_SET=yes | 264 | LUA_DIR_SET=yes |
173 | ;; | 265 | ;; |
174 | --with-lua-bin) | 266 | --with-lua-bin) |
175 | [ -n "$value" ] || die "Missing value in flag $key." | 267 | [ -n "$value" ] || die "Missing value in flag $key." |
176 | LUA_BINDIR="$value" | 268 | LUA_BINDIR="$(canonicalpath "$value")" |
269 | [ -d "$LUA_BINDIR" ] || die "Bad value for --with-lua-bin: $LUA_BINDIR is not a valid directory." | ||
177 | LUA_BINDIR_SET=yes | 270 | LUA_BINDIR_SET=yes |
178 | ;; | 271 | ;; |
179 | --with-lua-include) | 272 | --with-lua-include) |
180 | [ -n "$value" ] || die "Missing value in flag $key." | 273 | [ -n "$value" ] || die "Missing value in flag $key." |
181 | LUA_INCDIR="$value" | 274 | LUA_INCDIR="$(canonicalpath "$value")" |
182 | LUA_INCDIR_SET=yes | 275 | [ -d "$LUA_INCDIR" ] || die "Bad value for --with-lua-include: $LUA_INCDIR is not a valid directory." |
183 | ;; | 276 | ;; |
184 | --with-lua-lib) | 277 | --with-lua-lib) |
185 | [ -n "$value" ] || die "Missing value in flag $key." | 278 | [ -n "$value" ] || die "Missing value in flag $key." |
186 | LUA_LIBDIR="$value" | 279 | LUA_LIBDIR="$(canonicalpath "$value")" |
187 | LUA_LIBDIR_SET=yes | 280 | [ -d "$LUA_LIBDIR" ] || die "Bad value for --with-lua-lib: $LUA_LIBDIR is not a valid directory." |
188 | ;; | 281 | ;; |
189 | --with-downloader) | 282 | |
190 | [ -n "$value" ] || die "Missing value in flag $key." | 283 | # For specialized uses of LuaRocks: |
191 | case "$value" in | 284 | # --------------------------------- |
192 | wget|curl) LUAROCKS_DOWNLOADER="$value" ;; | 285 | --force-config) |
193 | *) die "Invalid option: $value. See --help." ;; | 286 | FORCE_CONFIG=yes |
194 | esac | ||
195 | LUAROCKS_DOWNLOADER_SET=yes | ||
196 | ;; | 287 | ;; |
197 | --with-md5-checker) | 288 | |
198 | [ -n "$value" ] || die "Missing value in flag $key." | 289 | # Old options that no longer apply |
199 | case "$value" in | 290 | # -------------------------------- |
200 | md5sum|openssl|md5) LUAROCKS_MD5CHECKER="$value" ;; | 291 | --versioned-rocks-dir) |
201 | *) die "Invalid option: $value. See --help." ;; | 292 | echo "--versioned-rocks-dir is no longer necessary." |
202 | esac | 293 | echo "The rocks tree in LuaRocks 3.0 is always versioned." |
203 | LUAROCKS_MD5CHECKER_SET=yes | ||
204 | ;; | 294 | ;; |
295 | --lua-suffix) | ||
296 | echo "--lua-suffix is no longer necessary." | ||
297 | echo "The suffix is automatically detected." | ||
298 | ;; | ||
299 | |||
205 | *) | 300 | *) |
206 | die "Error: Unknown flag: $1" | 301 | die "Error: Unknown flag: $1" |
207 | ;; | 302 | ;; |
@@ -209,7 +304,16 @@ do | |||
209 | shift | 304 | shift |
210 | done | 305 | done |
211 | 306 | ||
212 | if [ "$PREFIX_SET" = "yes" -a ! "$SYSCONFDIR_SET" = "yes" ] | 307 | echo |
308 | BLUE "Configuring LuaRocks..." | ||
309 | echo | ||
310 | echo | ||
311 | |||
312 | # ---------------------------------------- | ||
313 | # Derive options from the ones given | ||
314 | # ---------------------------------------- | ||
315 | |||
316 | if [ "$PREFIX_SET" = "yes" ] && [ ! "$SYSCONFDIR_SET" = "yes" ] | ||
213 | then | 317 | then |
214 | if [ "$PREFIX" = "/usr" ] | 318 | if [ "$PREFIX" = "/usr" ] |
215 | then SYSCONFDIR=/etc/luarocks | 319 | then SYSCONFDIR=/etc/luarocks |
@@ -217,260 +321,129 @@ then | |||
217 | fi | 321 | fi |
218 | fi | 322 | fi |
219 | 323 | ||
220 | 324 | if [ "$PREFIX_SET" = "yes" ] && [ ! "$ROCKS_TREE_SET" = "yes" ] | |
221 | if [ "$PREFIX_SET" = "yes" -a ! "$ROCKS_TREE_SET" = "yes" ] | ||
222 | then | 325 | then |
223 | ROCKS_TREE=$PREFIX | 326 | ROCKS_TREE=$PREFIX |
224 | fi | 327 | fi |
225 | 328 | ||
226 | detect_lua_version() { | 329 | # ---------------------------------------- |
227 | detected_lua=`$1 -e 'print(_VERSION:match(" (5%.[1234])$"))' 2> /dev/null` | 330 | # Search for Lua |
228 | if [ "$detected_lua" != "nil" ] | 331 | # ---------------------------------------- |
229 | then | ||
230 | if [ "$LUA_VERSION_SET" != "yes" ] | ||
231 | then | ||
232 | echo "Lua version detected: $detected_lua" | ||
233 | LUA_VERSION=$detected_lua | ||
234 | return 0 | ||
235 | elif [ "$LUA_VERSION" = "$detected_lua" ] | ||
236 | then | ||
237 | return 0 | ||
238 | fi | ||
239 | fi | ||
240 | return 1 | ||
241 | } | ||
242 | |||
243 | search_interpreter() { | ||
244 | suffix="$1" | ||
245 | if [ "$LUA_BINDIR_SET" = "yes" ] | ||
246 | then | ||
247 | find_lua="$LUA_BINDIR" | ||
248 | elif [ "$LUA_DIR_SET" = "yes" ] | ||
249 | then | ||
250 | LUA_BINDIR="$LUA_DIR/bin" | ||
251 | if [ -f "$LUA_BINDIR/lua$suffix" ] | ||
252 | then | ||
253 | find_lua="$LUA_BINDIR" | ||
254 | fi | ||
255 | else | ||
256 | find_lua=`find_program lua$suffix` | ||
257 | fi | ||
258 | if [ -n "$find_lua" -a -x "$find_lua/lua$suffix" ] | ||
259 | then | ||
260 | if detect_lua_version "$find_lua/lua$suffix" | ||
261 | then | ||
262 | echo "Lua interpreter found: $find_lua/lua$suffix..." | ||
263 | if [ "$LUA_BINDIR_SET" != "yes" ] | ||
264 | then | ||
265 | LUA_BINDIR="$find_lua" | ||
266 | fi | ||
267 | if [ "$LUA_DIR_SET" != "yes" ] | ||
268 | then | ||
269 | LUA_DIR=`dirname "$find_lua"` | ||
270 | fi | ||
271 | LUA_SUFFIX="$suffix" | ||
272 | return 0 | ||
273 | fi | ||
274 | fi | ||
275 | return 1 | ||
276 | } | ||
277 | 332 | ||
278 | lua_interp_found=no | 333 | lua_interp_found=no |
279 | if [ "$LUA_SUFFIX_SET" != "yes" ] | 334 | |
280 | then | 335 | case "$LUA_VERSION" in |
281 | if [ "$LUA_VERSION_SET" = "yes" -a "$LUA_VERSION" = "5.1" ] | 336 | 5.1) |
282 | then | 337 | suffixes="5.1 51 -5.1 -51 jit" |
283 | suffixes="5.1 51 -5.1 -51" | 338 | ;; |
284 | elif [ "$LUA_VERSION_SET" = "yes" -a "$LUA_VERSION" = "5.2" ] | 339 | 5.2) |
285 | then | 340 | suffixes="5.2 52 -5.2 -52" |
286 | suffixes="5.2 52 -5.2 -52" | 341 | ;; |
287 | elif [ "$LUA_VERSION_SET" = "yes" -a "$LUA_VERSION" = "5.3" ] | 342 | 5.3) |
288 | then | 343 | suffixes="5.3 53 -5.3 -53" |
289 | suffixes="5.4 54 -5.4 -54" | 344 | ;; |
290 | elif [ "$LUA_VERSION_SET" = "yes" -a "$LUA_VERSION" = "5.4" ] | 345 | 5.4) |
291 | then | 346 | suffixes="5.4 54 -5.4 -54" |
292 | suffixes="5.3 53 -5.3 -53" | 347 | ;; |
293 | else | 348 | *) |
294 | suffixes="5.4 54 -5.4 -54 5.3 53 -5.3 -53 5.2 52 -5.2 -52 5.1 51 -5.1 -51" | 349 | suffixes="5.4 54 -5.4 -54 5.3 53 -5.3 -53 5.2 52 -5.2 -52 5.1 51 -5.1 -51 jit" |
295 | fi | 350 | ;; |
296 | for suffix in `echo $suffixes` "" | 351 | esac |
297 | do | 352 | |
298 | search_interpreter "$suffix" && { | 353 | for suffix in $suffixes "" |
299 | lua_interp_found=yes | 354 | do |
300 | break | 355 | search_interpreter "$suffix" && { |
301 | } | ||
302 | done | ||
303 | else | ||
304 | search_interpreter "$LUA_SUFFIX" && { | ||
305 | lua_interp_found=yes | 356 | lua_interp_found=yes |
357 | break | ||
306 | } | 358 | } |
307 | fi | 359 | done |
308 | 360 | ||
309 | if [ "$lua_interp_found" != "yes" ] | 361 | if [ "$lua_interp_found" != "yes" ] |
310 | then | 362 | then |
311 | [ "$LUA_VERSION_SET" ] && { interp="Lua $LUA_VERSION" ;} || { interp="Lua" ;} | 363 | if [ "$LUA_VERSION_SET" ] |
312 | [ "$LUA_DIR_SET" -o "$LUA_BINDIR_SET" ] && { where="$LUA_BINDIR" ;} || { where="\$PATH" ;} | ||
313 | echo "$interp interpreter not found in $where" | ||
314 | die "You may want to use the flags --with-lua, --with-lua-bin and/or --lua-suffix. See --help." | ||
315 | fi | ||
316 | |||
317 | if [ "$LUA_VERSION_SET" = "yes" ] | ||
318 | then | ||
319 | echo_n "Checking if $LUA_BINDIR/lua$LUA_SUFFIX is Lua version $LUA_VERSION... " | ||
320 | if detect_lua_version "$LUA_BINDIR/lua$LUA_SUFFIX" | ||
321 | then | 364 | then |
322 | echo "yes" | 365 | interp="Lua $LUA_VERSION" |
323 | else | 366 | else |
324 | echo "no" | 367 | interp="Lua" |
325 | die "You may want to use the flags --with-lua, --with-lua-bin and/or --lua-suffix. See --help." | ||
326 | fi | 368 | fi |
327 | fi | 369 | if [ "$LUA_DIR_SET" ] || [ "$LUA_BINDIR_SET" ] |
328 | |||
329 | if [ "$LUA_INCDIR_SET" != "yes" ] | ||
330 | then | ||
331 | LUA_INCDIR="$LUA_DIR/include" | ||
332 | fi | ||
333 | |||
334 | if [ "$LUA_LIBDIR_SET" != "yes" ] | ||
335 | then | ||
336 | LUA_LIBDIR="$LUA_DIR/lib" | ||
337 | fi | ||
338 | |||
339 | echo_n "Checking Lua includes... " | ||
340 | lua_h="$LUA_INCDIR/lua.h" | ||
341 | if [ -f "$lua_h" ] | ||
342 | then | ||
343 | echo "lua.h found in $lua_h" | ||
344 | else | ||
345 | v_dir="$LUA_INCDIR/lua/$LUA_VERSION" | ||
346 | lua_h="$v_dir/lua.h" | ||
347 | if [ -f "$lua_h" ] | ||
348 | then | 370 | then |
349 | echo "lua.h found in $lua_h" | 371 | where="$LUA_BINDIR" |
350 | LUA_INCDIR="$v_dir" | ||
351 | else | 372 | else |
352 | d_dir="$LUA_INCDIR/lua$LUA_VERSION" | 373 | where="\$PATH" |
353 | lua_h="$d_dir/lua.h" | ||
354 | if [ -f "$lua_h" ] | ||
355 | then | ||
356 | echo "lua.h found in $lua_h (Debian/Ubuntu)" | ||
357 | LUA_INCDIR="$d_dir" | ||
358 | else | ||
359 | echo "lua.h not found (looked in $LUA_INCDIR, $v_dir, $d_dir)" | ||
360 | die "You may want to use the flag --with-lua or --with-lua-include. See --help." | ||
361 | fi | ||
362 | fi | 374 | fi |
375 | echo "$(RED $interp interpreter not found) in $where" | ||
376 | echo "You may want to use the flags $(BOLD --with-lua), $(BOLD --with-lua-bin) and/or $(BOLD --lua-version)" | ||
377 | die "Run $(BOLD ./configure --help) for details." | ||
363 | fi | 378 | fi |
364 | 379 | ||
365 | echo_n "Checking if Lua header version matches that of the interpreter... " | 380 | if [ "$LUA_VERSION_SET" = "yes" ] |
366 | header_version=$(sed -n 's/.*LUA_VERSION_NUM.*5.\(.\).*/5.\1/p' "$lua_h") | ||
367 | if [ "$header_version" = "$LUA_VERSION" ] | ||
368 | then | ||
369 | echo "yes" | ||
370 | else | ||
371 | echo "no" | ||
372 | echo "lua.h version mismatch (interpreter: $LUA_VERSION; lua.h: $header_version)." | ||
373 | die "You may want to use the flag --with-lua or --with-lua-include. See --help." | ||
374 | fi | ||
375 | |||
376 | |||
377 | if [ "$LUAROCKS_DOWNLOADER_SET" != "yes" ] | ||
378 | then | ||
379 | find_helper "a downloader helper program" curl wget fetch | ||
380 | LUAROCKS_DOWNLOADER=$HELPER | ||
381 | fi | ||
382 | |||
383 | if [ "$LUAROCKS_MD5CHECKER_SET" != "yes" ] | ||
384 | then | ||
385 | find_helper "a MD5 checksum calculator" md5sum openssl md5 | ||
386 | LUAROCKS_MD5CHECKER=$HELPER | ||
387 | fi | ||
388 | |||
389 | find_helper "an 'unzip' program" unzip | ||
390 | |||
391 | echo_n "Configuring for system... " | ||
392 | if uname -s | ||
393 | then | ||
394 | LUAROCKS_UNAME_S=`uname -s` | ||
395 | else | ||
396 | die "Could not determine operating system. 'uname -s' failed." | ||
397 | fi | ||
398 | echo_n "Configuring for architecture... " | ||
399 | if uname -m | ||
400 | then | ||
401 | LUAROCKS_UNAME_M=`uname -m` | ||
402 | else | ||
403 | die "Could not determine processor architecture. 'uname -m' failed." | ||
404 | fi | ||
405 | |||
406 | for v in 5.1 5.2 5.3 5.4; do | ||
407 | if [ "$v" != "$LUA_VERSION" ]; then | ||
408 | if [ -e "$PREFIX/share/lua/$v/luarocks/site_config.lua" ]; then | ||
409 | LUA_OTHER_VERSION="$v" | ||
410 | break | ||
411 | fi | ||
412 | fi | ||
413 | done | ||
414 | |||
415 | if [ "$LUAROCKS_UNAME_S" = Linux ] | ||
416 | then | 381 | then |
417 | GCC_ARCH=`gcc -print-multiarch 2>/dev/null` | 382 | echo_n "Checking if $LUA_BINDIR/$LUA_INTERPRETER is Lua version $LUA_VERSION... " |
418 | if [ -n "$GCC_ARCH" -a -d "/usr/lib/$GCC_ARCH" ] | 383 | if detect_lua_version "$LUA_BINDIR/$LUA_INTERPRETER" |
419 | then | ||
420 | MULTIARCH_SUBDIR="lib/$GCC_ARCH" | ||
421 | elif [ -d "/usr/lib64" ] | ||
422 | then | 384 | then |
423 | # Useful for Fedora systems | 385 | echo "yes" |
424 | MULTIARCH_SUBDIR="lib64" | 386 | else |
387 | echo "no" | ||
388 | die "You may want to use the flags --with-lua, --with-lua-bin and/or --lua-version. See --help." | ||
425 | fi | 389 | fi |
426 | fi | 390 | fi |
427 | 391 | ||
428 | if [ -f config.unix ]; then | 392 | unzip_found=$(find_program "unzip") |
429 | rm -f config.unix | 393 | if [ -n "$unzip_found" ] |
394 | then | ||
395 | echo "unzip found in PATH: $(GREEN "$unzip_found")" | ||
396 | else | ||
397 | RED "Could not find 'unzip'." | ||
398 | die "Make sure it is installed and available in your PATH." | ||
430 | fi | 399 | fi |
431 | 400 | ||
432 | SITE_CONFIG=src/luarocks/core/site_config_$(echo "$LUA_VERSION" | sed 's,\.,_,').lua | ||
433 | |||
434 | # Write config | 401 | # Write config |
435 | 402 | ||
436 | echo "Writing configuration..." | 403 | make clean > /dev/null 2> /dev/null |
437 | echo | ||
438 | 404 | ||
439 | rm -f built | 405 | rm -f built |
440 | cat <<EOF > config.unix | 406 | cat <<EOF > config.unix |
441 | # This file was automatically generated by the configure script. | 407 | # This file was automatically generated by the configure script. |
442 | # Run "./configure --help" for details. | 408 | # Run "./configure --help" for details. |
443 | 409 | ||
444 | LUA_VERSION=$LUA_VERSION | ||
445 | SITE_CONFIG=$SITE_CONFIG | ||
446 | PREFIX=$PREFIX | 410 | PREFIX=$PREFIX |
447 | SYSCONFDIR=$SYSCONFDIR | 411 | SYSCONFDIR=$SYSCONFDIR |
448 | ROCKS_TREE=$ROCKS_TREE | 412 | ROCKS_TREE=$ROCKS_TREE |
449 | LUA_SUFFIX=$LUA_SUFFIX | 413 | LUA_VERSION=$LUA_VERSION |
414 | LUA_INTERPRETER=$LUA_INTERPRETER | ||
450 | LUA_DIR=$LUA_DIR | 415 | LUA_DIR=$LUA_DIR |
451 | LUA_DIR_SET=$LUA_DIR_SET | 416 | LUA_BINDIR=$LUA_BINDIR |
452 | LUA_INCDIR=$LUA_INCDIR | 417 | LUA_INCDIR=$LUA_INCDIR |
453 | LUA_LIBDIR=$LUA_LIBDIR | 418 | LUA_LIBDIR=$LUA_LIBDIR |
454 | LUA_BINDIR=$LUA_BINDIR | ||
455 | FORCE_CONFIG=$FORCE_CONFIG | 419 | FORCE_CONFIG=$FORCE_CONFIG |
456 | LUAROCKS_UNAME_M=$LUAROCKS_UNAME_M | ||
457 | LUAROCKS_UNAME_S=$LUAROCKS_UNAME_S | ||
458 | LUAROCKS_DOWNLOADER=$LUAROCKS_DOWNLOADER | ||
459 | LUAROCKS_MD5CHECKER=$LUAROCKS_MD5CHECKER | ||
460 | MULTIARCH_SUBDIR=$MULTIARCH_SUBDIR | ||
461 | |||
462 | EOF | 420 | EOF |
463 | 421 | ||
464 | echo "Installation prefix: $PREFIX" | 422 | { |
465 | echo "LuaRocks configuration directory: $SYSCONFDIR" | 423 | echo '-- LuaRocks configuration' |
466 | echo "Using Lua from: $LUA_DIR" | 424 | echo |
467 | 425 | echo 'rocks_trees = {' | |
468 | make clean > /dev/null 2> /dev/null | 426 | echo ' { name = "user", root = home .. "/.luarocks" },' |
427 | echo ' { name = "system", root = "'"$ROCKS_TREE"'" },' | ||
428 | echo '}' | ||
429 | if [ -n "$LUA_INTERPRETER" ]; then echo 'lua_interpreter = "'"$LUA_INTERPRETER"'"' ; fi | ||
430 | if [ -n "$LUA_DIR" ]; then echo 'variables.LUA_DIR = "'"$LUA_DIR"'"' ; fi | ||
431 | if [ -n "$LUA_INCDIR" ]; then echo 'variables.LUA_INCDIR = "'"$LUA_INCDIR"'"' ; fi | ||
432 | if [ -n "$LUA_BINDIR" ]; then echo 'variables.LUA_BINDIR = "'"$LUA_BINDIR"'"' ; fi | ||
433 | if [ -n "$LUA_LIBDIR" ]; then echo 'variables.LUA_LIBDIR = "'"$LUA_LIBDIR"'"' ; fi | ||
434 | } > "config-$LUA_VERSION.lua.in" | ||
469 | 435 | ||
470 | echo | 436 | echo |
471 | echo "Done configuring." | 437 | BLUE "Done configuring." |
472 | echo "- Type 'make build' and 'make install':" | 438 | echo |
439 | echo | ||
440 | echo "LuaRocks will be installed at......: $(GREEN "$PREFIX")" | ||
441 | echo "LuaRocks will install rocks at.....: $(GREEN "$ROCKS_TREE")" | ||
442 | echo "LuaRocks configuration directory...: $(GREEN "$SYSCONFDIR")" | ||
443 | echo "Using Lua from.....................: $(GREEN "$LUA_DIR")" | ||
444 | echo | ||
445 | echo "* Type $(BOLD make build) and $(BOLD make install):" | ||
473 | echo " to install to $PREFIX as usual." | 446 | echo " to install to $PREFIX as usual." |
474 | echo "- Type 'make bootstrap':" | 447 | echo "* Type $(BOLD make bootstrap):" |
475 | echo " to install LuaRocks in $PREFIX as a rock." | 448 | echo " to install LuaRocks into $ROCKS_TREE as a rock." |
476 | echo | 449 | echo |