1 #
   2 # Copyright (c) 2017, 2020, 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 ################################################################################
  27 # Fake minimalistic spec file for RunTestsPrebuilt.gmk.
  28 ################################################################################
  29 
  30 # Make sure all shell commands are executed with the C locale
  31 export LC_ALL := C
  32 
  33 define VerifyVariable
  34   ifeq ($$($1), )
  35     $$(info Error: Variable $1 is missing, needed by RunTestPrebuiltSpec.gmk)
  36     $$(error Cannot continue.)
  37   else
  38     ifneq ($$(findstring $$(LOG_LEVEL), debug trace), )
  39       $$(info Prebuilt variable $1=$$($1))
  40     endif
  41   endif
  42 endef
  43 
  44 # It is the responsibility of the file including us to have set these up.
  45 # Verify that this is correct.
  46 $(eval $(call VerifyVariable,SPEC))
  47 $(eval $(call VerifyVariable,TOPDIR))
  48 $(eval $(call VerifyVariable,OUTPUTDIR))
  49 $(eval $(call VerifyVariable,BOOT_JDK))
  50 $(eval $(call VerifyVariable,JT_HOME))
  51 $(eval $(call VerifyVariable,JDK_IMAGE_DIR))
  52 $(eval $(call VerifyVariable,TEST_IMAGE_DIR))
  53 $(eval $(call VerifyVariable,MAKE))
  54 $(eval $(call VerifyVariable,BASH))
  55 
  56 ################################################################################
  57 # The "human readable" name of this configuration
  58 CONF_NAME := run-test-prebuilt
  59 
  60 # Number of parallel jobs to use for compilation
  61 JOBS ?= $(NUM_CORES)
  62 TEST_JOBS ?= 0
  63 
  64 # Use hard-coded values for java flags (one size, fits all!)
  65 JAVA_FLAGS := -Duser.language=en -Duser.country=US
  66 JAVA_FLAGS_BIG := -Xms64M -Xmx1600M
  67 JAVA_FLAGS_SMALL := -XX:+UseSerialGC -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
  68 BUILDJDK_JAVA_FLAGS_SMALL := -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
  69 BUILD_JAVA_FLAGS := $(JAVA_FLAGS_BIG)
  70 
  71 ################################################################################
  72 # Hard-coded values copied from spec.gmk.in.
  73 X:=
  74 SPACE:=$(X) $(X)
  75 COMMA:=,
  76 MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \
  77     MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" LOG_LEVEL=$(LOG_LEVEL)
  78 BASH_ARGS := -o pipefail -e
  79 SHELL := $(BASH) $(BASH_ARGS)
  80 
  81 ################################################################################
  82 # Set some reasonable defaults for features
  83 DEBUG_LEVEL := release
  84 HOTSPOT_DEBUG_LEVEL := release
  85 BUILD_FAILURE_HANDLER := true
  86 
  87 ################################################################################
  88 # Alias some paths (that should not really be used) to our JDK image under test.
  89 SUPPORT_OUTPUTDIR := $(OUTPUTDIR)/support
  90 BUILDTOOLS_OUTPUTDIR := $(OUTPUTDIR)/buildtools
  91 HOTSPOT_OUTPUTDIR := $(OUTPUTDIR)/hotspot
  92 JDK_OUTPUTDIR := $(OUTPUTDIR)/jdk
  93 IMAGES_OUTPUTDIR := $(OUTPUTDIR)/images
  94 BUNDLES_OUTPUTDIR := $(OUTPUTDIR)/bundles
  95 TESTMAKE_OUTPUTDIR := $(OUTPUTDIR)/test-make
  96 MAKESUPPORT_OUTPUTDIR := $(OUTPUTDIR)/make-support
  97 BUILDJDK_OUTPUTDIR := $(OUTPUTDIR)/buildjdk
  98 
  99 JRE_IMAGE_DIR := $(JDK_IMAGE_DIR)
 100 
 101 ################################################################################
 102 # Assume build platform is same as target platform
 103 OPENJDK_BUILD_OS := $(OPENJDK_TARGET_OS)
 104 OPENJDK_BUILD_OS_TYPE := $(OPENJDK_TARGET_OS_TYPE)
 105 OPENJDK_BUILD_OS_ENV := $(OPENJDK_TARGET_OS_ENV)
 106 
 107 OPENJDK_BUILD_CPU := $(OPENJDK_TARGET_CPU)
 108 OPENJDK_BUILD_CPU_ARCH := $(OPENJDK_TARGET_CPU_ARCH)
 109 OPENJDK_BUILD_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS)
 110 OPENJDK_BUILD_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN)
 111 
 112 ################################################################################
 113 # Java executable definitions
 114 JAVA_CMD := $(BOOT_JDK)/bin/java
 115 JAVAC_CMD := $(BOOT_JDK)/bin/javac
 116 JAR_CMD := $(BOOT_JDK)/bin/jar
 117 JLINK_CMD := $(JDK_OUTPUTDIR)/bin/jlink
 118 JMOD_CMD := $(JDK_OUTPUTDIR)/bin/jmod
 119 JARSIGNER_CMD := $(BOOT_JDK)/bin/jarsigner
 120 
 121 JAVA := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
 122 JAVA_SMALL := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
 123 JAVA_DETACH := $(FIXPATH) $(FIXPATH_DETACH_FLAG) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
 124 JAVAC := $(FIXPATH) $(JAVAC_CMD)
 125 JAR := $(FIXPATH) $(JAR_CMD)
 126 JLINK := $(FIXPATH) $(JLINK_CMD)
 127 JMOD := $(FIXPATH) $(JMOD_CMD)
 128 JARSIGNER := $(FIXPATH) $(JARSIGNER_CMD)
 129 
 130 BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
 131 ################################################################################
 132 # Some common tools. Assume most common name and no path.
 133 AWK := awk
 134 BASENAME := basename
 135 CAT := cat
 136 CD := cd
 137 CHMOD := chmod
 138 CP := cp
 139 CUT := cut
 140 DATE := date
 141 DIFF := diff
 142 DIRNAME := dirname
 143 FIND := find
 144 FIND_DELETE := -delete
 145 ECHO := echo
 146 EGREP := grep -E
 147 FGREP := grep -F
 148 GREP := grep
 149 GZIP := gzip
 150 HEAD := head
 151 LS := ls
 152 LN := ln
 153 MIG := mig
 154 MKDIR := mkdir
 155 MV := mv
 156 NAWK := nawk
 157 NICE := nice
 158 PATCH := patch
 159 PRINTF := printf
 160 RM := rm -f
 161 RMDIR := rmdir
 162 SED := sed
 163 SH := sh
 164 SORT := sort
 165 TAR := tar
 166 TAIL := tail
 167 TEE := tee
 168 TR := tr
 169 TOUCH := touch
 170 UNIQ := uniq
 171 WC := wc
 172 XARGS := xargs
 173 ZIPEXE := zip
 174 UNZIP := unzip
 175 EXPR := expr
 176 FILE := file
 177 HG := hg
 178 ULIMIT := ulimit
 179 
 180 ifeq ($(OPENJDK_BUILD_OS), windows)
 181   CYGPATH := cygpath
 182 endif
 183 
 184 ################################################################################
 185 # Simple macros from spec.gmk.in
 186 SHARED_LIBRARY=$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX)