diff options
-rw-r--r-- | install.bat | 92 |
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 | ||
3 | REM Boy, it feels like 1994 all over again. | 3 | REM Boy, it feels like 1994 all over again. |
4 | 4 | ||
5 | SETLOCAL | 5 | SETLOCAL ENABLEDELAYEDEXPANSION |
6 | 6 | ||
7 | SET PREFIX=C:\LuaRocks | 7 | SET PREFIX=C:\LuaRocks |
8 | SET VERSION=2.0 | 8 | SET VERSION=2.0 |
@@ -16,12 +16,16 @@ SET LUA_PREFIX= | |||
16 | SET LUA_BINDIR= | 16 | SET LUA_BINDIR= |
17 | SET LUA_INCDIR= | 17 | SET LUA_INCDIR= |
18 | SET LUA_LIBDIR= | 18 | SET LUA_LIBDIR= |
19 | SET LUA_LIBNAME= | ||
19 | SET FORCE_CONFIG= | 20 | SET FORCE_CONFIG= |
20 | SET MKDIR=.\bin\mkdir -p | 21 | SET MKDIR=.\bin\mkdir -p |
22 | SET LUA_LIB_NAMES=lua5.1.lib lua51.dll liblua.dll.a | ||
21 | 23 | ||
22 | REM *********************************************************** | 24 | REM *********************************************************** |
23 | REM Option parser | 25 | REM Option parser |
24 | REM *********************************************************** | 26 | REM *********************************************************** |
27 | ECHO LuaRocks %VERSION%.x installer. | ||
28 | ECHO. | ||
25 | 29 | ||
26 | :PARSE_LOOP | 30 | :PARSE_LOOP |
27 | IF [%1]==[] GOTO DONE_PARSING | 31 | IF [%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 | |||
138 | GOTO ERROR | 141 | GOTO ERROR |
139 | :DONE_PARSING | 142 | :DONE_PARSING |
140 | 143 | ||
144 | REM check for combination flags | ||
145 | IF [%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 | |||
141 | SET FULL_PREFIX=%PREFIX%\%VERSION% | 152 | SET FULL_PREFIX=%PREFIX%\%VERSION% |
142 | 153 | ||
143 | SET BINDIR=%FULL_PREFIX% | 154 | SET BINDIR=%FULL_PREFIX% |
@@ -151,20 +162,25 @@ REM *********************************************************** | |||
151 | 162 | ||
152 | IF [%INSTALL_LUA%]==[ON] GOTO USE_OWN_LUA | 163 | IF [%INSTALL_LUA%]==[ON] GOTO USE_OWN_LUA |
153 | 164 | ||
165 | ECHO Looking for Lua interpreter | ||
154 | FOR %%L IN (%LUA_PREFIX% c:\lua\5.1.2 c:\lua c:\kepler\1.1) DO ( | 166 | FOR %%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 | |||
232 | SET LUA_BINDIR=%BINDIR% | 275 | SET LUA_BINDIR=%BINDIR% |
233 | SET LUA_LIBDIR=%LIBDIR% | 276 | SET LUA_LIBDIR=%LIBDIR% |
234 | SET LUA_INCDIR=%INCDIR% | 277 | SET LUA_INCDIR=%INCDIR% |
278 | SET LUA_LIBNAME=lua5.1.lib | ||
235 | :LUA_IS_SET | 279 | :LUA_IS_SET |
236 | ECHO. | 280 | ECHO. |
237 | ECHO Will configure LuaRocks with the following paths: | 281 | ECHO Will configure LuaRocks with the following paths: |
238 | ECHO Lua interpreter: %LUA_INTERPRETER% | 282 | ECHO LuaRocks : %FULL_PREFIX% |
239 | ECHO Lua binaries: %LUA_BINDIR% | 283 | ECHO Lua interpreter: %LUA_BINDIR%\%LUA_INTERPRETER% |
240 | ECHO Lua libraries: %LUA_LIBDIR% | 284 | ECHO Lua binaries : %LUA_BINDIR% |
241 | ECHO Lua includes: %LUA_INCDIR% | 285 | ECHO Lua libraries : %LUA_LIBDIR% |
286 | ECHO Lua includes : %LUA_INCDIR% | ||
287 | ECHO Binaries will be linked against: %LUA_LIBNAME% | ||
242 | ECHO. | 288 | ECHO. |
243 | 289 | ||
244 | REM *********************************************************** | 290 | REM *********************************************************** |
@@ -248,6 +294,7 @@ REM *********************************************************** | |||
248 | IF [%FORCE%]==[ON] ( | 294 | IF [%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 | ||
253 | IF NOT EXIST "%FULL_PREFIX%" GOTO NOT_EXIST_PREFIX | 300 | IF 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 | |||
373 | REM *********************************************************** | 428 | REM *********************************************************** |
374 | 429 | ||
375 | ECHO. | 430 | ECHO. |
431 | ECHO *** LuaRocks is installed! *** | ||
432 | ECHO. | ||
376 | ECHO You may want to add the following elements to your paths; | 433 | ECHO You may want to add the following elements to your paths; |
377 | ECHO PATH : %LUA_BINDIR%;%FULL_PREFIX% | 434 | ECHO PATH : %LUA_BINDIR%;%FULL_PREFIX% |
378 | ECHO LUA_PATH : %ROCKS_TREE%\share\lua\5.1\?.lua;%ROCKS_TREE%\share\lua\5.1\?\init.lua | 435 | ECHO LUA_PATH : %ROCKS_TREE%\share\lua\5.1\?.lua;%ROCKS_TREE%\share\lua\5.1\?\init.lua |
379 | ECHO LUA_CPATH: %LUA_LIBDIR%\lua\5.1\?.dll | 436 | ECHO LUA_CPATH: %LUA_LIBDIR%\lua\5.1\?.dll |
380 | ECHO. | 437 | ECHO. |
381 | ECHO LuaRocks is installed! | ||
382 | :QUIT | 438 | :QUIT |
383 | ENDLOCAL | 439 | ENDLOCAL |
384 | EXIT /B 0 | 440 | EXIT /B 0 |
385 | 441 | ||
386 | :ERROR | 442 | :ERROR |
387 | ECHO. | 443 | ECHO. |
388 | ECHO Failed installing LuaRocks. | 444 | ECHO Failed installing LuaRocks. Run with /? for help. |
389 | ENDLOCAL | 445 | ENDLOCAL |
390 | EXIT /B 1 | 446 | EXIT /B 1 |