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
|