hotspot/make/windows/create.bat
author ikrylov
Fri, 27 Mar 2009 01:35:39 -0500
changeset 2271 ff6d122287cb
parent 670 ddf3e9583f2f
child 3261 c7d5aae8d3f7
permissions -rw-r--r--
6812297: update project creation for Visual Studio 2005-2008 Summary: Add 2 news classes to create VC8 and VC9 projects Reviewed-by: apetrusenko, xlu
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     1
@echo off
489c9b5090e2 Initial load
duke
parents:
diff changeset
     2
REM
670
ddf3e9583f2f 6719955: Update copyright year
xdono
parents: 338
diff changeset
     3
REM Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     4
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     5
REM
489c9b5090e2 Initial load
duke
parents:
diff changeset
     6
REM This code is free software; you can redistribute it and/or modify it
489c9b5090e2 Initial load
duke
parents:
diff changeset
     7
REM under the terms of the GNU General Public License version 2 only, as
489c9b5090e2 Initial load
duke
parents:
diff changeset
     8
REM published by the Free Software Foundation.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     9
REM
489c9b5090e2 Initial load
duke
parents:
diff changeset
    10
REM This code is distributed in the hope that it will be useful, but WITHOUT
489c9b5090e2 Initial load
duke
parents:
diff changeset
    11
REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
489c9b5090e2 Initial load
duke
parents:
diff changeset
    12
REM FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
489c9b5090e2 Initial load
duke
parents:
diff changeset
    13
REM version 2 for more details (a copy is included in the LICENSE file that
489c9b5090e2 Initial load
duke
parents:
diff changeset
    14
REM accompanied this code).
489c9b5090e2 Initial load
duke
parents:
diff changeset
    15
REM
489c9b5090e2 Initial load
duke
parents:
diff changeset
    16
REM You should have received a copy of the GNU General Public License version
489c9b5090e2 Initial load
duke
parents:
diff changeset
    17
REM 2 along with this work; if not, write to the Free Software Foundation,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    18
REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    19
REM
489c9b5090e2 Initial load
duke
parents:
diff changeset
    20
REM Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    21
REM CA 95054 USA or visit www.sun.com if you need additional information or
489c9b5090e2 Initial load
duke
parents:
diff changeset
    22
REM have any questions.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    23
REM  
489c9b5090e2 Initial load
duke
parents:
diff changeset
    24
REM
489c9b5090e2 Initial load
duke
parents:
diff changeset
    25
489c9b5090e2 Initial load
duke
parents:
diff changeset
    26
REM This is the interactive build setup script (as opposed to the batch
489c9b5090e2 Initial load
duke
parents:
diff changeset
    27
REM build execution script). It creates $HotSpotBuildSpace if necessary,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    28
REM copies the appropriate files out of $HotSpotWorkSpace into it, and
489c9b5090e2 Initial load
duke
parents:
diff changeset
    29
REM builds and runs MakeDeps in it. This has the side-effect of creating
489c9b5090e2 Initial load
duke
parents:
diff changeset
    30
REM the vm.vcproj file in the buildspace, which is then used in Visual C++.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    31
REM 
489c9b5090e2 Initial load
duke
parents:
diff changeset
    32
REM The generated project file depends upon the include databases. If
489c9b5090e2 Initial load
duke
parents:
diff changeset
    33
REM those are changed then MakeDeps is rerun.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    34
489c9b5090e2 Initial load
duke
parents:
diff changeset
    35
REM
489c9b5090e2 Initial load
duke
parents:
diff changeset
    36
REM Since we don't have uname and we could be cross-compiling,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    37
REM Use the compiler to determine which ARCH we are building
489c9b5090e2 Initial load
duke
parents:
diff changeset
    38
REM 
489c9b5090e2 Initial load
duke
parents:
diff changeset
    39
cl 2>&1 | grep "IA-64" >NUL
489c9b5090e2 Initial load
duke
parents:
diff changeset
    40
if %errorlevel% == 0 goto isia64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    41
cl 2>&1 | grep "AMD64" >NUL
489c9b5090e2 Initial load
duke
parents:
diff changeset
    42
if %errorlevel% == 0 goto amd64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    43
set ARCH=x86
489c9b5090e2 Initial load
duke
parents:
diff changeset
    44
set BUILDARCH=i486
489c9b5090e2 Initial load
duke
parents:
diff changeset
    45
set Platform_arch=x86
489c9b5090e2 Initial load
duke
parents:
diff changeset
    46
set Platform_arch_model=x86_32
489c9b5090e2 Initial load
duke
parents:
diff changeset
    47
goto end
489c9b5090e2 Initial load
duke
parents:
diff changeset
    48
:amd64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    49
set ARCH=x86
489c9b5090e2 Initial load
duke
parents:
diff changeset
    50
set BUILDARCH=amd64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    51
set Platform_arch=x86
489c9b5090e2 Initial load
duke
parents:
diff changeset
    52
