Tue, 23 Nov 2010 13:22:55 -0800
6989984: Use standard include model for Hospot
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions.
Reviewed-by: coleenp, kvn, kamg
1 @echo off
2 REM
3 REM Copyright (c) 1999, 2010, 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
39 cl 2>&1 | grep "IA-64" >NUL
40 if %errorlevel% == 0 goto isia64
41 cl 2>&1 | grep "AMD64" >NUL
42 if %errorlevel% == 0 goto amd64
43 set ARCH=x86
44 set BUILDARCH=i486
45 set Platform_arch=x86
46 set Platform_arch_model=x86_32
47 goto end
48 :amd64
49 set ARCH=x86
50 set BUILDARCH=amd64
51 set Platform_arch=x86
52 set Platform_arch_model=x86_64
53 goto end
54 :isia64
55 set ARCH=ia64
56 set BUILDARCH=ia64
57 set Platform_arch=ia64
58 set Platform_arch_model=ia64
59 :end
61 setlocal
63 if "%1" == "" goto usage
65 if not "%4" == "" goto usage
67 set HotSpotWorkSpace=%1
68 set HotSpotBuildSpace=%2
69 set HotSpotJDKDist=%3
71 REM figure out MSC version
72 for /F %%i in ('sh %HotSpotWorkSpace%/make/windows/get_msc_ver.sh') do set %%i
74 echo **************************************************************
75 set ProjectFile=vm.vcproj
76 if "%MSC_VER%" == "1200" (
77 set ProjectFile=vm.dsp
78 echo Will generate VC6 project {unsupported}
79 ) else (
80 if "%MSC_VER%" == "1400" (
81 echo Will generate VC8 {Visual Studio 2005}
82 ) else (
83 if "%MSC_VER%" == "1500" (
84 echo Will generate VC9 {Visual Studio 2008}
85 ) else (
86 echo Will generate VC7 project {Visual Studio 2003 .NET}
87 )
88 )
89 )
90 echo %ProjectFile%
91 echo **************************************************************
93 REM Test all variables to see whether the directories they
94 REM reference exist
96 if exist %HotSpotWorkSpace% goto test1
98 echo Error: directory pointed to by HotSpotWorkSpace
99 echo does not exist, or the variable is not set.
100 echo.
101 goto usage
103 :test1
104 if exist %HotSpotBuildSpace% goto test2
105 if not "%HotSpotBuildSpace%" == "" mkdir %HotSpotBuildSpace%
106 if exist %HotSpotBuildSpace% goto test2
107 echo Error: directory pointed to by HotSpotBuildSpace
108 echo does not exist, or the variable is not set.
109 echo.
110 goto usage
112 :test2
113 if exist %HotSpotJDKDist% goto test3
114 echo Error: directory pointed to by %HotSpotJDKDist%
115 echo does not exist, or the variable is not set.
116 echo.
117 goto usage
119 :test3
120 if not "%HOTSPOTMKSHOME%" == "" goto makedir
121 echo Warning: please set variable HOTSPOTMKSHOME to place where
122 echo your MKS/Cygwin installation is
123 echo.
124 goto usage
126 :makedir
127 echo NOTE: Using the following settings:
128 echo HotSpotWorkSpace=%HotSpotWorkSpace%
129 echo HotSpotBuildSpace=%HotSpotBuildSpace%
130 echo HotSpotJDKDist=%HotSpotJDKDist%
133 REM This is now safe to do.
134 :copyfiles
135 for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
136 if NOT EXIST %HotSpotBuildSpace%\%%i mkdir %HotSpotBuildSpace%\%%i
137 copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\ > NUL
138 )
140 REM force regneration of ProjectFile
141 if exist %HotSpotBuildSpace%\%ProjectFile% del %HotSpotBuildSpace%\%ProjectFile%
143 for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
145 echo # Generated file! > %HotSpotBuildSpace%\%%i\local.make
146 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
148 echo # version requires rerunning create.bat. >> %HotSpotBuildSpace%\%%i\local.make
149 echo. >> %HotSpotBuildSpace%\%%i\local.make
150 echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make
151 echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> %HotSpotBuildSpace%\%%i\local.make
152 echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> %HotSpotBuildSpace%\%%i\local.make
153 echo ARCH=%ARCH% >> %HotSpotBuildSpace%\%%i\local.make
154 echo BUILDARCH=%BUILDARCH% >> %HotSpotBuildSpace%\%%i\local.make
155 echo Platform_arch=%Platform_arch% >> %HotSpotBuildSpace%\%%i\local.make
156 echo Platform_arch_model=%Platform_arch_model% >> %HotSpotBuildSpace%\%%i\local.make
158 pushd %HotSpotBuildSpace%\%%i
159 nmake /nologo
160 popd
162 )
164 pushd %HotSpotBuildSpace%
166 echo # Generated file! > local.make
167 echo # Changing a variable below and then deleting %ProjectFile% will cause >> local.make
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
179 nmake /nologo /F %HotSpotWorkSpace%/make/windows/projectfiles/common/Makefile %HotSpotBuildSpace%/%ProjectFile%
181 popd
183 goto end
185 :usage
186 echo Usage: create HotSpotWorkSpace HotSpotBuildSpace HotSpotJDKDist
187 echo.
188 echo This is the interactive build setup script (as opposed to the batch
189 echo build execution script). It creates HotSpotBuildSpace if necessary,
190 echo copies the appropriate files out of HotSpotWorkSpace into it, and
191 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++.
193 echo The HotSpotJDKDist defines place where JVM binaries should be placed.
194 echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
195 echo.
196 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
198 echo nmake is run in that directory.
200 :end
202 endlocal