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_GTEST := true
  86 BUILD_FAILURE_HANDLER := true
  87 
  88 ################################################################################
  89 # Alias some paths (that should not really be used) to our JDK image under test.
  90 SUPPORT_OUTPUTDIR := $(OUTPUTDIR)/support
  91 BUILDTOOLS_OUTPUTDIR := $(OUTPUTDIR)/buildtools
  92 HOTSPOT_OUTPUTDIR := $(OUTPUTDIR)/hotspot
  93 JDK_OUTPUTDIR := $(OUTPUTDIR)/jdk
  94 IMAGES_OUTPUTDIR := $(OUTPUTDIR)/images
  95 BUNDLES_OUTPUTDIR := $(OUTPUTDIR)/bundles
  96 TESTMAKE_OUTPUTDIR := $(OUTPUTDIR)/test-make
  97 MAKESUPPORT_OUTPUTDIR := $(OUTPUTDIR)/make-support
  98 BUILDJDK_OUTPUTDIR := $(OUTPUTDIR)/buildjdk
  99 
 100 JRE_IMAGE_DIR := $(JDK_IMAGE_DIR)
 101 
 102 ################################################################################
 103 # Assume build platform is same as target platform
 104 OPENJDK_BUILD_OS := $(OPENJDK_TARGET_OS)
 105 OPENJDK_BUILD_OS_TYPE := $(OPENJDK_TARGET_OS_TYPE)
 106 OPENJDK_BUILD_OS_ENV := $(OPENJDK_TARGET_OS_ENV)
 107 
 108 OPENJDK_BUILD_CPU := $(OPENJDK_TARGET_CPU)
 109 OPENJDK_BUILD_CPU_ARCH := $(OPENJDK_TARGET_CPU_ARCH)
 110 OPENJDK_BUILD_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS)
 111 OPENJDK_BUILD_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN)
 112 
 113 ################################################################################
 114 # Java executable definitions
 115 JAVA_CMD := $(BOOT_JDK)/bin/java
 116 JAVAC_CMD := $(BOOT_JDK)/bin/javac
 117 JAR_CMD := $(BOOT_JDK)/bin/jar
 118 JLINK_CMD := $(JDK_OUTPUTDIR)/bin/jlink
 119 JMOD_CMD := $(JDK_OUTPUTDIR)/bin/jmod
 120 JARSIGNER_CMD := $(BOOT_JDK)/bin/jarsigner
 121 
 122 JAVA := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
 123 JAVA_SMALL := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
 124 JAVA_DETACH := $(FIXPATH) $(FIXPATH_DETACH_FLAG) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
 125 JAVAC := $(FIXPATH) $(JAVAC_CMD)
 126 JAR := $(FIXPATH) $(JAR_CMD)
 127 JLINK := $(FIXPATH) $(JLINK_CMD)
 128 JMOD := $(FIXPATH) $(JMOD_CMD)
 129 JARSIGNER := $(FIXPATH) $(JARSIGNER_CMD)
 130 
 131 BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
 132 ################################################################################
 133 # Some common tools. Assume most common name and no path.
 134 AWK := awk
 135 BASENAME := basename
 136 CAT := cat
 137 CD := cd
 138 CHMOD := chmod
 139 CP := cp
 140 CUT := cut
 141 DATE := date
 142 DIFF := diff
 143 DIRNAME := dirname
 144 FIND := find
 145 FIND_DELETE := -delete
 146 ECHO := echo
 147 EGREP := grep -E
 148 FGREP := grep -F
 149 GREP := grep
 150 GZIP := gzip
 151 HEAD := head
 152 LS := ls
 153 LN := ln
 154 MIG := mig
 155 MKDIR := mkdir
 156 MV := mv
 157 NAWK := nawk
 158 NICE := nice
 159 PATCH := patch
 160 PRINTF := printf
 161 RM := rm -f
 162 RMDIR := rmdir
 163 SED := sed
 164 SH := sh
 165 SORT := sort
 166 TAR := tar
 167 TAIL := tail
 168 TEE := tee
 169 TR := tr
 170 TOUCH := touch
 171 UNIQ := uniq
 172 WC := wc
 173 XARGS := xargs
 174 ZIPEXE := zip
 175 UNZIP := unzip
 176 EXPR := expr
 177 FILE := file
 178 HG := hg
 179 ULIMIT := ulimit
 180 
 181 ifeq ($(OPENJDK_BUILD_OS), windows)
 182   CYGPATH := cygpath
 183 endif
 184 
 185 ################################################################################
 186 # Simple macros from spec.gmk.in
 187 SHARED_LIBRARY=$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX)