aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--install.bat69
1 files changed, 60 insertions, 9 deletions
diff --git a/install.bat b/install.bat
index f6601aa8..c085de40 100644
--- a/install.bat
+++ b/install.bat
@@ -41,6 +41,32 @@ local function die(message)
41 os.exit(1) 41 os.exit(1)
42end 42end
43 43
44function split_string(str, delim, maxNb)
45 -- Eliminate bad cases...
46 if string.find(str, delim) == nil then
47 return { str }
48 end
49 if maxNb == nil or maxNb < 1 then
50 maxNb = 0 -- No limit
51 end
52 local result = {}
53 local pat = "(.-)" .. delim .. "()"
54 local nb = 0
55 local lastPos
56 for part, pos in string.gmatch(str, pat) do
57 nb = nb + 1
58 result[nb] = part
59 lastPos = pos
60 if nb == maxNb then break end
61 end
62 -- Handle the last field
63 if nb ~= maxNb then
64 result[nb + 1] = string.sub(str, lastPos)
65 end
66 return result
67end
68
69
44local function exec(cmd) 70local function exec(cmd)
45 --print(cmd) 71 --print(cmd)
46 local status = os.execute(cmd) 72 local status = os.execute(cmd)
@@ -180,6 +206,7 @@ end
180-- *********************************************************** 206-- ***********************************************************
181local function look_for_interpreter (directory) 207local function look_for_interpreter (directory)
182 if vars.LUA_BINDIR then 208 if vars.LUA_BINDIR then
209 -- if LUA_BINDIR is specified, it must be there, otherwise we fail
183 if exists( S"$LUA_BINDIR\\lua$LUA_VERSION.exe" ) then 210 if exists( S"$LUA_BINDIR\\lua$LUA_VERSION.exe" ) then
184 vars.LUA_INTERPRETER = S"lua$LUA_VERSION.exe" 211 vars.LUA_INTERPRETER = S"lua$LUA_VERSION.exe"
185 print(S" Found $LUA_BINDIR\\$LUA_INTERPRETER") 212 print(S" Found $LUA_BINDIR\\$LUA_INTERPRETER")
@@ -309,9 +336,31 @@ end
309 336
310local function look_for_lua_install () 337local function look_for_lua_install ()
311 print("Looking for Lua interpreter") 338 print("Looking for Lua interpreter")
312 local directories = { [[c:\lua5.1.2]], [[c:\lua]], [[c:\kepler\1.1]] } 339 local directories
313 if vars.LUA_PREFIX then 340 if vars.LUA_PREFIX then
314 table.insert(directories, 1, vars.LUA_PREFIX) 341 directories = { vars.LUA_PREFIX }
342 else
343 -- no prefix given, so use path
344 directories = (os.getenv("PATH",";") or "")
345 local i = 1
346 while i ~= 0 do directories, i = directories:gsub(";;",";") end --remove all doubles
347 directories = split_string(directories,";")
348 -- if a path element ends with "\bin\" then remove it, as the searcher will check there anyway
349 for i, val in ipairs(directories) do
350 -- remove trailing backslash
351 while val:sub(-1,-1) == "\\" and val:sub(-2,-1) ~= ":\\" do
352 val = val:sub(1,-2)
353 end
354 -- remove trailing 'bin'
355 if val:upper():sub(-4,-1) == "\\BIN" or val:upper():sub(-4,-1) == ":BIN" then
356 val = val:sub(1,-5)
357 end
358 directories[i] = val
359 end
360 -- finaly add some other default paths
361 table.insert(directories, [[c:\lua5.1.2]])
362 table.insert(directories, [[c:\lua]])
363 table.insert(directories, [[c:\kepler\1.1]])
315 end 364 end
316 if vars.LUA_BINDIR and vars.LUA_LIBDIR and vars.LUA_INCDIR then 365 if vars.LUA_BINDIR and vars.LUA_LIBDIR and vars.LUA_INCDIR then
317 if look_for_interpreter(vars.LUA_BINDIR) and 366 if look_for_interpreter(vars.LUA_BINDIR) and
@@ -397,13 +446,10 @@ vars.LUADIR = S"$FULL_PREFIX\\lua"
397vars.INCDIR = S"$FULL_PREFIX\\include" 446vars.INCDIR = S"$FULL_PREFIX\\include"
398vars.LUA_SHORTV = vars.LUA_VERSION:gsub("%.", "") 447vars.LUA_SHORTV = vars.LUA_VERSION:gsub("%.", "")
399 448
400if not look_for_lua_install() then 449if INSTALL_LUA then
401 print("Could not find Lua. Will install its own copy.")
402 print("See /? for options for specifying the location of Lua.")
403 if vars.LUA_VERSION ~= "5.1" then 450 if vars.LUA_VERSION ~= "5.1" then
404 die("Cannot install own copy because no 5.2 version is bundled") 451 die("Cannot install own copy because no 5.2 version is bundled")
405 end 452 end
406 INSTALL_LUA = true
407 vars.LUA_INTERPRETER = "lua5.1" 453 vars.LUA_INTERPRETER = "lua5.1"
408 vars.LUA_BINDIR = vars.BINDIR 454 vars.LUA_BINDIR = vars.BINDIR
409 vars.LUA_LIBDIR = vars.LIBDIR 455 vars.LUA_LIBDIR = vars.LIBDIR
@@ -412,8 +458,13 @@ if not look_for_lua_install() then
412 vars.LUA_RUNTIME = "MSVCR80" 458 vars.LUA_RUNTIME = "MSVCR80"
413 vars.UNAME_M = "x86" 459 vars.UNAME_M = "x86"
414else 460else
415 vars.UNAME_M = get_architecture() 461 if not look_for_lua_install() then
416 print(S[[ 462 die("Could not find Lua. See /? for options for specifying the location of Lua, or installing a bundled copy of Lua 5.1.")
463 end
464 vars.UNAME_M = get_architecture() -- can only do when installation was found
465end
466
467print(S[[
417 468
418Will configure LuaRocks with the following paths: 469Will configure LuaRocks with the following paths:
419LuaRocks : $FULL_PREFIX 470LuaRocks : $FULL_PREFIX
@@ -425,7 +476,7 @@ Binaries will be linked against: $LUA_LIBNAME with runtime $LUA_RUNTIME
425System architecture detected as: $UNAME_M 476System architecture detected as: $UNAME_M
426 477
427]]) 478]])
428end 479
429 480
430-- *********************************************************** 481-- ***********************************************************
431-- Install LuaRocks files 482-- Install LuaRocks files