hotspot/build/windows/create.bat
author duke
Sat, 01 Dec 2007 00:00:00 +0000
changeset 1 489c9b5090e2
permissions -rw-r--r--
Initial load
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
489c9b5090e2 Initial load
duke
parents:
diff changeset
     3
REM Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
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
489c9b5090e2 Initial load
duke
parents:
diff changeset
    72
for /F %%i in ('sh %HotSpotWorkSpace%/build/windows/get_msc_ver.sh') do set %%i
489c9b5090e2 Initial load
duke
parents:
diff changeset
    73
489c9b5090e2 Initial load
duke
parents:
diff changeset
    74
echo **************************************************************
489c9b5090e2 Initial load
duke
parents:
diff changeset
    75
if "%MSC_VER%" == "1200" (
489c9b5090e2 Initial load
duke
parents:
diff changeset
    76
set ProjectFile=vm.dsp
489c9b5090e2 Initial load
duke
parents:
diff changeset
    77
echo Will generate VC6 project {unsupported}
489c9b5090e2 Initial load
duke
parents:
diff changeset
    78
) else (
489c9b5090e2 Initial load
duke
parents:
diff changeset
    79
set ProjectFile=vm.vcproj
489c9b5090e2 Initial load
duke
parents:
diff changeset
    80
echo Will generate VC7 project
489c9b5090e2 Initial load
duke
parents:
diff changeset
    81
)
489c9b5090e2 Initial load
duke
parents:
diff changeset
    82
echo                            %ProjectFile%
489c9b5090e2 Initial load
duke
parents:
diff changeset
    83
echo **************************************************************
489c9b5090e2 Initial load
duke
parents:
diff changeset
    84
489c9b5090e2 Initial load
duke
parents:
diff changeset
    85
REM Test all variables to see whether the directories they
489c9b5090e2 Initial load
duke
parents:
diff changeset
    86
REM reference exist
489c9b5090e2 Initial load
duke
parents:
diff changeset
    87
489c9b5090e2 Initial load
duke
parents:
diff changeset
    88
if exist %HotSpotWorkSpace% goto test1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    89
489c9b5090e2 Initial load
duke
parents:
diff changeset
    90
echo Error: directory pointed to by HotSpotWorkSpace
489c9b5090e2 Initial load
duke
parents:
diff changeset
    91
echo does not exist, or the variable is not set.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    92
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    93
goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
    94
489c9b5090e2 Initial load
duke
parents:
diff changeset
    95
:test1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    96
if exist %HotSpotBuildSpace% goto test2
489c9b5090e2 Initial load
duke
parents:
diff changeset
    97
if not "%HotSpotBuildSpace%" == "" mkdir %HotSpotBuildSpace%
489c9b5090e2 Initial load
duke
parents:
diff changeset
    98
if exist %HotSpotBuildSpace% goto test2
489c9b5090e2 Initial load
duke
parents:
diff changeset
    99
echo Error: directory pointed to by HotSpotBuildSpace
489c9b5090e2 Initial load
duke
parents:
diff changeset
   100
echo does not exist, or the variable is not set.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   101
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   102
goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
   103
489c9b5090e2 Initial load
duke
parents:
diff changeset
   104
:test2
489c9b5090e2 Initial load
duke
parents:
diff changeset
   105
if exist %HotSpotJDKDist% goto test3
489c9b5090e2 Initial load
duke
parents:
diff changeset
   106
echo Error: directory pointed to by %HotSpotJDKDist%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   107
echo does not exist, or the variable is not set.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   108
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   109
goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
   110
489c9b5090e2 Initial load
duke
parents:
diff changeset
   111
:test3
489c9b5090e2 Initial load
duke
parents:
diff changeset
   112
if not "%HOTSPOTMKSHOME%" == "" goto makedir
489c9b5090e2 Initial load
duke
parents:
diff changeset
   113
echo Warning: please set variable HOTSPOTMKSHOME to place where 
489c9b5090e2 Initial load
duke
parents:
diff changeset
   114
echo          your MKS/Cygwin installation is
489c9b5090e2 Initial load
duke
parents:
diff changeset
   115
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   116
goto usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
   117
489c9b5090e2 Initial load
duke
parents:
diff changeset
   118
:makedir
489c9b5090e2 Initial load
duke
parents:
diff changeset
   119
echo NOTE: Using the following settings:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   120
echo   HotSpotWorkSpace=%HotSpotWorkSpace%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   121
echo   HotSpotBuildSpace=%HotSpotBuildSpace%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   122
echo   HotSpotJDKDist=%HotSpotJDKDist%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   123
489c9b5090e2 Initial load
duke
parents:
diff changeset
   124
