hotspot/make/windows/create.bat
changeset 338 5cf9f61d76f4
parent 1 489c9b5090e2
child 670 ddf3e9583f2f
equal deleted inserted replaced
337:7e7f474103fe 338:5cf9f61d76f4
       
     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%/make/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%\make\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