Mercurial > hg > truffle
comparison make/windows/create.bat @ 2027:aa6e219afbf1
7006354: Updates to Visual Studio project creation and development launcher
Summary: Updates to Visual Studio project creation and development launcher
Reviewed-by: stefank, coleenp
author | sla |
---|---|
date | Wed, 15 Dec 2010 07:11:31 -0800 |
parents | f95d63e2154a |
children | 06f017f7daa7 15d6977f04b0 |
comparison
equal
deleted
inserted
replaced
2025:b03e6b4c7c75 | 2027:aa6e219afbf1 |
---|---|
34 REM Use the compiler to determine which ARCH we are building | 34 REM Use the compiler to determine which ARCH we are building |
35 REM | 35 REM |
36 REM Note: Running this batch file from the Windows command shell requires | 36 REM Note: Running this batch file from the Windows command shell requires |
37 REM that "grep" be accessible on the PATH. An MKS install does this. | 37 REM that "grep" be accessible on the PATH. An MKS install does this. |
38 REM | 38 REM |
39 | |
40 cl 2>NUL >NUL | |
41 if %errorlevel% == 0 goto nexttest | |
42 echo Make sure cl.exe is in your PATH before running this script. | |
43 goto end | |
44 | |
45 :nexttest | |
46 grep -V 2>NUL >NUL | |
47 if %errorlevel% == 0 goto testit | |
48 echo Make sure grep.exe is in your PATH before running this script. Either cygwin or MKS should work. | |
49 goto end | |
50 | |
51 | |
52 :testit | |
39 cl 2>&1 | grep "IA-64" >NUL | 53 cl 2>&1 | grep "IA-64" >NUL |
40 if %errorlevel% == 0 goto isia64 | 54 if %errorlevel% == 0 goto isia64 |
41 cl 2>&1 | grep "AMD64" >NUL | 55 cl 2>&1 | grep "AMD64" >NUL |
42 if %errorlevel% == 0 goto amd64 | 56 if %errorlevel% == 0 goto amd64 |
43 set ARCH=x86 | 57 set ARCH=x86 |
44 set BUILDARCH=i486 | 58 set BUILDARCH=i486 |
45 set Platform_arch=x86 | 59 set Platform_arch=x86 |
46 set Platform_arch_model=x86_32 | 60 set Platform_arch_model=x86_32 |
47 goto end | 61 goto done |
48 :amd64 | 62 :amd64 |
49 set ARCH=x86 | 63 set ARCH=x86 |
50 set BUILDARCH=amd64 | 64 set BUILDARCH=amd64 |
51 set Platform_arch=x86 | 65 set Platform_arch=x86 |
52 set Platform_arch_model=x86_64 | 66 set Platform_arch_model=x86_64 |
53 goto end | 67 goto done |
54 :isia64 | 68 :isia64 |
55 set ARCH=ia64 | 69 set ARCH=ia64 |
56 set BUILDARCH=ia64 | 70 set BUILDARCH=ia64 |
57 set Platform_arch=ia64 | 71 set Platform_arch=ia64 |
58 set Platform_arch_model=ia64 | 72 set Platform_arch_model=ia64 |
59 :end | 73 :done |
60 | 74 |
61 setlocal | 75 setlocal |
62 | 76 |
63 if "%1" == "" goto usage | 77 if "%1" == "" goto usage |
64 | 78 |
65 if not "%4" == "" goto usage | 79 if not "%2" == "" goto usage |
66 | 80 |
67 set HotSpotWorkSpace=%1 | 81 REM Set HotSpotWorkSpace to the directy two steps above this script |
68 set HotSpotBuildSpace=%2 | 82 for %%i in ("%~dp0..") do ( set HotSpotWorkSpace=%%~dpi) |
69 set HotSpotJDKDist=%3 | 83 set HotSpotBuildRoot=%HotSpotWorkSpace%build |
84 set HotSpotBuildSpace=%HotSpotBuildRoot%\vs | |
85 set HotSpotJDKDist=%1 | |
86 | |
70 | 87 |
71 REM figure out MSC version | 88 REM figure out MSC version |
72 for /F %%i in ('sh %HotSpotWorkSpace%/make/windows/get_msc_ver.sh') do set %%i | 89 for /F %%i in ('sh %HotSpotWorkSpace%/make/windows/get_msc_ver.sh') do set %%i |
73 | 90 |
74 echo ************************************************************** | 91 echo ************************************************************** |
75 set ProjectFile=vm.vcproj | 92 set ProjectFile=jvm.vcproj |
76 if "%MSC_VER%" == "1200" ( | 93 if "%MSC_VER%" == "1200" ( |
77 set ProjectFile=vm.dsp | 94 set ProjectFile=jvm.dsp |
78 echo Will generate VC6 project {unsupported} | 95 echo Will generate VC6 project {unsupported} |
79 ) else ( | 96 ) else ( |
80 if "%MSC_VER%" == "1400" ( | 97 if "%MSC_VER%" == "1400" ( |
81 echo Will generate VC8 {Visual Studio 2005} | 98 echo Will generate VC8 {Visual Studio 2005} |
82 ) else ( | 99 ) else ( |
83 if "%MSC_VER%" == "1500" ( | 100 if "%MSC_VER%" == "1500" ( |
84 echo Will generate VC9 {Visual Studio 2008} | 101 echo Will generate VC9 {Visual Studio 2008} |
85 ) else ( | 102 ) else ( |
103 if "%MSC_VER%" == "1600" ( | |
104 echo Detected Visual Studio 2010, but | |
105 echo will generate VC9 {Visual Studio 2008} | |
106 echo Use conversion wizard in VS 2010. | |
107 ) else ( | |
86 echo Will generate VC7 project {Visual Studio 2003 .NET} | 108 echo Will generate VC7 project {Visual Studio 2003 .NET} |
109 ) | |
87 ) | 110 ) |
88 ) | 111 ) |
89 ) | 112 ) |
90 echo %ProjectFile% | 113 echo %ProjectFile% |
91 echo ************************************************************** | 114 echo ************************************************************** |
116 echo. | 139 echo. |
117 goto usage | 140 goto usage |
118 | 141 |
119 :test3 | 142 :test3 |
120 if not "%HOTSPOTMKSHOME%" == "" goto makedir | 143 if not "%HOTSPOTMKSHOME%" == "" goto makedir |
144 if exist c:\cygwin\bin set HOTSPOTMKSHOME=c:\cygwin\bin | |
145 if not "%HOTSPOTMKSHOME%" == "" goto makedir | |
121 echo Warning: please set variable HOTSPOTMKSHOME to place where | 146 echo Warning: please set variable HOTSPOTMKSHOME to place where |
122 echo your MKS/Cygwin installation is | 147 echo your MKS/Cygwin installation is |
123 echo. | 148 echo. |
124 goto usage | 149 goto usage |
125 | 150 |
131 | 156 |
132 | 157 |
133 REM This is now safe to do. | 158 REM This is now safe to do. |
134 :copyfiles | 159 :copyfiles |
135 for /D %%i in (compiler1, compiler2, tiered, core, kernel) do ( | 160 for /D %%i in (compiler1, compiler2, tiered, core, kernel) do ( |
136 if NOT EXIST %HotSpotBuildSpace%\%%i mkdir %HotSpotBuildSpace%\%%i | 161 if NOT EXIST %HotSpotBuildSpace%\%%i\generated mkdir %HotSpotBuildSpace%\%%i\generated |
137 copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\ > NUL | 162 copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\generated > NUL |
138 ) | 163 ) |
139 | 164 |
140 REM force regneration of ProjectFile | 165 REM force regneration of ProjectFile |
141 if exist %HotSpotBuildSpace%\%ProjectFile% del %HotSpotBuildSpace%\%ProjectFile% | 166 if exist %HotSpotBuildSpace%\%ProjectFile% del %HotSpotBuildSpace%\%ProjectFile% |
142 | 167 |
143 for /D %%i in (compiler1, compiler2, tiered, core, kernel) do ( | 168 for /D %%i in (compiler1, compiler2, tiered, core, kernel) do ( |
144 | 169 echo -- %%i -- |
145 echo # Generated file! > %HotSpotBuildSpace%\%%i\local.make | 170 echo # Generated file! > %HotSpotBuildSpace%\%%i\local.make |
146 echo # Changing a variable below and then deleting %ProjectFile% will cause >> %HotSpotBuildSpace%\%%i\local.make | 171 echo # Changing a variable below and then deleting %ProjectFile% will cause >> %HotSpotBuildSpace%\%%i\local.make |
147 echo # %ProjectFile% to be regenerated with the new values. Changing the >> %HotSpotBuildSpace%\%%i\local.make | 172 echo # %ProjectFile% to be regenerated with the new values. Changing the >> %HotSpotBuildSpace%\%%i\local.make |
148 echo # version requires rerunning create.bat. >> %HotSpotBuildSpace%\%%i\local.make | 173 echo # version requires rerunning create.bat. >> %HotSpotBuildSpace%\%%i\local.make |
149 echo. >> %HotSpotBuildSpace%\%%i\local.make | 174 echo. >> %HotSpotBuildSpace%\%%i\local.make |
175 echo Variant=%%i >> %HotSpotBuildSpace%\%%i\local.make | |
176 echo WorkSpace=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make | |
150 echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make | 177 echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make |
178 echo HOTSPOTBUILDROOT=%HotSpotBuildRoot% >> %HotSpotBuildSpace%\%%i\local.make | |
151 echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> %HotSpotBuildSpace%\%%i\local.make | 179 echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> %HotSpotBuildSpace%\%%i\local.make |
152 echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> %HotSpotBuildSpace%\%%i\local.make | 180 echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> %HotSpotBuildSpace%\%%i\local.make |
153 echo ARCH=%ARCH% >> %HotSpotBuildSpace%\%%i\local.make | 181 echo ARCH=%ARCH% >> %HotSpotBuildSpace%\%%i\local.make |
154 echo BUILDARCH=%BUILDARCH% >> %HotSpotBuildSpace%\%%i\local.make | 182 echo BUILDARCH=%BUILDARCH% >> %HotSpotBuildSpace%\%%i\local.make |
155 echo Platform_arch=%Platform_arch% >> %HotSpotBuildSpace%\%%i\local.make | 183 echo Platform_arch=%Platform_arch% >> %HotSpotBuildSpace%\%%i\local.make |
156 echo Platform_arch_model=%Platform_arch_model% >> %HotSpotBuildSpace%\%%i\local.make | 184 echo Platform_arch_model=%Platform_arch_model% >> %HotSpotBuildSpace%\%%i\local.make |
157 | 185 |
158 pushd %HotSpotBuildSpace%\%%i | 186 for /D %%j in (debug, fastdebug, product) do ( |
187 if NOT EXIST %HotSpotBuildSpace%\%%i\%%j mkdir %HotSpotBuildSpace%\%%i\%%j | |
188 ) | |
189 | |
190 pushd %HotSpotBuildSpace%\%%i\generated | |
159 nmake /nologo | 191 nmake /nologo |
160 popd | 192 popd |
161 | 193 |
162 ) | 194 ) |
163 | 195 |
164 pushd %HotSpotBuildSpace% | 196 pushd %HotSpotBuildRoot% |
165 | 197 |
166 echo # Generated file! > local.make | 198 REM It doesn't matter which variant we use here, "compiler1" is as good as any of the others - we need the common variables |
167 echo # Changing a variable below and then deleting %ProjectFile% will cause >> local.make | 199 nmake /nologo /F %HotSpotWorkSpace%/make/windows/projectfiles/common/Makefile LOCAL_MAKE=%HotSpotBuildSpace%\compiler1\local.make %HotSpotBuildRoot%/%ProjectFile% |
168 echo # %ProjectFile% to be regenerated with the new values. Changing the >> local.make | |
169 echo # version requires rerunning create.bat. >> local.make | |
170 echo. >> local.make | |
171 echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> local.make | |
172 echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> local.make | |
173 echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> local.make | |
174 echo ARCH=%ARCH% >> local.make | |
175 echo BUILDARCH=%BUILDARCH% >> local.make | |
176 echo Platform_arch=%Platform_arch% >> local.make | |
177 echo Platform_arch_model=%Platform_arch_model% >> local.make | |
178 | |
179 nmake /nologo /F %HotSpotWorkSpace%/make/windows/projectfiles/common/Makefile %HotSpotBuildSpace%/%ProjectFile% | |
180 | 200 |
181 popd | 201 popd |
182 | 202 |
183 goto end | 203 goto end |
184 | 204 |
185 :usage | 205 :usage |
186 echo Usage: create HotSpotWorkSpace HotSpotBuildSpace HotSpotJDKDist | 206 echo Usage: create HotSpotJDKDist |
187 echo. | 207 echo. |
188 echo This is the interactive build setup script (as opposed to the batch | 208 echo This is the VS build setup script (as opposed to the batch |
189 echo build execution script). It creates HotSpotBuildSpace if necessary, | 209 echo build execution script). It creates a build directory if necessary, |
190 echo copies the appropriate files out of HotSpotWorkSpace into it, and | 210 echo copies the appropriate files out of the workspace into it, and |
191 echo builds and runs ProjectCreator in it. This has the side-effect of creating | 211 echo builds and runs ProjectCreator in it. This has the side-effect of creating |
192 echo the %ProjectFile% file in the build space, which is then used in Visual C++. | 212 echo the %ProjectFile% file in the build space, which is then used in Visual C++. |
193 echo The HotSpotJDKDist defines place where JVM binaries should be placed. | 213 echo. |
214 echo The HotSpotJDKDist defines the JDK that should be used when running the JVM. | |
194 echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection. | 215 echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection. |
195 echo. | 216 echo. |
196 echo NOTE that it is now NOT safe to modify any of the files in the build | 217 echo NOTE that it is now NOT safe to modify any of the files in the build |
197 echo space, since they may be overwritten whenever this script is run or | 218 echo space, since they may be overwritten whenever this script is run or |
198 echo nmake is run in that directory. | 219 echo nmake is run in that directory. |