< prev index next >

make/RunTestsPrebuilt.gmk

Print this page
rev 53172 : Add fallback if NUM_CORES cannot be found and print warning


  32 ifneq ($(findstring :, $(MAKE)), )
  33   export MAKE := $(patsubst $(CURDIR)%, %, $(patsubst $(CURDIR)/%, %, $(MAKE)))
  34 endif
  35 
  36 # Locate this Makefile
  37 ifeq ($(filter /%, $(lastword $(MAKEFILE_LIST))),)
  38   makefile_path := $(CURDIR)/$(strip $(lastword $(MAKEFILE_LIST)))
  39 else
  40   makefile_path := $(lastword $(MAKEFILE_LIST))
  41 endif
  42 TOPDIR := $(strip $(patsubst %/make/, %, $(dir $(makefile_path))))
  43 
  44 ################################################################################
  45 # Functions
  46 ################################################################################
  47 
  48 # Setup a required or optional variable, and/or check that it is properly
  49 # given.
  50 # Note: No spaces are allowed around the arguments.
  51 #
  52 # $1: The name of the argument
  53 # $2: The default value, if any, or OPTIONAL (do not provide a default but
  54 #     do not exit if it is missing)
  55 # $3: If NO_CHECK, disable checking for target file/directory existence

  56 define SetupVariable
  57   ifeq ($$($1), )
  58     ifeq ($2, )
  59       $$(info Error: Prebuilt variable $1 is missing, needed for run-tests-prebuilt)
  60       $$(error Cannot continue.)
  61     else ifeq ($2, OPTIONAL)
  62       ifneq ($$(findstring $$(LOG), info debug trace), )
  63         $$(info Prebuilt variable $1 is not provided)
  64       endif
  65     else
  66       ifneq ($$(findstring $$(LOG), info debug trace), )
  67         $$(info Prebuilt variable $1=$2 (default value))
  68       endif
  69       $1:=$2
  70     endif
  71   else
  72     ifneq ($$(findstring $$(LOG), info debug trace), )
  73       $$(info Prebuilt variable $1=$$($1))
  74     endif
  75   endif
  76   # If $1 has a value (is not optional), and $3 is not set (to NO_CHECK),
  77   # and if wildcard is empty, then complain that the file is missing.
  78   ifeq ($$(strip $$(if $$($1), , OPTIONAL) $$(wildcard $$($1)) $3), )






  79     $$(info Error: Prebuilt variable $1 points to missing file/directory:)
  80     $$(info '$$($1)')
  81     $$(error Cannot continue.)
  82   endif

  83 endef
  84 
  85 # Create an ephemeral spec file
  86 #
  87 # $1: The output file name
  88 # $2..$N: The lines to output to the file
  89 define CreateNewSpec
  90   $(if $(strip $(26)), \
  91     $(error Internal makefile error: \
  92       Too many arguments to macro, please update CreateNewSpec in RunTestsPrebuilt.gmk) \
  93   ) \
  94   $(shell $(RM) $1) \
  95   $(foreach i, $(call sequence, 2, 25), \
  96     $(if $(strip $($i)), \
  97       $(call AppendFile, $(strip $($i)), $1) \
  98     ) \
  99   )
 100 endef
 101 
 102 ################################################################################
 103 # Check input and setup basic buildsystem support
 104 ################################################################################
 105 
 106 # Verify that user has given correct additional input.
 107 
 108 # These variables are absolutely necessary
 109 $(eval $(call SetupVariable,OUTPUTDIR))
 110 $(eval $(call SetupVariable,BOOT_JDK))
 111 $(eval $(call SetupVariable,JT_HOME))
 112 
 113 # These can have default values based on the ones above
 114 $(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
 115 $(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
 116 $(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols))
 117 
 118 # Provide default values for tools that we need
 119 $(eval $(call SetupVariable,MAKE,make,NO_CHECK))
 120 $(eval $(call SetupVariable,BASH,bash,NO_CHECK))
 121 
 122 # Check optional variables
 123 $(eval $(call SetupVariable,JIB_JAR,OPTIONAL))
 124 
 125 # Now that we have verified that we have the required variables available, we
 126 # can include the prebuilt spec file ourselves, without an ephemeral spec
 127 # wrapper. This is required so we can include MakeBase which is needed for
 128 # CreateNewSpec.
 129 HAS_SPEC :=
 130 include $(TOPDIR)/make/InitSupport.gmk
 131 
 132 $(eval $(call CheckDeprecatedEnvironment))
 133 $(eval $(call CheckInvalidMakeFlags))
 134 $(eval $(call ParseLogLevel))
 135 
 136 SPEC := $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk


 185   ifeq ($(UNAME_CPU), i686)
 186     OPENJDK_TARGET_CPU := x86
 187     OPENJDK_TARGET_CPU_BITS := 32
 188   else
 189     # Assume all others are 64-bit. We use the same CPU name as uname for
 190     # at least x86_64 and aarch64.
 191     OPENJDK_TARGET_CPU := $(UNAME_CPU)
 192     OPENJDK_TARGET_CPU_BITS := 64
 193   endif
 194 endif
 195 
 196 OPENJDK_TARGET_CPU_ARCH := $(OPENJDK_TARGET_CPU)
 197 ifeq ($(OPENJDK_TARGET_CPU), x86_64)
 198   OPENJDK_TARGET_CPU_ARCH := x86
 199 else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
 200   OPENJDK_TARGET_CPU_ARCH := sparc
 201 endif
 202 
 203 ifeq ($(OPENJDK_TARGET_OS), windows)
 204   ifeq ($(wildcard $(TEST_IMAGE_DIR)/bin/fixpath.exe), )
 205     $$(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
 206     $$(error Cannot continue.)
 207   endif
 208   FIXPATH := $(TEST_IMAGE_DIR)/bin/fixpath.exe -c
 209   PATH_SEP:=;
 210 else
 211   FIXPATH :=
 212   PATH_SEP:=:
 213 endif
 214 
 215 # Check number of cores
 216 ifeq ($(OPENJDK_TARGET_OS), linux)
 217     NUM_CORES := $(shell $(CAT) /proc/cpuinfo  | $(GREP) -c processor)
 218 else ifeq ($(OPENJDK_TARGET_OS), macosx)
 219     NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
 220 else ifeq ($(OPENJDK_TARGET_OS), solaris)
 221     NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
 222 else ifeq ($(OPENJDK_TARGET_OS), windows)
 223     NUM_CORES := $(NUMBER_OF_PROCESSORS)
 224 else


 225     NUM_CORES := 1
 226 endif
 227 
 228 ################################################################################
 229 # Generate the ephemeral spec file
 230 ################################################################################
 231 
 232 # Now we can include additional custom support.
 233 # This might define CUSTOM_NEW_SPEC_LINE
 234 ifneq ($(CUSTOM_MAKE_DIR), )
 235   include $(CUSTOM_MAKE_DIR)/RunTestsPrebuilt.gmk
 236 endif
 237 
 238 NEW_SPEC := $(OUTPUTDIR)/run-test-spec.gmk
 239 
 240 $(call CreateNewSpec, $(NEW_SPEC), \
 241     # Generated file -- do not edit!, \
 242     SPEC := $(NEW_SPEC), \
 243     TOPDIR := $(TOPDIR), \
 244     OUTPUTDIR := $(OUTPUTDIR), \


 259     OPENJDK_TARGET_CPU_ARCH := $(OPENJDK_TARGET_CPU_ARCH), \
 260     OPENJDK_TARGET_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS), \
 261     OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
 262     NUM_CORES := $(NUM_CORES), \
 263     include $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk, \
 264     $(CUSTOM_NEW_SPEC_LINE), \
 265 )
 266 
 267 ################################################################################
 268 # The run-test-prebuilt target
 269 ################################################################################
 270 
 271 SPEC := $(NEW_SPEC)
 272 
 273 default: all
 274 
 275 run-test-prebuilt:
 276         @$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
 277         @cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -f make/RunTests.gmk run-test \
 278             TEST="$(TEST)"
 279         @if test -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error ; then \
 280           exit 1 ; \
 281         fi
 282 
 283 all: run-test-prebuilt
 284 
 285 .PHONY: default all


  32 ifneq ($(findstring :, $(MAKE)), )
  33   export MAKE := $(patsubst $(CURDIR)%, %, $(patsubst $(CURDIR)/%, %, $(MAKE)))
  34 endif
  35 
  36 # Locate this Makefile
  37 ifeq ($(filter /%, $(lastword $(MAKEFILE_LIST))),)
  38   makefile_path := $(CURDIR)/$(strip $(lastword $(MAKEFILE_LIST)))
  39 else
  40   makefile_path := $(lastword $(MAKEFILE_LIST))
  41 endif
  42 TOPDIR := $(strip $(patsubst %/make/, %, $(dir $(makefile_path))))
  43 
  44 ################################################################################
  45 # Functions
  46 ################################################################################
  47 
  48 # Setup a required or optional variable, and/or check that it is properly
  49 # given.
  50 # Note: No spaces are allowed around the arguments.
  51 #
  52 # $1: The name of the variable
  53 # $2: The default value, if any, or OPTIONAL (do not provide a default but
  54 #     do not exit if it is missing)
  55 # $3: If NO_CHECK, disable checking for target file/directory existence
  56 #     If MKDIR, create the default directory
  57 define SetupVariable
  58   ifeq ($$($1), )
  59     ifeq ($2, )
  60       $$(info Error: Prebuilt variable $1 is missing, needed for run-tests-prebuilt)
  61       $$(error Cannot continue.)
  62     else ifeq ($2, OPTIONAL)
  63       ifneq ($$(findstring $$(LOG), info debug trace), )
  64         $$(info Prebuilt variable $1 is not provided)
  65       endif
  66     else
  67       ifneq ($$(findstring $$(LOG), info debug trace), )
  68         $$(info Prebuilt variable $1=$2 (default value))
  69       endif
  70       $1:=$2
  71     endif
  72   else
  73     ifneq ($$(findstring $$(LOG), info debug trace), )
  74       $$(info Prebuilt variable $1=$$($1))
  75     endif
  76   endif
  77   # If $1 has a value (is not optional), and $3 is not set (to NO_CHECK),
  78   # and if wildcard is empty, then complain that the file is missing.
  79   ifeq ($3, MKDIR)
  80     ifneq ($$(findstring $$(LOG), info debug trace), )
  81       $$(info Creating directory for $1)
  82     endif
  83     $$(shell mkdir -p $$($1))
  84   else ifneq ($3, NO_CHECK)
  85     ifeq ($$(strip $$(if $$($1), , OPTIONAL) $$(wildcard $$($1))), )
  86       $$(info Error: Prebuilt variable $1 points to missing file/directory:)
  87       $$(info '$$($1)')
  88       $$(error Cannot continue.)
  89     endif
  90   endif
  91 endef
  92 
  93 # Create an ephemeral spec file
  94 #
  95 # $1: The output file name
  96 # $2..$N: The lines to output to the file
  97 define CreateNewSpec
  98   $(if $(strip $(26)), \
  99     $(error Internal makefile error: \
 100       Too many arguments to macro, please update CreateNewSpec in RunTestsPrebuilt.gmk) \
 101   ) \
 102   $(shell $(RM) $1) \
 103   $(foreach i, $(call sequence, 2, 25), \
 104     $(if $(strip $($i)), \
 105       $(call AppendFile, $(strip $($i)), $1) \
 106     ) \
 107   )
 108 endef
 109 
 110 ################################################################################
 111 # Check input and setup basic buildsystem support
 112 ################################################################################
 113 
 114 # Verify that user has given correct additional input.
 115 
 116 # These variables are absolutely necessary
 117 $(eval $(call SetupVariable,OUTPUTDIR,$(TOPDIR)/build/run-test-prebuilt,MKDIR))
 118 $(eval $(call SetupVariable,BOOT_JDK))
 119 $(eval $(call SetupVariable,JT_HOME))
 120 
 121 # These can have default values based on the ones above
 122 $(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
 123 $(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
 124 $(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols,NO_CHECK))
 125 
 126 # Provide default values for tools that we need
 127 $(eval $(call SetupVariable,MAKE,make,NO_CHECK))
 128 $(eval $(call SetupVariable,BASH,bash,NO_CHECK))
 129 
 130 # Check optional variables
 131 $(eval $(call SetupVariable,JIB_JAR,OPTIONAL))
 132 
 133 # Now that we have verified that we have the required variables available, we
 134 # can include the prebuilt spec file ourselves, without an ephemeral spec
 135 # wrapper. This is required so we can include MakeBase which is needed for
 136 # CreateNewSpec.
 137 HAS_SPEC :=
 138 include $(TOPDIR)/make/InitSupport.gmk
 139 
 140 $(eval $(call CheckDeprecatedEnvironment))
 141 $(eval $(call CheckInvalidMakeFlags))
 142 $(eval $(call ParseLogLevel))
 143 
 144 SPEC := $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk


 193   ifeq ($(UNAME_CPU), i686)
 194     OPENJDK_TARGET_CPU := x86
 195     OPENJDK_TARGET_CPU_BITS := 32
 196   else
 197     # Assume all others are 64-bit. We use the same CPU name as uname for
 198     # at least x86_64 and aarch64.
 199     OPENJDK_TARGET_CPU := $(UNAME_CPU)
 200     OPENJDK_TARGET_CPU_BITS := 64
 201   endif
 202 endif
 203 
 204 OPENJDK_TARGET_CPU_ARCH := $(OPENJDK_TARGET_CPU)
 205 ifeq ($(OPENJDK_TARGET_CPU), x86_64)
 206   OPENJDK_TARGET_CPU_ARCH := x86
 207 else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
 208   OPENJDK_TARGET_CPU_ARCH := sparc
 209 endif
 210 
 211 ifeq ($(OPENJDK_TARGET_OS), windows)
 212   ifeq ($(wildcard $(TEST_IMAGE_DIR)/bin/fixpath.exe), )
 213     $(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
 214     $(error Cannot continue.)
 215   endif
 216   FIXPATH := $(TEST_IMAGE_DIR)/bin/fixpath.exe -c
 217   PATH_SEP:=;
 218 else
 219   FIXPATH :=
 220   PATH_SEP:=:
 221 endif
 222 
 223 # Check number of cores
 224 ifeq ($(OPENJDK_TARGET_OS), linux)
 225   NUM_CORES := $(shell $(CAT) /proc/cpuinfo  | $(GREP) -c processor)
 226 else ifeq ($(OPENJDK_TARGET_OS), macosx)
 227   NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
 228 else ifeq ($(OPENJDK_TARGET_OS), solaris)
 229   NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
 230 else ifeq ($(OPENJDK_TARGET_OS), windows)
 231   NUM_CORES := $(NUMBER_OF_PROCESSORS)
 232 endif
 233 ifeq ($(NUM_CORES), )
 234   $(warn Could not find number of CPUs, assuming 1)
 235   NUM_CORES := 1
 236 endif
 237 
 238 ################################################################################
 239 # Generate the ephemeral spec file
 240 ################################################################################
 241 
 242 # Now we can include additional custom support.
 243 # This might define CUSTOM_NEW_SPEC_LINE
 244 ifneq ($(CUSTOM_MAKE_DIR), )
 245   include $(CUSTOM_MAKE_DIR)/RunTestsPrebuilt.gmk
 246 endif
 247 
 248 NEW_SPEC := $(OUTPUTDIR)/run-test-spec.gmk
 249 
 250 $(call CreateNewSpec, $(NEW_SPEC), \
 251     # Generated file -- do not edit!, \
 252     SPEC := $(NEW_SPEC), \
 253     TOPDIR := $(TOPDIR), \
 254     OUTPUTDIR := $(OUTPUTDIR), \


 269     OPENJDK_TARGET_CPU_ARCH := $(OPENJDK_TARGET_CPU_ARCH), \
 270     OPENJDK_TARGET_CPU_BITS := $(OPENJDK_TARGET_CPU_BITS), \
 271     OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
 272     NUM_CORES := $(NUM_CORES), \
 273     include $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk, \
 274     $(CUSTOM_NEW_SPEC_LINE), \
 275 )
 276 
 277 ################################################################################
 278 # The run-test-prebuilt target
 279 ################################################################################
 280 
 281 SPEC := $(NEW_SPEC)
 282 
 283 default: all
 284 
 285 run-test-prebuilt:
 286         @$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
 287         @cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -f make/RunTests.gmk run-test \
 288             TEST="$(TEST)"



 289 
 290 all: run-test-prebuilt
 291 
 292 .PHONY: default all
< prev index next >