Tue, 26 Mar 2013 14:11:21 -0400
8010651: create.bat still builds the kernel
Summary: Remove old kernel build targets and VS C++ projects created by create.bat on Windows
Reviewed-by: coleenp, sla
1 @echo off
2 REM
3 REM Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
4 REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 REM
6 REM This code is free software; you can redistribute it and/or modify it
7 REM under the terms of the GNU General Public License version 2 only, as
8 REM published by the Free Software Foundation.
9 REM
10 REM This code is distributed in the hope that it will be useful, but WITHOUT
11 REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 REM version 2 for more details (a copy is included in the LICENSE file that
14 REM accompanied this code).
15 REM
16 REM You should have received a copy of the GNU General Public License version
17 REM 2 along with this work; if not, write to the Free Software Foundation,
18 REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 REM
20 REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 REM or visit www.oracle.com if you need additional information or have any
22 REM questions.
23 REM
24 REM
26 REM This is the interactive build setup script (as opposed to the batch
27 REM build execution script). It creates $HotSpotBuildSpace if necessary,
28 REM copies the appropriate files out of $HotSpotWorkSpace into it, and
29 REM builds and runs ProjectCreator in it. This has the side-effect of creating
30 REM the vm.vcproj file in the buildspace, which is then used in Visual C++.
32 REM
33 REM Since we don't have uname and we could be cross-compiling,
34 REM Use the compiler to determine which ARCH we are building
35 REM
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.
38 REM
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
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
52 :testit
53 cl 2>&1 | grep "x64" >NUL
54 if %errorlevel% == 0 goto amd64
55 set ARCH=x86
56 set BUILDARCH=i486
57 set Platform_arch=x86
58 set Platform_arch_model=x86_32
59 goto done
60 :amd64
61 set ARCH=x86
62 set BUILDARCH=amd64
63 set Platform_arch=x86
64 set Platform_arch_model=x86_64
65 :done
67 setlocal
69 if "%1" == "" goto usage
71 if not "%2" == "" goto usage
73 REM Set HotSpotWorkSpace to the directy two steps above this script
74 for %%i in ("%~dp0..") do ( set HotSpotWorkSpace=%%~dpi)
75 set HotSpotBuildRoot=%HotSpotWorkSpace%build
76 set HotSpotBuildSpace=%HotSpotBuildRoot%\vs-%BUILDARCH%
77 set HotSpotJDKDist=%1
80 REM figure out MSC version
81 for /F %%i in ('sh %HotSpotWorkSpace%/make/windows/get_msc_ver.sh') do set %%i
83 echo **************************************************************
84 set ProjectFile=%HotSpotBuildSpace%\jvm.vcproj
85 if "%MSC_VER%" == "1200" (
86 set ProjectFile=%HotSpotBuildSpace%\jvm.dsp
87 echo Will generate VC6 project {unsupported}
88 ) else (
89 if "%MSC_VER%" == "1400" (
90 echo Will generate VC8 {Visual Studio 2005}
91 ) else (
92 if "%MSC_VER%" == "1500" (
93 echo Will generate VC9 {Visual Studio 2008}
94 ) else (
95 if "%MSC_VER%" == "1600" (
96 echo Will generate VC10 {Visual Studio 2010}
97 set ProjectFile=%HotSpotBuildSpace%\jvm.vcxproj
98 ) else (
99 echo Will generate VC7 project {Visual Studio 2003 .NET}
100 )
101 )
102 )
103 )
104 echo %ProjectFile%
105 echo **************************************************************
107 REM Test all variables to see whether the directories they
108 REM reference exist
110 if exist %HotSpotWorkSpace% goto test1
112 echo Error: directory pointed to by HotSpotWorkSpace
113 echo does not exist, or the variable is not set.
114 echo.
115 goto usage
117 :test1
118 if exist %HotSpotBuildSpace% goto test2
119 if not "%HotSpotBuildSpace%" == "" mkdir %HotSpotBuildSpace%
120 if exist %HotSpotBuildSpace% goto test2
121 echo Error: directory pointed to by HotSpotBuildSpace
122 echo does not exist, or the variable is not set.
123 echo.
124 goto usage
126 :test2
127 if exist %HotSpotJDKDist% goto test3
128 echo Error: directory pointed to by %HotSpotJDKDist%
129 echo does not exist, or the variable is not set.
130 echo.
131 goto usage
133 :test3
134 if not "%HOTSPOTMKSHOME%" == "" goto makedir
135 if exist c:\cygwin\bin set HOTSPOTMKSHOME=c:\cygwin\bin
136 if not "%HOTSPOTMKSHOME%" == "" goto makedir
137 echo Warning: please set variable HOTSPOTMKSHOME to place where
138 echo your MKS/Cygwin installation is
139 echo.
140 goto usage
142 :makedir
143 echo NOTE: Using the following settings:
144 echo HotSpotWorkSpace=%HotSpotWorkSpace%
145 echo HotSpotBuildSpace=%HotSpotBuildSpace%
146 echo HotSpotJDKDist=%HotSpotJDKDist%
149 REM This is now safe to do.
150 :copyfiles
151 for /D %%i in (compiler1, compiler2, tiered, core) do (
152 if NOT EXIST %HotSpotBuildSpace%\%%i\generated mkdir %HotSpotBuildSpace%\%%i\generated
153 copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\generated > NUL
154 )
156 REM force regneration of ProjectFile
157 if exist %ProjectFile% del %ProjectFile%
159 for /D %%i in (compiler1, compiler2, tiered, core) do (
160 echo -- %%i --
161 echo # Generated file! > %HotSpotBuildSpace%\%%i\local.make
162 echo # Changing a variable below and then deleting %ProjectFile% will cause >> %HotSpotBuildSpace%\%%i\local.make
163 echo # %ProjectFile% to be regenerated with the new values. Changing the >> %HotSpotBuildSpace%\%%i\local.make
164 echo # version requires rerunning create.bat. >> %HotSpotBuildSpace%\%%i\local.make
165 echo. >> %HotSpotBuildSpace%\%%i\local.make
166 echo Variant=%%i >> %HotSpotBuildSpace%\%%i\local.make
167 echo WorkSpace=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make
168 echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make
169 echo HOTSPOTBUILDROOT=%HotSpotBuildRoot% >> %HotSpotBuildSpace%\%%i\local.make
170 echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> %HotSpotBuildSpace%\%%i\local.make
171 echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> %HotSpotBuildSpace%\%%i\local.make
172 echo ARCH=%ARCH% >> %HotSpotBuildSpace%\%%i\local.make
173 echo BUILDARCH=%BUILDARCH% >> %HotSpotBuildSpace%\%%i\local.make
174 echo Platform_arch=%Platform_arch% >> %HotSpotBuildSpace%\%%i\local.make
175 echo Platform_arch_model=%Platform_arch_model% >> %HotSpotBuildSpace%\%%i\local.make
176 echo MSC_VER=%MSC_VER% >> %HotSpotBuildSpace%\%%i\local.make
178 for /D %%j in (debug, fastdebug, product) do (
179 if NOT EXIST %HotSpotBuildSpace%\%%i\%%j mkdir %HotSpotBuildSpace%\%%i\%%j
180 )
182 pushd %HotSpotBuildSpace%\%%i\generated
183 nmake /nologo
184 popd
186 )
188 pushd %HotSpotBuildRoot%
190 REM It doesn't matter which variant we use here, "compiler1" is as good as any of the others - we need the common variables
191 nmake /nologo /F %HotSpotWorkSpace%/make/windows/projectfiles/common/Makefile LOCAL_MAKE=%HotSpotBuildSpace%\compiler1\local.make %ProjectFile%
193 popd
195 goto end
197 :usage
198 echo Usage: create HotSpotJDKDist
199 echo.
200 echo This is the VS build setup script (as opposed to the batch
201 echo build execution script). It creates a build directory if necessary,
202 echo copies the appropriate files out of the workspace into it, and
203 echo builds and runs ProjectCreator in it. This has the side-effect of creating
204 echo the %ProjectFile% file in the build space, which is then used in Visual C++.
205 echo.
206 echo The HotSpotJDKDist defines the JDK that should be used when running the JVM.
207 echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
208 echo.
209 echo NOTE that it is now NOT safe to modify any of the files in the build
210 echo space, since they may be overwritten whenever this script is run or
211 echo nmake is run in that directory.
213 :end
215 endlocal