Cleanup various endianess issues in assembler backend.
[luajit-2.0.git] / src / msvcbuild.bat
blobc7e5df667bc6b58d1e6161f209af1bc0f9f15683
1 @rem Script to build LuaJIT with MSVC.\r
2 @rem Copyright (C) 2005-2011 Mike Pall. See Copyright Notice in luajit.h\r
3 @rem\r
4 @rem Either open a "Visual Studio .NET Command Prompt"\r
5 @rem (Note that the Express Edition does not contain an x64 compiler)\r
6 @rem -or-\r
7 @rem Open a "Windows SDK Command Shell" and set the compiler environment:\r
8 @rem     setenv /release /x86\r
9 @rem   -or-\r
10 @rem     setenv /release /x64\r
11 @rem\r
12 @rem Then cd to this directory and run this script.\r
14 @if not defined INCLUDE goto :FAIL\r
16 @setlocal\r
17 @set LJCOMPILE=cl /nologo /c /MD /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE\r
18 @set LJLINK=link /nologo\r
19 @set LJMT=mt /nologo\r
20 @set LJLIB=lib /nologo\r
21 @set DASMDIR=..\dynasm\r
22 @set DASM=lua %DASMDIR%\dynasm.lua\r
23 @set ALL_LIB=lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c\r
25 if not exist buildvm_x86.h^\r
26   %DASM% -LN -o buildvm_x86.h buildvm_x86.dasc\r
27 @if errorlevel 1 goto :BAD\r
28 if not exist buildvm_x64win.h^\r
29   %DASM% -LN -D X64 -D X64WIN -o buildvm_x64win.h buildvm_x86.dasc\r
30 @if errorlevel 1 goto :BAD\r
32 %LJCOMPILE% /I "." /I %DASMDIR% buildvm*.c\r
33 @if errorlevel 1 goto :BAD\r
34 %LJLINK% /out:buildvm.exe buildvm*.obj\r
35 @if errorlevel 1 goto :BAD\r
36 if exist buildvm.exe.manifest^\r
37   %LJMT% -manifest buildvm.exe.manifest -outputresource:buildvm.exe\r
39 buildvm -m peobj -o lj_vm.obj\r
40 @if errorlevel 1 goto :BAD\r
41 buildvm -m bcdef -o lj_bcdef.h %ALL_LIB%\r
42 @if errorlevel 1 goto :BAD\r
43 buildvm -m ffdef -o lj_ffdef.h %ALL_LIB%\r
44 @if errorlevel 1 goto :BAD\r
45 buildvm -m libdef -o lj_libdef.h %ALL_LIB%\r
46 @if errorlevel 1 goto :BAD\r
47 buildvm -m recdef -o lj_recdef.h %ALL_LIB%\r
48 @if errorlevel 1 goto :BAD\r
49 buildvm -m vmdef -o ..\lib\vmdef.lua %ALL_LIB%\r
50 @if errorlevel 1 goto :BAD\r
51 buildvm -m folddef -o lj_folddef.h lj_opt_fold.c\r
52 @if errorlevel 1 goto :BAD\r
54 @if "%1" neq "debug" goto :NODEBUG\r
55 @shift\r
56 @set LJCOMPILE=%LJCOMPILE% /Zi /Fdluajit.pdb\r
57 @set LJLINK=%LJLINK% /debug /PDB:luajit.pdb\r
58 :NODEBUG\r
59 @if "%1"=="amalg" goto :AMALGDLL\r
60 @if "%1"=="static" goto :STATIC\r
61 %LJCOMPILE% /DLUA_BUILD_AS_DLL lj_*.c lib_*.c\r
62 @if errorlevel 1 goto :BAD\r
63 %LJLINK% /DLL /out:lua51.dll lj_*.obj lib_*.obj\r
64 @if errorlevel 1 goto :BAD\r
65 @goto :MTDLL\r
66 :STATIC\r
67 %LJCOMPILE% /DLUA_BUILD_AS_DLL lj_*.c lib_*.c\r
68 @if errorlevel 1 goto :BAD\r
69 %LJLIB% /OUT:lua51.lib lj_*.obj lib_*.obj\r
70 @if errorlevel 1 goto :BAD\r
71 @goto :MTDLL\r
72 :AMALGDLL\r
73 %LJCOMPILE% /DLUA_BUILD_AS_DLL ljamalg.c\r
74 @if errorlevel 1 goto :BAD\r
75 %LJLINK% /DLL /out:lua51.dll ljamalg.obj lj_vm.obj\r
76 @if errorlevel 1 goto :BAD\r
77 :MTDLL\r
78 if exist lua51.dll.manifest^\r
79   %LJMT% -manifest lua51.dll.manifest -outputresource:lua51.dll;2\r
81 %LJCOMPILE% luajit.c\r
82 @if errorlevel 1 goto :BAD\r
83 %LJLINK% /out:luajit.exe luajit.obj lua51.lib\r
84 @if errorlevel 1 goto :BAD\r
85 if exist luajit.exe.manifest^\r
86   %LJMT% -manifest luajit.exe.manifest -outputresource:luajit.exe\r
88 @del *.obj *.manifest buildvm.exe\r
89 @echo.\r
90 @echo === Successfully built LuaJIT ===\r
92 @goto :END\r
93 :BAD\r
94 @echo.\r
95 @echo *******************************************************\r
96 @echo *** Build FAILED -- Please check the error messages ***\r
97 @echo *******************************************************\a\r
98 @goto :END\r
99 :FAIL\r
100 @echo You must open a "Visual Studio .NET Command Prompt" to run this script\r
101 :END\r