hotspot/make/windows/README
changeset 338 5cf9f61d76f4
parent 1 489c9b5090e2
child 5547 f4b087cbb361
equal deleted inserted replaced
337:7e7f474103fe 338:5cf9f61d76f4
       
     1 Copyright (c) 2007 Sun Microsystems, Inc.  All Rights Reserved.
       
     2 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     3   
       
     4 This code is free software; you can redistribute it and/or modify it
       
     5 under the terms of the GNU General Public License version 2 only, as
       
     6 published by the Free Software Foundation.
       
     7   
       
     8 This code is distributed in the hope that it will be useful, but WITHOUT
       
     9 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    10 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    11 version 2 for more details (a copy is included in the LICENSE file that
       
    12 accompanied this code).
       
    13  
       
    14 You should have received a copy of the GNU General Public License version
       
    15 2 along with this work; if not, write to the Free Software Foundation,
       
    16 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    17   
       
    18 Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
       
    19 CA 95054 USA or visit www.sun.com if you need additional information or
       
    20 have any questions.
       
    21 
       
    22 ________________________________________________________________________________
       
    23 
       
    24 __Introduction__________________________________________________________________
       
    25 
       
    26 This readme file should provide all the information needed to build
       
    27 the HotSpot VM for Windows 95/Windows NT from its teamware workspace.
       
    28 It is intended as a starting point for people who want to learn how
       
    29 to work with the current HotSpot source workspace and who need to
       
    30 build the VM locally. It is not intended as a tutorial for licensees.
       
    31 
       
    32 Last update: 03/28/05
       
    33 
       
    34 
       
    35 __Platform______________________________________________________________________
       
    36 
       
    37 The VM builds under the following platforms:
       
    38 - Windows NT 4.0 on Intel x486 or greater
       
    39 - x486 PC (or greater), 32MByte or more
       
    40 
       
    41 
       
    42 __Tools_________________________________________________________________________
       
    43 
       
    44 For building/testing the following tools need to be available:
       
    45 - Microsoft Visual C++ 6.0 (with nmake version 1.62.7022 or greater)
       
    46 - MKS Toolkit 6.1 or greater
       
    47   see: /net/reinstall/export/vol0/pc-archive/software/mks6.1 (NFS)
       
    48    or: \\reinstall\pc-archive\software\mks6.1                (NT)
       
    49 
       
    50 
       
    51 __JDK___________________________________________________________________________
       
    52 
       
    53 The workspace works with the following version of the JDK:
       
    54 (NOTE: these are out of date)
       
    55 - JDK1.2FCS "V" build
       
    56   see: /usr/local/java/jdk1.2/win32
       
    57 
       
    58 and the following version(s) of HotJava:
       
    59 - hjb1.1.4
       
    60 - hjb1.1.5
       
    61   see /usr/local/java/hjb1.1.x/win32
       
    62 
       
    63 
       
    64 __Environment variables_________________________________________________________
       
    65 
       
    66 The following environment variables need to be set up for the IDE
       
    67 build process.  For batch builds these do not need to be set.
       
    68 
       
    69 HotSpotMksHome     points to the (NFS or PC-local) directory where the MKS
       
    70                    executables (like sh.exe and grep.exe) are installed
       
    71 
       
    72 Optionally you may set the following variables in your environment and they
       
    73 will be picked up by the create.bat script used to generate the vm.vcproj files.
       
    74 See the section on building within MS Developer Studio for more details.
       
    75 
       
    76 HotSpotWorkSpace   points to the (NFS) directory where the workspace is located
       
    77 HotSpotBuildSpace  points to the (PC-local) directory where the vm is built
       
    78 HotSpotReleaseBinDest points to the (NFS or PC-local) directory where the product DLL is
       
    79 		      written
       
    80 HotSpotDebugBinDest   points to the (NFS or PC-local) directory where the debug DLL is
       
    81 		      written
       
    82 
       
    83 NOTE: For both batch and IDE builds, java and javac must be in your
       
    84 PATH, and the versions found by default must work. (If this turns out
       
    85 to be a problem, we can define HotSpotJava and HotSpotJavaC for
       
    86 bootstrapping...)
       
    87 
       
    88 __Building the JVM from the command line________________________________________
       
    89 
       
    90 1) choose a directory in which you want to build the vm
       
    91    (the build process will create a subdirectory)
       
    92 
       
    93 2) To build the 'core' version (debug || optimized)
       
    94    %HotSpotWorkSpace%\build\windows\build <flavor> core %HotSpotWorkSpace% <jdk_dir>
       
    95    To build the 'compiler2' version (debug || optimized)
       
    96    %HotSpotWorkSpace%\build\windows\build <flavor> compiler2 %HotSpotWorkSpace% <jdk_dir>
       
    97 
       
    98    where <jdk_dir> is a full path to a JDK in which bin/java and
       
    99    bin/javac are present and working.
       
   100 
       
   101 3) If you have problems with building, first try:
       
   102    vcvars32 <CR> (sets path for VC++)
       
   103 
       
   104 4) In addition to jvm.dll, the Serviceability Agent (SA) based JDI connector 
       
   105    and command line tools are built if dbgeng.h and dbgeng.lib
       
   106    can be located, and BUILD_WIN_SA=1 is specified.   We look for dbgeng.h here:
       
   107         $(MSVCDIR)\PlatformSDK\Include
       
   108         $(SYSTEMROOT)\..\Program Files\Microsoft SDK\include
       
   109 
       
   110   The first directory is part of  Visual Studio VC .NET 2003.
       
   111   The second is used on Windows-amd64.
       
   112 
       
   113 
       
   114 __Building the JVM from within MS Developer Studio______________________________
       
   115 
       
   116 0) Set environment variables as described above
       
   117 
       
   118 1) Run the following script:
       
   119    %HotSpotWorkSpace%\build\windows\create <type> { <workspace> <buildspace> <productbindest> <debugbindest> }
       
   120    where type is one of core, compiler1, compiler2.  If you leave off the
       
   121    "<workspace> <buildspace> <productbindest> <debugbindest>" part, the script expects to find their
       
   122    values in the HotSpotWorkSpace, HotSpotBuildSpace, HotSpotReleaseBinDest, and HotSpotDebugBinDest environment
       
   123    variables.  The resulting vm.vcproj does not depend on these values in the environment.
       
   124 
       
   125    This will populate the build space with the appropriate makefiles
       
   126    and run nmake in it. This builds and runs makedeps, which now
       
   127    generates the appropriate vm.vcproj into the build space. It also
       
   128    builds and runs adlc.
       
   129 
       
   130    To regenerate the .incl and .dsp files after changing the include
       
   131    databases, just run nmake in the build space.
       
   132 
       
   133    The build process now relies on java and javac. For the IDE builds,
       
   134    the full path to a JDK (in which bin/java and bin/javac are present
       
   135    and working) can be specified either explicitly with the
       
   136    ALT_BOOTDIR environment variable (like the JDK build process), via
       
   137    the JDK build's default BOOTDIR environment variable, via JAVA_HOME,
       
   138    or implicitly via the PATH.
       
   139 
       
   140    (Note that there are now many more command line options to MakeDeps
       
   141    on the Windows platform than before. These have been bundled into
       
   142    makefiles/makedeps.make, but it is still necessary to keep this in
       
   143    sync with the batch makefiles, in vm/generated.)
       
   144 
       
   145    If you have problems with building (i.e,. finding nmake), first try:
       
   146    vcvars32 <CR> (sets path for VC++)
       
   147 
       
   148 2) Double-click the vm.vcproj file in the %HotSpotBuildSpace% directory
       
   149    to open MS Developer Studio.
       
   150 
       
   151 3) build desired or all versions:
       
   152    menu Build -> Batch Build... -> Build (or Rebuild All)
       
   153 
       
   154 4) jvm.dll is in the %HotSpotReleaseBinDest% or %HotSpotDebugBinDest% directory
       
   155    depending on which configuration you built (release or debug).
       
   156 
       
   157 Note: do not edit any of the files (especially the vm.vcproj file) in the
       
   158 build space, since they are all either autogenerated or copied from
       
   159 the work space. If necessary, modify the original Makefiles in
       
   160 %HotSpotWorkSpace%\build\windows\projectfiles, or the shared
       
   161 makedeps arguments in
       
   162 %HotSpotWorkSpace%\build\windows\makefiles\makedeps.make.
       
   163 
       
   164 Note that it appears that some options set in the IDE (for example,
       
   165 the default executable) show up not in the .dsp file, but in the .opt
       
   166 file, so the automatic regeneration of the .dsp file should not
       
   167 destroy the project settings. However, makedeps.make should be edited
       
   168 to supply per-file compiler options.
       
   169 
       
   170 To build adlc from within the IDE for debugging purposes:
       
   171 
       
   172 1) in MS Developer Studio, open ADLCompiler.dsw:
       
   173    menu File -> Open Workspace...
       
   174    select & double-click ADLCompiler.dsw
       
   175 
       
   176 2) rebuild all (debug mode is enough)
       
   177    menu Build -> Rebuild All (make sure Win32 Debug version is selected)
       
   178 
       
   179 
       
   180 __Testing the VM________________________________________________________________
       
   181 
       
   182 To test the VM using the Tonga Testsuite, use testlook. testlook is a very
       
   183 simple testing framework on top of Tonga which allows us to use one (Tonga)
       
   184 test file, that can be extended with attributes.
       
   185 
       
   186 1) copy %HotSpotWorkSpace%\test\testlook.bat onto PC (preferably
       
   187    %HotSpotBuildSpace%\bin, which should ideally be in the path)
       
   188 
       
   189 2) run testlook <cr> or testlook help <cr> for details
       
   190 
       
   191 3) to run testlook you need to have Tonga mounted:
       
   192    net use T: \\tapas\export1\psqe
       
   193 
       
   194 
       
   195 __HotJava under HotSpot_________________________________________________________
       
   196 
       
   197 To run HotJava, use the .bat file %HotSpotWorkSpace%\test\h.bat. Copy
       
   198 it into %HotSpotBuildSpace%/<flavor> (which ideally is in the path) and run
       
   199 HotJava: h java <flags> (e.g., h java_g -Xint).
       
   200 
       
   201 
       
   202 __Preferred directory setup under Windows NT____________________________________
       
   203 
       
   204 Within the HotSpot group we are using the following directory setup:
       
   205 
       
   206 D:\jdk1.2          - where we install the JDK
       
   207 
       
   208 The following drives are mounted for testing/putbacks/etc.:
       
   209 
       
   210 net use T: \\tapas\export1\psqe
       
   211 net use Y: \\rschmidt\GammaBase
       
   212 net use Z: \\animorphic\animorphic