1@echo off
2REM
3REM Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
4REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5REM
6REM This code is free software; you can redistribute it and/or modify it
7REM under the terms of the GNU General Public License version 2 only, as
8REM published by the Free Software Foundation.
9REM
10REM This code is distributed in the hope that it will be useful, but WITHOUT
11REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12REM FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13REM version 2 for more details (a copy is included in the LICENSE file that
14REM accompanied this code).
15REM
16REM You should have received a copy of the GNU General Public License version
17REM 2 along with this work; if not, write to the Free Software Foundation,
18REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19REM
20REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21REM or visit www.oracle.com if you need additional information or have any
22REM questions.
23REM
24REM
25
26
27REM
28REM Since we don't have uname and we could be cross-compiling,
29REM Use the compiler to determine which ARCH we are building
30REM
31REM Note: Running this batch file from the Windows command shell requires
32REM that "grep" be accessible on the PATH. An MKS install does this.
33REM
34cl 2>&1 | grep "IA-64" >NUL
35if %errorlevel% == 0 goto isia64
36cl 2>&1 | grep "AMD64" >NUL
37if %errorlevel% == 0 goto amd64
38cl 2>&1 | grep "x64" >NUL
39if %errorlevel% == 0 goto amd64
40set ARCH=x86
41set BUILDARCH=i486
42set Platform_arch=x86
43set Platform_arch_model=x86_32
44goto end
45:amd64
46set LP64=1
47set ARCH=x86
48set BUILDARCH=amd64
49set Platform_arch=x86
50set Platform_arch_model=x86_64
51goto end
52:isia64
53set LP64=1
54set ARCH=ia64
55set Platform_arch=ia64
56set Platform_arch_model=ia64
57:end
58
59if "%4" == ""          goto usage
60if not "%7" == ""      goto usage
61
62if "%1" == "product"   goto test1
63if "%1" == "debug"     goto test1
64if "%1" == "fastdebug" goto test1
65if "%1" == "tree"      goto test1
66goto usage
67
68:test1
69if "%2" == "core"      goto test2
70if "%2" == "compiler1" goto test2
71if "%2" == "compiler2" goto test2
72if "%2" == "tiered"    goto test2
73if "%2" == "adlc"      goto build_adlc
74
75goto usage
76
77:test2
78if "%1" == "tree"      goto build_tree
79REM check_j2se_version
80REM jvmti.make requires J2SE 1.4.x or newer.
81REM If not found then fail fast.
82%4\bin\javap javax.xml.transform.TransformerFactory >NUL
83if %errorlevel% == 0 goto build
84echo.
85echo J2SE version found at %4\bin\java:
86%4\bin\java -version
87echo.
88echo An XSLT processor (J2SE 1.4.x or newer) is required to
89echo bootstrap this build
90echo.
91
92goto usage
93
94:build
95nmake -f %3/make/windows/build.make Variant=%2 WorkSpace=%3 BootStrapDir=%4 BuildUser="%USERNAME%" HOTSPOT_BUILD_VERSION="%5" %1
96goto end
97
98:build_adlc
99nmake -f %3/make/windows/build.make Variant=compiler2 WorkSpace=%3 BootStrapDir=%4 BuildUser="%USERNAME%" HOTSPOT_BUILD_VERSION=%5 ADLC_ONLY=1 %1
100goto end
101
102:build_tree
103nmake -f %3/make/windows/build.make Variant=%2 WorkSpace=%3 BootStrapDir=%4 BuildUser="%USERNAME%" HOTSPOT_BUILD_VERSION="%5" %1
104goto end
105
106:usage
107echo Usage: build flavor version workspace bootstrap_dir [build_id] [windbg_home]
108echo.
109echo where:
110echo flavor is "product", "debug" or "fastdebug",
111echo version is "core", "compiler1", "compiler2", or "tiered",
112echo workspace is source directory without trailing slash,
113echo bootstrap_dir is a full path to a JDK in which bin/java
114echo   and bin/javac are present and working, and build_id is an
115echo   optional build identifier displayed by java -version
116exit /b 1
117
118:end
119exit /b %errorlevel%
120