make/windows/create.bat

Fri, 27 Mar 2009 01:35:39 -0500

author
ikrylov
date
Fri, 27 Mar 2009 01:35:39 -0500
changeset 1094
520d43965b1f
parent 631
d1605aabd0a1
child 1279
bd02caa94611
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

     1 @echo off
     2 REM
     3 REM Copyright 1999-2008 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
    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.
    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
    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 REM build config specific stuff
   160 pushd %HotSpotBuildSpace%\%%i
   161 nmake /nologo
   162 popd
   163 )
   165 goto end
   167 :usage
   168 echo Usage: create HotSpotWorkSpace HotSpotBuildSpace HotSpotJDKDist
   169 echo.
   170 echo This is the interactive build setup script (as opposed to the batch
   171 echo build execution script). It creates HotSpotBuildSpace if necessary,
   172 echo copies the appropriate files out of HotSpotWorkSpace into it, and
   173 echo builds and runs MakeDeps in it. This has the side-effect of creating
   174 echo the %ProjectFile% file in the build space, which is then used in Visual C++.
   175 echo The HotSpotJDKDist defines place where JVM binaries should be placed.
   176 echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection.
   177 echo.
   178 echo The generated project file depends upon the include databases. If
   179 echo those are changed then MakeDeps is rerun.
   180 echo.
   181 echo NOTE that it is now NOT safe to modify any of the files in the build
   182 echo space, since they may be overwritten whenever this script is run or
   183 echo nmake is run in that directory.
   185 :end
   187 endlocal

mercurial