@@ -55,6 +55,19 @@ OPENJ9_REDIRECTOR := redirector/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX)
55
55
#openjdk makeflags don't work with openj9/omr native compiles; override with number of cpus which openj9 and omr need supplied
56
56
override MAKEFLAGS := -j $(JOBS)
57
57
58
+ ifeq ($(OPENJDK_TARGET_OS),windows)
59
+ # set Visual Studio environment
60
+ EXPORT_MSVS_ENV_VARS := PATH="$(PATH)" INCLUDE="$(INCLUDE)" LIB="$(LIB)"
61
+ # disable mingw on windows, use default c compiler
62
+ EXPORT_NO_USE_MINGW := NO_USE_MINGW=true
63
+ # set the output directory for shared libraries
64
+ OPENJ9_LIBS_OUTPUT_DIR := bin
65
+ else
66
+ EXPORT_MSVS_ENV_VARS :=
67
+ EXPORT_NO_USE_MINGW :=
68
+ OPENJ9_LIBS_OUTPUT_DIR := lib$(OPENJDK_TARGET_CPU_LIBDIR)
69
+ endif
70
+
58
71
.PHONY : \
59
72
build-j9 \
60
73
clean-j9 \
@@ -72,20 +85,20 @@ override MAKEFLAGS := -j $(JOBS)
72
85
# param 2 = The jdk/jre directory to add openj9 content
73
86
define generated_target_rules
74
87
.PHONY : stage_openj9_$1
75
- $(foreach file,$(OPENJ9_SHARED_LIBRARIES),$(eval $(call openj9_copy_file,$2/lib$(OPENJDK_TARGET_CPU_LIBDIR )/compressedrefs/$(file),$(OUTPUT_ROOT)/vm/$(file))))
76
- $(foreach file,$(OPENJ9_ALT_SHARED_LIBRARIES),$(eval $(call openj9_copy_file,$2/lib$(OPENJDK_TARGET_CPU_LIBDIR )/compressedrefs/$(notdir $(file)),$(OUTPUT_ROOT)/vm/$(file))))
77
- $(foreach file,$(OPENJ9_VM_FILES) $(OPENJ9_PROPERTY_FILES),$(eval $(call openj9_copy_file,$2/lib$(OPENJDK_TARGET_CPU_LIBDIR )/compressedrefs/$(file),$(OUTPUT_ROOT)/vm/$(file))))
88
+ $(foreach file,$(OPENJ9_SHARED_LIBRARIES),$(eval $(call openj9_copy_file,$2/$(OPENJ9_LIBS_OUTPUT_DIR )/compressedrefs/$(file),$(OUTPUT_ROOT)/vm/$(file))))
89
+ $(foreach file,$(OPENJ9_ALT_SHARED_LIBRARIES),$(eval $(call openj9_copy_file,$2/$(OPENJ9_LIBS_OUTPUT_DIR )/compressedrefs/$(notdir $(file)),$(OUTPUT_ROOT)/vm/$(file))))
90
+ $(foreach file,$(OPENJ9_VM_FILES) $(OPENJ9_PROPERTY_FILES),$(eval $(call openj9_copy_file,$2/$(OPENJ9_LIBS_OUTPUT_DIR )/compressedrefs/$(file),$(OUTPUT_ROOT)/vm/$(file))))
78
91
$(foreach file,$(OPENJ9_LIB_FILES),$(eval $(call openj9_copy_file,$2/lib/$(file),$(OUTPUT_ROOT)/vm/$(file))))
79
92
$(foreach file,$(OPENJ9_NOTICE_FILES),$(eval $(call openj9_copy_file,$2/$(file),$(SRC_ROOT)/$(file))))
80
- $(foreach file,$(OPENJ9_REDIRECTOR),$(eval $(call openj9_copy_file,$2/lib$(OPENJDK_TARGET_CPU_LIBDIR )/j9vm/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX),$(OUTPUT_ROOT)/vm/$(file))))
93
+ $(foreach file,$(OPENJ9_REDIRECTOR),$(eval $(call openj9_copy_file,$2/$(OPENJ9_LIBS_OUTPUT_DIR )/j9vm/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX),$(OUTPUT_ROOT)/vm/$(file))))
81
94
$(eval $(call openj9_set_classlib_props,$2/lib,$(OUTPUT_ROOT)/vm))
82
- stage_openj9_shared_libraries_$1 := $(addprefix $2/lib$(OPENJDK_TARGET_CPU_LIBDIR )/compressedrefs/,$(OPENJ9_SHARED_LIBRARIES))
83
- stage_openj9_alt_shared_libraries_$1 := $(addprefix $2/lib$(OPENJDK_TARGET_CPU_LIBDIR )/compressedrefs/,$(notdir $(OPENJ9_ALT_SHARED_LIBRARIES)))
95
+ stage_openj9_shared_libraries_$1 := $(addprefix $2/$(OPENJ9_LIBS_OUTPUT_DIR )/compressedrefs/,$(OPENJ9_SHARED_LIBRARIES))
96
+ stage_openj9_alt_shared_libraries_$1 := $(addprefix $2/$(OPENJ9_LIBS_OUTPUT_DIR )/compressedrefs/,$(notdir $(OPENJ9_ALT_SHARED_LIBRARIES)))
84
97
stage_openj9_lib_files_$1 := $(addprefix $2/lib/,$(OPENJ9_LIB_FILES))
85
98
stage_openj9_notice_files_$1 := $(addprefix $2/,$(OPENJ9_NOTICE_FILES))
86
- stage_openj9_vm_files_$1 := $(addprefix $2/lib$(OPENJDK_TARGET_CPU_LIBDIR )/compressedrefs/,$(OPENJ9_VM_FILES))
87
- stage_openj9_property_files_$1 := $(addprefix $2/lib$(OPENJDK_TARGET_CPU_LIBDIR )/compressedrefs/,$(OPENJ9_PROPERTY_FILES))
88
- stage_openj9_redirector_$1 := $2/lib$(OPENJDK_TARGET_CPU_LIBDIR )/j9vm/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX)
99
+ stage_openj9_vm_files_$1 := $(addprefix $2/$(OPENJ9_LIBS_OUTPUT_DIR )/compressedrefs/,$(OPENJ9_VM_FILES))
100
+ stage_openj9_property_files_$1 := $(addprefix $2/$(OPENJ9_LIBS_OUTPUT_DIR )/compressedrefs/,$(OPENJ9_PROPERTY_FILES))
101
+ stage_openj9_redirector_$1 := $2/$(OPENJ9_LIBS_OUTPUT_DIR )/j9vm/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX)
89
102
stage_openj9_classlib_props_$1 := $2/lib/classlib.properties
90
103
stage_openj9_$1 : \
91
104
$$(stage_openj9_shared_libraries_$1) \
@@ -238,11 +251,11 @@ run-preprocessors-j9 : stage-j9 \
238
251
$(OUTPUT_ROOT)/vm/compiler/jit.version \
239
252
$(OUTPUT_ROOT)/vm/util/openj9_version_info.h
240
253
@$(ECHO) Running OpenJ9 preprocessors with OPENJ9_BUILDSPEC: $(OPENJ9_BUILDSPEC)
241
- (export BOOT_JDK=$(BOOT_JDK) \
254
+ (export BOOT_JDK=$(BOOT_JDK) $(EXPORT_MSVS_ENV_VARS) \
242
255
&& cd $(OUTPUT_ROOT)/vm \
243
256
&& $(MAKE) $(MAKEFLAGS) -f buildtools.mk \
244
257
BUILD_ID=$(BUILD_ID) \
245
- FREEMARKER_JAR=$(FREEMARKER_JAR) \
258
+ FREEMARKER_JAR=" $(FREEMARKER_JAR)" \
246
259
J9VM_SHA=$(OPENJ9_SHA) \
247
260
JAVA_VERSION=80 \
248
261
VERSION_MAJOR=8 \
@@ -258,7 +271,10 @@ run-preprocessors-j9 : stage-j9 \
258
271
259
272
build-j9 : run-preprocessors-j9
260
273
@$(ECHO) Compiling OpenJ9 in $(OUTPUT_ROOT)/vm
261
- (export OMR_DIR=$(OUTPUT_ROOT)/vm/omr OPENJ9_BUILD=true && cd $(OUTPUT_ROOT)/vm && $(MAKE) $(MAKEFLAGS) JAVA_VERSION=80 VERSION_MAJOR=8 all)
274
+ (export OPENJ9_BUILD=true $(EXPORT_NO_USE_MINGW) $(EXPORT_MSVS_ENV_VARS) \
275
+ && cd $(OUTPUT_ROOT)/vm \
276
+ && $(MAKE) $(MAKEFLAGS) JAVA_VERSION=80 VERSION_MAJOR=8 all \
277
+ )
262
278
@$(ECHO) OpenJ9 compile complete
263
279
# jvm and jsig are required for compiling other java.base support natives
264
280
@$(MKDIR) -p $(OUTPUT_ROOT)/support/modules_libs/java.base/server/
@@ -276,31 +292,42 @@ J9JCL_SOURCES_DONEFILE := $(JDK_OUTPUTDIR)/j9jcl_sources/j9jcl_sources.done
276
292
recur_wildcard = $(foreach dir,$(wildcard $1/*),$(call recur_wildcard,$(dir),$2) $(filter $(subst *,%,$2),$(dir)))
277
293
AllJclSource = $(call recur_wildcard,$(OPENJ9_TOPDIR)/jcl/src,*.java)
278
294
295
+ # FixPath
296
+ # On Windows, convert unix path to windows path,
297
+ # on other platforms leave it unchanged
298
+ # ----------------------
299
+ # param 1 = The path to convert
300
+ FixPath = $(if $(findstring windows, $(OPENJDK_TARGET_OS)),$(shell $(CYGPATH) -m $1),$1)
301
+
302
+ JPP_BASE_DIR := $(call FixPath,$(OPENJ9_TOPDIR))
303
+ JPP_DEST := $(call FixPath,$(JDK_OUTPUTDIR)/j9jcl_sources/jdk/src/share/classes)
304
+ JPP_JAR := $(call FixPath,$(OUTPUT_ROOT)/vm/sourcetools/lib/jpp.jar)
305
+
279
306
$(J9JCL_SOURCES_DONEFILE) : $(AllJclSource)
280
307
@$(ECHO) Generating J9JCL sources
281
308
@$(MKDIR) -p $(JDK_OUTPUTDIR)/j9jcl_sources/jdk/src/share/classes
282
- @ $(BOOT_JDK)/bin/java \
283
- -cp $(OUTPUT_ROOT)/vm/sourcetools/lib/jpp.jar \
309
+ $(BOOT_JDK)/bin/java \
310
+ -cp "$(JPP_JAR)" \
284
311
-Dfile.encoding=US-ASCII \
285
312
com.ibm.jpp.commandline.CommandlineBuilder \
286
313
-verdict \
287
- -baseDir $(OPENJ9_TOPDIR)/ \
314
+ -baseDir "$(JPP_BASE_DIR)/" \
288
315
-config SIDECAR18-SE-OPENJ9 \
289
316
-srcRoot jcl/ \
290
317
-xml jpp_configuration.xml \
291
- -dest $(JDK_OUTPUTDIR)/j9jcl_sources/jdk/src/share/classes \
318
+ -dest "$(JPP_DEST)" \
292
319
-macro:define "com.ibm.oti.vm.library.version=29" \
293
320
-tag:define "PLATFORM-$(OPENJ9_PLATFORM_CODE)"
294
321
@$(BOOT_JDK)/bin/java \
295
- -cp $(OUTPUT_ROOT)/vm/sourcetools/lib/jpp.jar \
322
+ -cp "$(JPP_JAR)" \
296
323
-Dfile.encoding=US-ASCII \
297
324
com.ibm.jpp.commandline.CommandlineBuilder \
298
325
-verdict \
299
- -baseDir $(OPENJ9_TOPDIR)/ \
326
+ -baseDir "$(JPP_BASE_DIR)/" \
300
327
-config SIDECAR18-TOOLS-OPENJ9 \
301
328
-srcRoot jcl/ \
302
329
-xml jpp_configuration.xml \
303
- -dest $(JDK_OUTPUTDIR)/j9jcl_sources/jdk/src/share/classes \
330
+ -dest "$(JPP_DEST)" \
304
331
-macro:define "com.ibm.oti.vm.library.version=29" \
305
332
-tag:define "PLATFORM-$(OPENJ9_PLATFORM_CODE)"
306
333
@$(MKDIR) -p $(@D)
0 commit comments