aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--install.bat92
1 files changed, 74 insertions, 18 deletions
diff --git a/install.bat b/install.bat
index 568bc0f0..88ea283e 100644
--- a/install.bat
+++ b/install.bat
@@ -2,7 +2,7 @@
2 2
3REM Boy, it feels like 1994 all over again. 3REM Boy, it feels like 1994 all over again.
4 4
5SETLOCAL 5SETLOCAL ENABLEDELAYEDEXPANSION
6 6
7SET PREFIX=C:\LuaRocks 7SET PREFIX=C:\LuaRocks
8SET VERSION=2.0 8SET VERSION=2.0
@@ -16,12 +16,16 @@ SET LUA_PREFIX=
16SET LUA_BINDIR= 16SET LUA_BINDIR=
17SET LUA_INCDIR= 17SET LUA_INCDIR=
18SET LUA_LIBDIR= 18SET LUA_LIBDIR=
19SET LUA_LIBNAME=
19SET FORCE_CONFIG= 20SET FORCE_CONFIG=
20SET MKDIR=.\bin\mkdir -p 21SET MKDIR=.\bin\mkdir -p
22SET LUA_LIB_NAMES=lua5.1.lib lua51.dll liblua.dll.a
21 23
22REM *********************************************************** 24REM ***********************************************************
23REM Option parser 25REM Option parser
24REM *********************************************************** 26REM ***********************************************************
27ECHO LuaRocks %VERSION%.x installer.
28ECHO.
25 29
26:PARSE_LOOP 30:PARSE_LOOP
27IF [%1]==[] GOTO DONE_PARSING 31IF [%1]==[] GOTO DONE_PARSING
@@ -29,7 +33,7 @@ IF [%1]==[/?] (
29 ECHO Installs LuaRocks. 33 ECHO Installs LuaRocks.
30 ECHO. 34 ECHO.
31 ECHO /P [dir] Where to install. 35 ECHO /P [dir] Where to install.
32 ECHO Default is %PREFIX% (version; %VERSION%, will be 36 ECHO Default is %PREFIX% ^(version; %VERSION%, will be
33 ECHO appended to this path^) 37 ECHO appended to this path^)
34 ECHO /CONFIG [dir] Location where the config file should be installed. 38 ECHO /CONFIG [dir] Location where the config file should be installed.
35 ECHO Default is same place of installation 39 ECHO Default is same place of installation
@@ -39,8 +43,7 @@ IF [%1]==[/?] (
39 ECHO Default is TREE/bin. 43 ECHO Default is TREE/bin.
40 ECHO. 44 ECHO.
41 ECHO /L Install LuaRocks' own copy of Lua even if detected. 45 ECHO /L Install LuaRocks' own copy of Lua even if detected.
42 ECHO (/LUA, /INC, /LIB, /BIN will be ignored when used 46 ECHO ^(/LUA, /INC, /LIB, /BIN cannot be used with /L^)
43 ECHO with /L^)
44 ECHO /LUA [dir] Location where Lua is installed - e.g. c:\lua\5.1\ 47 ECHO /LUA [dir] Location where Lua is installed - e.g. c:\lua\5.1\
45 ECHO This is the base directory, the installer will look 48 ECHO This is the base directory, the installer will look
46 ECHO for subdirectories bin, lib, include. Alternatively 49 ECHO for subdirectories bin, lib, include. Alternatively
@@ -138,6 +141,14 @@ ECHO Unrecognized option: %1
138GOTO ERROR 141GOTO ERROR
139:DONE_PARSING 142:DONE_PARSING
140 143
144REM check for combination flags
145IF [%INSTALL_LUA%]==[ON] (
146 IF NOT [%LUA_INCDIR%%LUA_BINDIR%%LUA_LIBDIR%%LUA_PREFIX%]==[] (
147 ECHO Cannot combine option /L with any of /LUA /BIN /LIB /INC
148 GOTO ERROR
149 )
150)
151
141SET FULL_PREFIX=%PREFIX%\%VERSION% 152SET FULL_PREFIX=%PREFIX%\%VERSION%
142 153
143SET BINDIR=%FULL_PREFIX% 154SET BINDIR=%FULL_PREFIX%
@@ -151,20 +162,25 @@ REM ***********************************************************
151 162
152IF [%INSTALL_LUA%]==[ON] GOTO USE_OWN_LUA 163IF [%INSTALL_LUA%]==[ON] GOTO USE_OWN_LUA
153 164
165ECHO Looking for Lua interpreter
154FOR %%L IN (%LUA_PREFIX% c:\lua\5.1.2 c:\lua c:\kepler\1.1) DO ( 166FOR %%L IN (%LUA_PREFIX% c:\lua\5.1.2 c:\lua c:\kepler\1.1) DO (
167 ECHO checking %%L
155 SET CURR=%%L 168 SET CURR=%%L
156 IF EXIST "%%L" ( 169 IF EXIST "%%L" (
157 IF NOT [%LUA_BINDIR%]==[] ( 170 IF NOT [%LUA_BINDIR%]==[] (
158 IF EXIST %LUA_BINDIR%\lua5.1.exe ( 171 IF EXIST %LUA_BINDIR%\lua5.1.exe (
159 SET LUA_INTERPRETER=lua5.1.exe 172 SET LUA_INTERPRETER=lua5.1.exe
173 ECHO Found .\!LUA_INTERPRETER!
160 GOTO INTERPRETER_IS_SET 174 GOTO INTERPRETER_IS_SET
161 ) 175 )
162 IF EXIST %LUA_BINDIR%\lua.exe ( 176 IF EXIST %LUA_BINDIR%\lua.exe (
163 SET LUA_INTERPRETER=lua.exe 177 SET LUA_INTERPRETER=lua.exe
178 ECHO Found .\!LUA_INTERPRETER!
164 GOTO INTERPRETER_IS_SET 179 GOTO INTERPRETER_IS_SET
165 ) 180 )
166 IF EXIST %LUA_BINDIR%\luajit.exe ( 181 IF EXIST %LUA_BINDIR%\luajit.exe (
167 SET LUA_INTERPRETER=luajit.exe 182 SET LUA_INTERPRETER=luajit.exe
183 ECHO Found .\!LUA_INTERPRETER!
168 GOTO INTERPRETER_IS_SET 184 GOTO INTERPRETER_IS_SET
169 ) 185 )
170 ECHO Lua executable lua.exe, luajit.exe or lua5.1.exe not found in %LUA_BINDIR% 186 ECHO Lua executable lua.exe, luajit.exe or lua5.1.exe not found in %LUA_BINDIR%
@@ -175,51 +191,78 @@ FOR %%L IN (%LUA_PREFIX% c:\lua\5.1.2 c:\lua c:\kepler\1.1) DO (
175 IF EXIST "%%L%%E\lua5.1.exe" ( 191 IF EXIST "%%L%%E\lua5.1.exe" (
176 SET LUA_INTERPRETER=lua5.1.exe 192 SET LUA_INTERPRETER=lua5.1.exe
177 SET LUA_BINDIR=%%L%%E 193 SET LUA_BINDIR=%%L%%E
194 ECHO Found .\%%E\!LUA_INTERPRETER!
178 GOTO INTERPRETER_IS_SET 195 GOTO INTERPRETER_IS_SET
179 ) 196 )
180 IF EXIST "%%L%%E\lua.exe" ( 197 IF EXIST "%%L%%E\lua.exe" (
181 SET LUA_INTERPRETER=lua.exe 198 SET LUA_INTERPRETER=lua.exe
182 SET LUA_BINDIR=%%L%%E 199 SET LUA_BINDIR=%%L%%E
200 ECHO Found .\%%E\!LUA_INTERPRETER!
183 GOTO INTERPRETER_IS_SET 201 GOTO INTERPRETER_IS_SET
184 ) 202 )
185 IF EXIST "%%L%%E\luajit.exe" ( 203 IF EXIST "%%L%%E\luajit.exe" (
186 SET LUA_INTERPRETER=luajit.exe 204 SET LUA_INTERPRETER=luajit.exe
187 SET LUA_BINDIR=%%L%%E 205 SET LUA_BINDIR=%%L%%E
206 ECHO Found .\%%E\!LUA_INTERPRETER!
188 GOTO INTERPRETER_IS_SET 207 GOTO INTERPRETER_IS_SET
189 ) 208 )
190 ) 209 )
210 ECHO No Lua interpreter found
191 GOTO TRY_NEXT_LUA_DIR 211 GOTO TRY_NEXT_LUA_DIR
192 :INTERPRETER_IS_SET 212 :INTERPRETER_IS_SET
193 IF NOT "%LUA_LIBDIR%"=="" ( 213 ECHO Interpreter found, now looking for link libraries...
194 IF EXIST %LUA_LIBDIR%\lua5.1.lib GOTO LIBDIR_IS_SET 214 IF NOT [%LUA_LIBDIR%]==[] (
195 ECHO lua5.1.lib not found in %LUA_LIBDIR% 215 FOR %%T IN (%LUA_LIB_NAMES%) DO (
216 ECHO checking for %LUA_LIBDIR%\%%T
217 IF EXIST "%LUA_LIBDIR%\%%T" (
218 SET LUA_LIBNAME=%%T
219 ECHO Found %%T
220 GOTO LIBDIR_IS_SET
221 )
222 )
223 ECHO link library ^(one of; %LUA_LIB_NAMES%^) not found in %LUA_LIBDIR%
196 GOTO ERROR 224 GOTO ERROR
197 ) 225 )
198 FOR %%E IN (\ \lib\ \bin\) DO ( 226 FOR %%E IN (\ \lib\ \bin\) DO (
199 IF EXIST "%CURR%%%E\lua5.1.lib" ( 227 FOR %%S IN (%LUA_LIB_NAMES%) DO (
200 SET LUA_LIBDIR=%CURR%%%E 228 ECHO checking for %CURR%%%E\%%S
201 GOTO LIBDIR_IS_SET 229 IF EXIST "%CURR%%%E\%%S" (
230 SET LUA_LIBDIR=%CURR%%%E
231 SET LUA_LIBNAME=%%S
232 ECHO Found %%S
233 GOTO LIBDIR_IS_SET
234 )
202 ) 235 )
203 ) 236 )
204 GOTO TRY_NEXT_LUA_DIR 237 GOTO TRY_NEXT_LUA_DIR
205 :LIBDIR_IS_SET 238 :LIBDIR_IS_SET
239 ECHO Link library found, now looking for headers...
206 IF NOT [%LUA_INCDIR%]==[] ( 240 IF NOT [%LUA_INCDIR%]==[] (
207 IF EXIST %LUA_INCDIR%\lua.h GOTO INCDIR_IS_SET 241 ECHO checking for %LUA_INCDIR%\lua.h
242 IF EXIST %LUA_INCDIR%\lua.h (
243 ECHO Found lua.h
244 GOTO INCDIR_IS_SET
245 )
208 ECHO lua.h not found in %LUA_INCDIR% 246 ECHO lua.h not found in %LUA_INCDIR%
209 GOTO ERROR 247 GOTO ERROR
210 ) 248 )
211 FOR %%E IN (\ \include\) DO ( 249 FOR %%E IN (\ \include\) DO (
250 ECHO checking for %CURR%%%E\lua.h
212 IF EXIST "%CURR%%%E\lua.h" ( 251 IF EXIST "%CURR%%%E\lua.h" (
213 SET LUA_INCDIR=%CURR%%%E 252 SET LUA_INCDIR=%CURR%%%E
253 ECHO Found lua.h
214 GOTO INCDIR_IS_SET 254 GOTO INCDIR_IS_SET
215 ) 255 )
216 ) 256 )
217 GOTO TRY_NEXT_LUA_DIR 257 GOTO TRY_NEXT_LUA_DIR
218 :INCDIR_IS_SET 258 :INCDIR_IS_SET
219 %LUA_BINDIR%\%LUA_INTERPRETER% -v 2>NUL 259 ECHO Headers found, now testing interpreter...
260 %LUA_BINDIR%\%LUA_INTERPRETER% -v 2>NUL
220 IF NOT ERRORLEVEL 1 ( 261 IF NOT ERRORLEVEL 1 (
262 ECHO Ok
221 GOTO LUA_IS_SET 263 GOTO LUA_IS_SET
222 ) 264 )
265 ECHO Interpreter returned an error, not ok
223 ) 266 )
224:TRY_NEXT_LUA_DIR 267:TRY_NEXT_LUA_DIR
225 REM wtf 268 REM wtf
@@ -232,13 +275,16 @@ SET LUA_INTERPRETER=lua5.1
232SET LUA_BINDIR=%BINDIR% 275SET LUA_BINDIR=%BINDIR%
233SET LUA_LIBDIR=%LIBDIR% 276SET LUA_LIBDIR=%LIBDIR%
234SET LUA_INCDIR=%INCDIR% 277SET LUA_INCDIR=%INCDIR%
278SET LUA_LIBNAME=lua5.1.lib
235:LUA_IS_SET 279:LUA_IS_SET
236ECHO. 280ECHO.
237ECHO Will configure LuaRocks with the following paths: 281ECHO Will configure LuaRocks with the following paths:
238ECHO Lua interpreter: %LUA_INTERPRETER% 282ECHO LuaRocks : %FULL_PREFIX%
239ECHO Lua binaries: %LUA_BINDIR% 283ECHO Lua interpreter: %LUA_BINDIR%\%LUA_INTERPRETER%
240ECHO Lua libraries: %LUA_LIBDIR% 284ECHO Lua binaries : %LUA_BINDIR%
241ECHO Lua includes: %LUA_INCDIR% 285ECHO Lua libraries : %LUA_LIBDIR%
286ECHO Lua includes : %LUA_INCDIR%
287ECHO Binaries will be linked against: %LUA_LIBNAME%
242ECHO. 288ECHO.
243 289
244REM *********************************************************** 290REM ***********************************************************
@@ -248,6 +294,7 @@ REM ***********************************************************
248IF [%FORCE%]==[ON] ( 294IF [%FORCE%]==[ON] (
249 ECHO Removing %FULL_PREFIX%... 295 ECHO Removing %FULL_PREFIX%...
250 RD /S /Q "%FULL_PREFIX%" 296 RD /S /Q "%FULL_PREFIX%"
297 ECHO.
251) 298)
252 299
253IF NOT EXIST "%FULL_PREFIX%" GOTO NOT_EXIST_PREFIX 300IF NOT EXIST "%FULL_PREFIX%" GOTO NOT_EXIST_PREFIX
@@ -348,6 +395,14 @@ IF NOT EXIST "%CONFIG_FILE%" (
348 ECHO [[%ROCKS_TREE%]]>> "%CONFIG_FILE%" 395 ECHO [[%ROCKS_TREE%]]>> "%CONFIG_FILE%"
349 ECHO }>> "%CONFIG_FILE%" 396 ECHO }>> "%CONFIG_FILE%"
350 IF NOT [%SCRIPTS_DIR%]==[] ECHO scripts_dir=[[%SCRIPTS_DIR%]]>> "%CONFIG_FILE%" 397 IF NOT [%SCRIPTS_DIR%]==[] ECHO scripts_dir=[[%SCRIPTS_DIR%]]>> "%CONFIG_FILE%"
398 ECHO variables = {>> "%CONFIG_FILE%"
399 IF [%USE_MINGW%]==[ON] (
400 ECHO MSVCRT = 'm',>> "%CONFIG_FILE%"
401 ) ELSE (
402 ECHO MSVCRT = 'msvcr80',>> "%CONFIG_FILE%"
403 )
404 ECHO LUALIB = '%LUA_LIB_NAME%'>> "%CONFIG_FILE%"
405 ECHO }>> "%CONFIG_FILE%"
351 ECHO Created LuaRocks config file: %CONFIG_FILE% 406 ECHO Created LuaRocks config file: %CONFIG_FILE%
352) ELSE ( 407) ELSE (
353 ECHO LuaRocks config file already exists: %CONFIG_FILE% 408 ECHO LuaRocks config file already exists: %CONFIG_FILE%
@@ -373,18 +428,19 @@ REM Exit handlers
373REM *********************************************************** 428REM ***********************************************************
374 429
375ECHO. 430ECHO.
431ECHO *** LuaRocks is installed! ***
432ECHO.
376ECHO You may want to add the following elements to your paths; 433ECHO You may want to add the following elements to your paths;
377ECHO PATH : %LUA_BINDIR%;%FULL_PREFIX% 434ECHO PATH : %LUA_BINDIR%;%FULL_PREFIX%
378ECHO LUA_PATH : %ROCKS_TREE%\share\lua\5.1\?.lua;%ROCKS_TREE%\share\lua\5.1\?\init.lua 435ECHO LUA_PATH : %ROCKS_TREE%\share\lua\5.1\?.lua;%ROCKS_TREE%\share\lua\5.1\?\init.lua
379ECHO LUA_CPATH: %LUA_LIBDIR%\lua\5.1\?.dll 436ECHO LUA_CPATH: %LUA_LIBDIR%\lua\5.1\?.dll
380ECHO. 437ECHO.
381ECHO LuaRocks is installed!
382:QUIT 438:QUIT
383ENDLOCAL 439ENDLOCAL
384EXIT /B 0 440EXIT /B 0
385 441
386:ERROR 442:ERROR
387ECHO. 443ECHO.
388ECHO Failed installing LuaRocks. 444ECHO Failed installing LuaRocks. Run with /? for help.
389ENDLOCAL 445ENDLOCAL
390EXIT /B 1 446EXIT /B 1