set Platform_arch_model=x86_64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    53
goto end
489c9b5090e2 Initial load
duke
parents:
diff changeset
    54
:isia64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    55
set ARCH=ia64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    56
set BUILDARCH=ia64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    57
set Platform_arch=ia64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    58
set Platform_arch_model=ia64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    59
:end
489c9b5090e2 Initial load
duke
parents:
diff changeset
    60
489c9b5090e2 Initial load
duke
parents:
diff changeset
    61
setlocal
489c9b5090e2 Initial load
duke
parents:
diff changeset
    62
489c9b5090e2 Initial load
duke
parents:
diff changeset
    63
if "%1" == "" goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
    64
489c9b5090e2 Initial load
duke
parents:
diff changeset
    65
if not "%4" == "" goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
    66
489c9b5090e2 Initial load
duke
parents:
diff changeset
    67
set HotSpotWorkSpace=%1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    68
set HotSpotBuildSpace=%2
489c9b5090e2 Initial load
duke
parents:
diff changeset
    69
set HotSpotJDKDist=%3
489c9b5090e2 Initial load
duke
parents:
diff changeset
    70
489c9b5090e2 Initial load
duke
parents:
diff changeset
    71
REM figure out MSC version
338
5cf9f61d76f4 6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents: 1
diff changeset
    72
for /F %%i in ('sh %HotSpotWorkSpace%/make/windows/get_msc_ver.sh') do set %%i
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    73
489c9b5090e2 Initial load
duke
parents:
diff changeset
    74
echo **************************************************************
2271
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    75
set ProjectFile=vm.vcproj
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    76
if "%MSC_VER%" == "1200" (
489c9b5090e2 Initial load
duke
parents:
diff changeset
    77
set ProjectFile=vm.dsp
489c9b5090e2 Initial load
duke
parents:
diff changeset
    78
echo Will generate VC6 project {unsupported}
489c9b5090e2 Initial load
duke
parents:
diff changeset
    79
) else (
2271
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    80
if "%MSC_VER%" == "1400" (
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    81
echo Will generate VC8 {Visual Studio 2005}
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    82
) else (
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    83
if "%MSC_VER%" == "1500" (
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    84
echo Will generate VC9 {Visual Studio 2008}
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    85
) else (
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    86
echo Will generate VC7 project {Visual Studio 2003 .NET}
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    87
)
ff6d122287cb 6812297: update project creation for Visual Studio 2005-2008
ikrylov
parents: 670
diff changeset
    88
)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    89
)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    90
echo                            %ProjectFile%
489c9b5090e2 Initial load
duke
parents:
diff changeset
    91
echo **************************************************************
489c9b5090e2 Initial load
duke
parents:
diff changeset
    92
489c9b5090e2 Initial load
duke
parents:
diff changeset
    93
REM Test all variables to see whether the directories they
489c9b5090e2 Initial load
duke
parents:
diff changeset
    94
REM reference exist
489c9b5090e2 Initial load
duke
parents:
diff changeset
    95
489c9b5090e2 Initial load
duke
parents:
diff changeset
    96
if exist %HotSpotWorkSpace% goto test1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    97
489c9b5090e2 Initial load
duke
parents:
diff changeset
    98
echo Error: directory pointed to by HotSpotWorkSpace
489c9b5090e2 Initial load
duke
parents:
diff changeset
    99
echo does not exist, or the variable is not set.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   100
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   101
goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
   102
489c9b5090e2 Initial load
duke
parents:
diff changeset
   103
:test1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   104
if exist %HotSpotBuildSpace% goto test2
489c9b5090e2 Initial load
duke
parents:
diff changeset
   105
if not "%HotSpotBuildSpace%" == "" mkdir %HotSpotBuildSpace%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   106
if exist %HotSpotBuildSpace% goto test2
489c9b5090e2 Initial load
duke
parents:
diff changeset
   107
echo Error: directory pointed to by HotSpotBuildSpace
489c9b5090e2 Initial load
duke
parents:
diff changeset
   108
echo does not exist, or the variable is not set.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   109
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   110
goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
   111
489c9b5090e2 Initial load
duke
parents:
diff changeset
   112
:test2
489c9b5090e2 Initial load
duke
parents:
diff changeset
   113
if exist %HotSpotJDKDist% goto test3
489c9b5090e2 Initial load
duke
parents:
diff changeset
   114
echo Error: directory pointed to by %HotSpotJDKDist%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   115
echo does not exist, or the variable is not set.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   116
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   117
goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
   118
489c9b5090e2 Initial load
duke
parents:
diff changeset
   119
:test3
489c9b5090e2 Initial load
duke
parents:
diff changeset
   120
if not "%HOTSPOTMKSHOME%" == "" goto makedir
489c9b5090e2 Initial load
duke
parents:
diff changeset
   121
echo Warning: please set variable HOTSPOTMKSHOME to place where 
489c9b5090e2 Initial load
duke
parents:
diff changeset
   122
