bootcycle-spec.gmk.in revision 2128:7cd263acb48d
1#
2# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# This code is free software; you can redistribute it and/or modify it
6# under the terms of the GNU General Public License version 2 only, as
7# published by the Free Software Foundation.  Oracle designates this
8# particular file as subject to the "Classpath" exception as provided
9# by Oracle in the LICENSE file that accompanied this code.
10#
11# This code is distributed in the hope that it will be useful, but WITHOUT
12# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14# version 2 for more details (a copy is included in the LICENSE file that
15# accompanied this code).
16#
17# You should have received a copy of the GNU General Public License version
18# 2 along with this work; if not, write to the Free Software Foundation,
19# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20#
21# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22# or visit www.oracle.com if you need additional information or have any
23# questions.
24#
25
26# Support for building boot cycle builds
27
28BOOT_JDK_MODULAR := true
29
30# First include the real base spec.gmk file
31include @SPEC@
32
33# Check that the user did not try to specify a different java to use for compiling.
34# On windows we need to account for fixpath being first word.
35ifeq ($(firstword $(JAVA)),$(FIXPATH))
36  JAVA_EXEC_POS=2
37else
38  JAVA_EXEC_POS=1
39endif
40ifneq ($(word $(JAVA_EXEC_POS),$(SJAVAC_SERVER_JAVA)),$(word $(JAVA_EXEC_POS),$(JAVA)))
41  $(error Bootcycle builds are not possible if --with-sjavac-server-java is specified)
42endif
43
44
45# Override specific values to do a boot cycle build
46
47# Use a different Boot JDK
48BOOT_JDK := $(JDK_IMAGE_DIR)
49
50# The bootcycle build has a different output directory
51OLD_BUILD_OUTPUT:=@BUILD_OUTPUT@
52BUILD_OUTPUT:=$(OLD_BUILD_OUTPUT)/bootcycle-build
53# The HOTSPOT_DIST dir is not defined relative to BUILD_OUTPUT in spec.gmk. Must not
54# use space in this patsubst to avoid leading space in HOTSPOT_DIST.
55HOTSPOT_DIST:=$(patsubst $(OLD_BUILD_OUTPUT)%,$(BUILD_OUTPUT)%,$(HOTSPOT_DIST))
56SJAVAC_SERVER_DIR:=$(patsubst $(OLD_BUILD_OUTPUT)%, $(BUILD_OUTPUT)%, $(SJAVAC_SERVER_DIR))
57
58JAVA_CMD:=$(BOOT_JDK)/bin/java
59JAVAC_CMD:=$(BOOT_JDK)/bin/javac
60JAVAH_CMD:=$(BOOT_JDK)/bin/javah
61JAR_CMD:=$(BOOT_JDK)/bin/jar
62JARSIGNER_CMD:=$(BOOT_JDK)/bin/jarsigner
63SJAVAC_SERVER_JAVA_CMD:=$(JAVA_CMD)
64# When building a 32bit target, make sure the sjavac server flags are compatible
65# with a 32bit JVM.
66ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
67  SJAVAC_SERVER_JAVA_FLAGS := @BOOTCYCLE_JVM_ARGS_BIG@
68endif
69# The bootcycle JVM arguments may differ from the original boot jdk.
70JAVA_FLAGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@
71