1
+ − 1
@echo off
+ − 2
REM
+ − 3
REM Copyright 1999-2006 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ − 21
REM CA 95054 USA or visit www.sun.com if you need additional information or
+ − 22
REM have any questions.
+ − 23
REM
+ − 24
REM
+ − 25
+ − 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 MakeDeps 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++.
+ − 31
REM
+ − 32
REM The generated project file depends upon the include databases. If
+ − 33
REM those are changed then MakeDeps is rerun.
+ − 34
+ − 35
REM
+ − 36
REM Since we don't have uname and we could be cross-compiling,
+ − 37
REM Use the compiler to determine which ARCH we are building
+ − 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
+ − 60
+ − 61
setlocal
+ − 62
+ − 63
if "%1" == "" goto usage
+ − 64
+ − 65
if not "%4" == "" goto usage
+ − 66
+ − 67
set HotSpotWorkSpace=%1
+ − 68
set HotSpotBuildSpace=%2
+ − 69
set HotSpotJDKDist=%3
+ − 70
+ − 71
REM figure out MSC version
+ − 72
for /F %%i in ('sh %HotSpotWorkSpace%/build/windows/get_msc_ver.sh') do set %%i
+ − 73
+ − 74
echo **************************************************************
+ − 75
if "%MSC_VER%" == "1200" (
+ − 76
set ProjectFile=vm.dsp
+ − 77
echo Will generate VC6 project {unsupported}
+ − 78
) else (
+ − 79
set ProjectFile=vm.vcproj
+ − 80
echo Will generate VC7 project
+ − 81
)
+ − 82
echo %ProjectFile%
+ − 83
echo **************************************************************
+ − 84
+ − 85
REM Test all variables to see whether the directories they
+ − 86
REM reference exist
+ − 87
+ − 88
if exist %HotSpotWorkSpace% goto test1
+ − 89
+ − 90
echo Error: directory pointed to by HotSpotWorkSpace
+ − 91
echo does not exist, or the variable is not set.
+ − 92
echo.
+ − 93
goto usage
+ − 94
+ − 95
:test1
+ − 96
if exist %HotSpotBuildSpace% goto test2
+ − 97
if not "%HotSpotBuildSpace%" == "" mkdir %HotSpotBuildSpace%
+ − 98
if exist %HotSpotBuildSpace% goto test2
+ − 99
echo Error: directory pointed to by HotSpotBuildSpace
+ − 100
echo does not exist, or the variable is not set.
+ − 101
echo.
+ − 102
goto usage
+ − 103
+ − 104
:test2
+ − 105
if exist %HotSpotJDKDist% goto test3
+ − 106
echo Error: directory pointed to by %HotSpotJDKDist%
+ − 107
echo does not exist, or the variable is not set.
+ − 108
echo.
+ − 109
goto usage
+ − 110
+ − 111
:test3
+ − 112
if not "%HOTSPOTMKSHOME%" == "" goto makedir
+ − 113
echo Warning: please set variable HOTSPOTMKSHOME to place where
+ − 114
echo your MKS/Cygwin installation is
+ − 115
echo.
+ − 116
goto usage
+ − 117
+ − 118
:makedir
+ − 119
echo NOTE: Using the following settings:
+ − 120
echo HotSpotWorkSpace=%HotSpotWorkSpace%
+ − 121
echo HotSpotBuildSpace=%HotSpotBuildSpace%
+ − 122
echo HotSpotJDKDist=%HotSpotJDKDist%
+ − 123
+ − 124
+ − 125
REM This is now safe to do.
+ − 126
:copyfiles
+ − 127
for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
+ − 128
if NOT EXIST %HotSpotBuildSpace%\%%i mkdir %HotSpotBuildSpace%\%%i
+ − 129
copy %HotSpotWorkSpace%\build\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\ > NUL
+ − 130
)
+ − 131
+ − 132
REM force regneration of ProjectFile
+ − 133
if exist %HotSpotBuildSpace%\%ProjectFile% del %HotSpotBuildSpace%\%ProjectFile%
+ − 134
+ − 135
for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
+ − 136
+ − 137
echo # Generated file! > %HotSpotBuildSpace%\%%i\local.make
+ − 138
echo # Changing a variable below and then deleting %ProjectFile% will cause >> %HotSpotBuildSpace%\%%i\local.make
+ − 139
echo # %ProjectFile% to be regenerated with the new values. Changing the >> %HotSpotBuildSpace%\%%i\local.make
+ − 140
echo # version requires rerunning create.bat. >> %HotSpotBuildSpace%\%%i\local.make
+ − 141
echo. >> %HotSpotBuildSpace%\%%i\local.make
+ − 142
echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> %HotSpotBuildSpace%\%%i\local.make
+ − 143
echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> %HotSpotBuildSpace%\%%i\local.make
+ − 144
echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> %HotSpotBuildSpace%\%%i\local.make
+ − 145
echo ARCH=%ARCH% >> %HotSpotBuildSpace%\%%i\local.make
+ − 146
echo BUILDARCH=%BUILDARCH% >> %HotSpotBuildSpace%\%%i\local.make
+ − 147
echo Platform_arch=%Platform_arch% >> %HotSpotBuildSpace%\%%i\local.make
+ − 148
echo Platform_arch_model=%Platform_arch_model% >> %HotSpotBuildSpace%\%%i\local.make
+ − 149
+ − 150
REM build config specific stuff
+ − 151
+ − 152
pushd %HotSpotBuildSpace%\%%i
+ − 153
nmake /nologo
+ − 154
popd
+ − 155
)
+ − 156
+ − 157
goto end
+ − 158
+ − 159
:usage
+ − 160
echo Usage: create HotSpotWorkSpace HotSpotBuildSpace HotSpotJDKDist
+ − 161
echo.
+ − 162
echo This is the interactive build setup script (as opposed to the batch
+ − 163
echo build execution script). It creates HotSpotBuildSpace if necessary,
+ − 164
echo copies the appropriate files out of HotSpotWorkSpace into it, and
+ − 165
echo builds and runs MakeDeps in it. This has the side-effect of creating
+ − 166
echo the %ProjectFile% file in the build space, which is then used in Visual C++.
+ − 167
echo The HotSpotJDKDist defines place where JVM binaries should be placed.
+ − 168
echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
+ − 169
echo.
+ − 170
echo The generated project file depends upon the include databases. If
+ − 171
echo those are changed then MakeDeps is rerun.
+ − 172
echo.
+ − 173
echo NOTE that it is now NOT safe to modify any of the files in the build
+ − 174
echo space, since they may be overwritten whenever this script is run or
+ − 175
echo nmake is run in that directory.
+ − 176
+ − 177
:end
+ − 178
+ − 179
endlocal