echo          your MKS/Cygwin installation is
489c9b5090e2 Initial load
duke
parents:
diff changeset
   123
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   124
goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
   125
489c9b5090e2 Initial load
duke
parents:
diff changeset
   126
:makedir
489c9b5090e2 Initial load
duke
parents:
diff changeset
   127
echo NOTE: Using the following settings:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   128
echo   HotSpotWorkSpace=%HotSpotWorkSpace%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   129
echo   HotSpotBuildSpace=%HotSpotBuildSpace%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   130
echo   HotSpotJDKDist=%HotSpotJDKDist%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   131
489c9b5090e2 Initial load
duke
parents:
diff changeset
   132
489c9b5090e2 Initial load
duke
parents:
diff changeset
   133
REM This is now safe to do.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   134
:copyfiles
489c9b5090e2 Initial load
duke
parents:
diff changeset
   135
for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
489c9b5090e2 Initial load
duke
parents:
diff changeset
   136
if NOT EXIST %HotSpotBuildSpace%\%%i mkdir %HotSpotBuildSpace%\%%i
338
5cf9f61d76f4 6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents: 1
diff changeset
   137
copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\ > NUL
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   138
)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   139
489c9b5090e2 Initial load
duke
parents:
diff changeset
   140
REM force regneration of ProjectFile
489c9b5090e2 Initial load
duke
parents:
diff changeset
   141
if exist %HotSpotBuildSpace%\%ProjectFile% del %HotSpotBuildSpace%\%ProjectFile%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   142
489c9b5090e2 Initial load
duke
parents:
diff changeset
   143
for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
489c9b5090e2 Initial load
duke
parents:
diff changeset
   144
489c9b5090e2 Initial load
duke
parents:
diff changeset
   145
echo # Generated file!                                                 >    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   146
echo # Changing a variable below and then deleting %ProjectFile% will cause  >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   147
echo # %ProjectFile% to be regenerated with the new values.  Changing the    >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   148
echo # version requires rerunning create.bat.                         >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   149
echo.                                      >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   150
echo HOTSPOTWORKSPACE=%HotSpotWorkSpace%   >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   151
echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   152
echo HOTSPOTJDKDIST=%HotSpotJDKDist%       >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   153
echo ARCH=%ARCH%                           >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   154
echo BUILDARCH=%BUILDARCH%                 >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   155
echo Platform_arch=%Platform_arch%         >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   156
echo Platform_arch_model=%Platform_arch_model% >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   157
489c9b5090e2 Initial load
duke
parents:
diff changeset
   158
REM build config specific stuff
489c9b5090e2 Initial load
duke
parents:
diff changeset
   159
489c9b5090e2 Initial load
duke
parents:
diff changeset
   160
pushd %HotSpotBuildSpace%\%%i
489c9b5090e2 Initial load
duke
parents:
diff changeset
   161
nmake /nologo
489c9b5090e2 Initial load
duke
parents:
diff changeset
   162
popd
489c9b5090e2 Initial load
duke
parents:
diff changeset
   163
)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   164
489c9b5090e2 Initial load
duke
parents:
diff changeset
   165
goto end
489c9b5090e2 Initial load
duke
parents:
diff changeset
   166
489c9b5090e2 Initial load
duke
parents:
diff changeset
   167
:usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
   168
echo Usage: create HotSpotWorkSpace HotSpotBuildSpace HotSpotJDKDist
489c9b5090e2 Initial load
duke
parents:
diff changeset
   169
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   170
echo This is the interactive build setup script (as opposed to the batch
489c9b5090e2 Initial load
duke
parents:
diff changeset
   171
echo build execution script). It creates HotSpotBuildSpace if necessary,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   172
echo copies the appropriate files out of HotSpotWorkSpace into it, and
489c9b5090e2 Initial load
duke
parents:
diff changeset
   173
echo builds and runs MakeDeps in it. This has the side-effect of creating
489c9b5090e2 Initial load
duke
parents:
diff changeset
   174
echo the %ProjectFile% file in the build space, which is then used in Visual C++.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   175
echo The HotSpotJDKDist defines place where JVM binaries should be placed.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   176
echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   177
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   178
echo The generated project file depends upon the include databases. If
489c9b5090e2 Initial load
duke
parents:
diff changeset
   179
echo those are changed then MakeDeps is rerun.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   180
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   181
echo NOTE that it is now NOT safe to modify any of the files in the build
489c9b5090e2 Initial load
duke
parents:
diff changeset
   182
echo space, since they may be overwritten whenever this script is run or
489c9b5090e2 Initial load
duke
parents:
diff changeset
   183
echo nmake is run in that directory.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   184
489c9b5090e2 Initial load
duke
parents:
diff changeset
   185
:end
489c9b5090e2 Initial load
duke
parents:
diff changeset
   186
489c9b5090e2 Initial load
duke
parents:
diff changeset
   187
endlocal