489c9b5090e2 Initial load
duke
parents:
diff changeset
   125
REM This is now safe to do.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   126
:copyfiles
489c9b5090e2 Initial load
duke
parents:
diff changeset
   127
for /D %%i in (compiler1, compiler2, tiered, core, kernel) do (
489c9b5090e2 Initial load
duke
parents:
diff changeset
   128
if NOT EXIST %HotSpotBuildSpace%\%%i mkdir %HotSpotBuildSpace%\%%i
489c9b5090e2 Initial load
duke
parents:
diff changeset
   129
copy %HotSpotWorkSpace%\build\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\ > NUL
489c9b5090e2 Initial load
duke
parents:
diff changeset
   130
)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   131
489c9b5090e2 Initial load
duke
parents:
diff changeset
   132
REM force regneration of ProjectFile
489c9b5090e2 Initial load
duke
parents:
diff changeset
   133
if exist %HotSpotBuildSpace%\%ProjectFile% del %HotSpotBuildSpace%\%ProjectFile%
489c9b5090e2 Initial load
duke
parents:
diff changeset
   134
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
489c9b5090e2 Initial load
duke
parents:
diff changeset
   137
echo # Generated file!                                                 >    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   138
echo # Changing a variable below and then deleting %ProjectFile% will cause  >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   139
echo # %ProjectFile% to be regenerated with the new values.  Changing the    >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   140
echo # version requires rerunning create.bat.                         >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   141
echo.                                      >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   142
echo HOTSPOTWORKSPACE=%HotSpotWorkSpace%   >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   143
echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   144
echo HOTSPOTJDKDIST=%HotSpotJDKDist%       >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   145
echo ARCH=%ARCH%                           >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   146
echo BUILDARCH=%BUILDARCH%                 >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   147
echo Platform_arch=%Platform_arch%         >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   148
echo Platform_arch_model=%Platform_arch_model% >>    %HotSpotBuildSpace%\%%i\local.make
489c9b5090e2 Initial load
duke
parents:
diff changeset
   149
489c9b5090e2 Initial load
duke
parents:
diff changeset
   150
REM build config specific stuff
489c9b5090e2 Initial load
duke
parents:
diff changeset
   151
489c9b5090e2 Initial load
duke
parents:
diff changeset
   152
pushd %HotSpotBuildSpace%\%%i
489c9b5090e2 Initial load
duke
parents:
diff changeset
   153
nmake /nologo
489c9b5090e2 Initial load
duke
parents:
diff changeset
   154
popd
489c9b5090e2 Initial load
duke
parents:
diff changeset
   155
)
489c9b5090e2 Initial load
duke
parents:
diff changeset
   156
489c9b5090e2 Initial load
duke
parents:
diff changeset
   157
goto end
489c9b5090e2 Initial load
duke
parents:
diff changeset
   158
489c9b5090e2 Initial load
duke
parents:
diff changeset
   159
:usage
489c9b5090e2 Initial load
duke
parents:
diff changeset
   160
echo Usage: create HotSpotWorkSpace HotSpotBuildSpace HotSpotJDKDist
489c9b5090e2 Initial load
duke
parents:
diff changeset
   161
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   162
echo This is the interactive build setup script (as opposed to the batch
489c9b5090e2 Initial load
duke
parents:
diff changeset
   163
echo build execution script). It creates HotSpotBuildSpace if necessary,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   164
echo copies the appropriate files out of HotSpotWorkSpace into it, and
489c9b5090e2 Initial load
duke
parents:
diff changeset
   165
echo builds and runs MakeDeps in it. This has the side-effect of creating
489c9b5090e2 Initial load
duke
parents:
diff changeset
   166
echo the %ProjectFile% file in the build space, which is then used in Visual C++.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   167
echo The HotSpotJDKDist defines place where JVM binaries should be placed.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   168
echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   169
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   170
echo The generated project file depends upon the include databases. If
489c9b5090e2 Initial load
duke
parents:
diff changeset
   171
echo those are changed then MakeDeps is rerun.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   172
echo.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   173
echo NOTE that it is now NOT safe to modify any of the files in the build
489c9b5090e2 Initial load
duke
parents:
diff changeset
   174
echo space, since they may be overwritten whenever this script is run or
489c9b5090e2 Initial load
duke
parents:
diff changeset
   175
echo nmake is run in that directory.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   176
489c9b5090e2 Initial load
duke
parents:
diff changeset
   177
:end
489c9b5090e2 Initial load
duke
parents:
diff changeset
   178
489c9b5090e2 Initial load
duke
parents:
diff changeset
   179
endlocal