36 JDK_CLASSES := $(call PathList, $(strip $(addprefix $(JDK_OUTPUTDIR)/modules/, \ |
36 JDK_CLASSES := $(call PathList, $(strip $(addprefix $(JDK_OUTPUTDIR)/modules/, \ |
37 java.base java.logging java.scripting jdk.dynalink))) |
37 java.base java.logging java.scripting jdk.dynalink))) |
38 |
38 |
39 NASHORN_JAR := $(IMAGES_OUTPUTDIR)/nashorn.jar |
39 NASHORN_JAR := $(IMAGES_OUTPUTDIR)/nashorn.jar |
40 |
40 |
|
41 MODULESOURCEPATH := $(NASHORN_TOPDIR)/src/*/share/classes |
|
42 |
41 # Need to use source and target 8 for nasgen to work. |
43 # Need to use source and target 8 for nasgen to work. |
42 $(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE_DEBUG, \ |
44 $(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE_DEBUG, \ |
43 JVM := $(JAVA), \ |
45 JVM := $(JAVA), \ |
44 JAVAC := $(NEW_JAVAC), \ |
46 JAVAC := $(NEW_JAVAC), \ |
45 FLAGS := -g -source 8 -target 8 -bootclasspath $(JDK_CLASSES), \ |
47 FLAGS := -g -source 9 -target 9 -upgrademodulepath "$(JDK_OUTPUTDIR)/modules/" \ |
|
48 -system none -modulesourcepath "$(MODULESOURCEPATH)", \ |
46 SERVER_DIR := $(SJAVAC_SERVER_DIR), \ |
49 SERVER_DIR := $(SJAVAC_SERVER_DIR), \ |
47 SERVER_JVM := $(SJAVAC_SERVER_JAVA))) |
50 SERVER_JVM := $(SJAVAC_SERVER_JAVA))) |
48 |
51 |
49 # Build nashorn into intermediate directory |
52 # Build nashorn into intermediate directory |
50 # Name the compilation setup the same as the module, as is done in the global |
53 # Name the compilation setup the same as the module, as is done in the global |
51 # CompileJavaModules.gmk, to make dependency checking with other modules work |
54 # CompileJavaModules.gmk, to make dependency checking with other modules work |
52 # seamlessly. |
55 # seamlessly. |
53 $(eval $(call SetupJavaCompilation,jdk.scripting.nashorn, \ |
56 $(eval $(call SetupJavaCompilation,jdk.scripting.nashorn, \ |
54 SETUP := GENERATE_NEWBYTECODE_DEBUG, \ |
57 SETUP := GENERATE_NEWBYTECODE_DEBUG, \ |
|
58 MODULE := jdk.scripting.nashorn, \ |
55 SRC := $(NASHORN_TOPDIR)/src/jdk.scripting.nashorn/share/classes, \ |
59 SRC := $(NASHORN_TOPDIR)/src/jdk.scripting.nashorn/share/classes, \ |
56 EXCLUDE_FILES := META-INF/MANIFEST.MF, \ |
60 EXCLUDE_FILES := META-INF/MANIFEST.MF, \ |
57 COPY := .properties .js, \ |
61 COPY := .properties .js, \ |
58 BIN := $(SUPPORT_OUTPUTDIR)/special_classes/jdk.scripting.nashorn/classes)) |
62 BIN := $(SUPPORT_OUTPUTDIR)/special_classes)) |
59 |
63 |
60 NASGEN_SRC := $(NASHORN_TOPDIR)/buildtools/nasgen/src |
64 NASGEN_SRC := $(NASHORN_TOPDIR)/buildtools/nasgen/src |
61 ASM_SRC := $(JDK_TOPDIR)/src/java.base/share/classes/jdk/internal/org/objectweb/asm |
65 ASM_SRC := $(JDK_TOPDIR)/src/java.base/share/classes/jdk/internal/org/objectweb/asm |
62 |
66 |
63 # Build nasgen |
67 # Build nasgen |
64 $(eval $(call SetupJavaCompilation,BUILD_NASGEN, \ |
68 $(eval $(call SetupJavaCompilation,BUILD_NASGEN, \ |
65 SETUP := GENERATE_OLDBYTECODE, \ |
69 SETUP := GENERATE_OLDBYTECODE, \ |
66 SRC := $(NASGEN_SRC) $(ASM_SRC), \ |
70 SRC := $(NASGEN_SRC) $(ASM_SRC), \ |
67 BIN := $(BUILDTOOLS_OUTPUTDIR)/nasgen_classes, \ |
71 BIN := $(BUILDTOOLS_OUTPUTDIR)/nasgen_classes)) |
68 ADD_JAVAC_FLAGS := -Xbootclasspath/p:"$(SUPPORT_OUTPUTDIR)/special_classes/jdk.scripting.nashorn/classes")) |
|
69 |
|
70 # Nasgen needs nashorn classes |
|
71 $(BUILD_NASGEN): $(jdk.scripting.nashorn) |
|
72 |
72 |
73 NASHORN_CLASSES_DIR := $(JDK_OUTPUTDIR)/modules/jdk.scripting.nashorn |
73 NASHORN_CLASSES_DIR := $(JDK_OUTPUTDIR)/modules/jdk.scripting.nashorn |
74 NASGEN_RUN_FILE := $(NASHORN_CLASSES_DIR)/_the.nasgen.run |
74 NASGEN_RUN_FILE := $(NASHORN_CLASSES_DIR)/_the.nasgen.run |
75 |
75 |
|
76 ifeq ($(BOOT_JDK_MODULAR), true) |
|
77 NASGEN_OPTIONS := \ |
|
78 -cp $(BUILDTOOLS_OUTPUTDIR)/nasgen_classes \ |
|
79 -Xpatch:$(BUILDTOOLS_OUTPUTDIR)/nasgen_classes \ |
|
80 -XaddExports:$(subst $(SPACE),$(COMMA),$(strip \ |
|
81 java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED \ |
|
82 java.base/jdk.internal.org.objectweb.asm.util=ALL-UNNAMED \ |
|
83 )) |
|
84 else |
|
85 NASGEN_OPTIONS := \ |
|
86 -Xbootclasspath/p:$(BUILDTOOLS_OUTPUTDIR)/nasgen_classes |
|
87 endif |
|
88 |
76 # Copy classes to final classes dir and run nasgen to modify classes in jdk.nashorn.internal.objects package |
89 # Copy classes to final classes dir and run nasgen to modify classes in jdk.nashorn.internal.objects package |
77 $(NASGEN_RUN_FILE): $(BUILD_NASGEN) |
90 $(NASGEN_RUN_FILE): $(BUILD_NASGEN) $(jdk.scripting.nashorn) |
78 $(ECHO) Running nasgen |
91 $(ECHO) Running nasgen |
79 $(MKDIR) -p $(@D) |
92 $(MKDIR) -p $(@D) |
80 $(RM) -rf $(@D)/jdk $(@D)/netscape |
93 $(RM) -rf $(@D)/jdk $(@D)/netscape |
81 $(CP) -R -p $(SUPPORT_OUTPUTDIR)/special_classes/jdk.scripting.nashorn/classes/* $(@D)/ |
94 $(CP) -R -p $(SUPPORT_OUTPUTDIR)/special_classes/jdk.scripting.nashorn/* $(@D)/ |
82 $(FIXPATH) $(JAVA) \ |
95 $(JAVA) $(NASGEN_OPTIONS) \ |
83 -Xbootclasspath/p:$(call PathList, $(BUILDTOOLS_OUTPUTDIR)/nasgen_classes \ |
|
84 $(SUPPORT_OUTPUTDIR)/special_classes/jdk.scripting.nashorn/classes) \ |
|
85 jdk.nashorn.internal.tools.nasgen.Main $(@D) jdk.nashorn.internal.objects $(@D) |
96 jdk.nashorn.internal.tools.nasgen.Main $(@D) jdk.nashorn.internal.objects $(@D) |
86 $(TOUCH) $@ |
97 $(TOUCH) $@ |
87 |
98 |
88 # Version file needs to be processed with version numbers |
99 # Version file needs to be processed with version numbers |
89 $(eval $(call SetupTextFileProcessing, BUILD_VERSION_FILE, \ |
100 $(eval $(call SetupTextFileProcessing, BUILD_VERSION_FILE, \ |