nashorn/make/BuildNashorn.gmk
changeset 36517 41a1c20eb619
parent 34456 84eaea8d0574
child 36766 22ae7151aae7
equal deleted inserted replaced
36516:2f79c19ec14c 36517:41a1c20eb619
    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, \