langtools/makefiles/BuildLangtools.gmk
changeset 17650 67dcfe192818
parent 17555 c4f13cad6479
child 20623 cb61ea12e375
equal deleted inserted replaced
17589:80b6c3172dc2 17650:67dcfe192818
    54 		BIN:=$(LANGTOOLS_OUTPUTDIR)/btclasses))
    54 		BIN:=$(LANGTOOLS_OUTPUTDIR)/btclasses))
    55 
    55 
    56 # The compileprops tools compiles a properties file into a resource bundle.
    56 # The compileprops tools compiles a properties file into a resource bundle.
    57 TOOL_COMPILEPROPS_CMD:=$(JAVA) -cp $(LANGTOOLS_OUTPUTDIR)/btclasses compileproperties.CompileProperties -quiet
    57 TOOL_COMPILEPROPS_CMD:=$(JAVA) -cp $(LANGTOOLS_OUTPUTDIR)/btclasses compileproperties.CompileProperties -quiet
    58 # Lookup the properties that need to be compiled into resource bundles.
    58 # Lookup the properties that need to be compiled into resource bundles.
    59 PROPSOURCES:=$(shell find $(LANGTOOLS_TOPDIR)/src/share/classes -name "*.properties")
    59 PROPSOURCES:=$(shell $(FIND) $(LANGTOOLS_TOPDIR)/src/share/classes -name "*.properties")
    60 # Strip away prefix and suffix, leaving for example only: "com/sun/tools/javac/resources/javac_zh_CN"
    60 # Strip away prefix and suffix, leaving for example only: "com/sun/tools/javac/resources/javac_zh_CN"
    61 PROPPATHS:=$(patsubst $(LANGTOOLS_TOPDIR)/src/share/classes/%.properties,%,$(PROPSOURCES))
    61 PROPPATHS:=$(patsubst $(LANGTOOLS_TOPDIR)/src/share/classes/%.properties,%,$(PROPSOURCES))
    62 # Generate the list of java files to be created.
    62 # Generate the list of java files to be created.
    63 PROPJAVAS:=$(patsubst %,$(LANGTOOLS_OUTPUTDIR)/gensrc/%.java,$(PROPPATHS))
    63 PROPJAVAS:=$(patsubst %,$(LANGTOOLS_OUTPUTDIR)/gensrc/%.java,$(PROPPATHS))
    64 # Generate the package dirs for the tobe generated java files.
    64 # Generate the package dirs for the tobe generated java files.
    68 PROPCMDLINE:=$(subst _SPACE_,$(SPACE),$(join $(addprefix -compile_SPACE_,$(PROPSOURCES)), \
    68 PROPCMDLINE:=$(subst _SPACE_,$(SPACE),$(join $(addprefix -compile_SPACE_,$(PROPSOURCES)), \
    69 		$(addsuffix _SPACE_java.util.ListResourceBundle,$(addprefix _SPACE_$(LANGTOOLS_OUTPUTDIR)/gensrc/,$(addsuffix .java,$(PROPPATHS))))))
    69 		$(addsuffix _SPACE_java.util.ListResourceBundle,$(addprefix _SPACE_$(LANGTOOLS_OUTPUTDIR)/gensrc/,$(addsuffix .java,$(PROPPATHS))))))
    70 
    70 
    71 # Now setup the rule for the generation of the resource bundles.
    71 # Now setup the rule for the generation of the resource bundles.
    72 $(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d : $(PROPSOURCES) $(BUILD_TOOLS)
    72 $(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d : $(PROPSOURCES) $(BUILD_TOOLS)
    73 	rm -rf $(@D)/*
    73 	$(RM) -r $(@D)/*
    74 	mkdir -p $(@D) $(PROPDIRS)
    74 	$(MKDIR) -p $(@D) $(PROPDIRS)
    75 	printf "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties
    75 	$(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties
    76 	printf "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties
    76 	$(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties
    77 	printf "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.properties
    77 	$(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.properties
    78 	printf "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.properties
    78 	$(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.properties
    79 	echo Compiling $(words $(PROPSOURCES) v1 v2 v3) properties into resource bundles
    79 	$(ECHO) Compiling $(words $(PROPSOURCES) v1 v2 v3) properties into resource bundles
    80 	$(TOOL_COMPILEPROPS_CMD) $(PROPCMDLINE) \
    80 	$(TOOL_COMPILEPROPS_CMD) $(PROPCMDLINE) \
    81 		-compile 	$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties \
    81 		-compile 	$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties \
    82 				$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.java \
    82 				$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.java \
    83 				java.util.ListResourceBundle \
    83 				java.util.ListResourceBundle \
    84 		-compile 	$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties \
    84 		-compile 	$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties \
    88 				$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.java \
    88 				$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.java \
    89 				java.util.ListResourceBundle \
    89 				java.util.ListResourceBundle \
    90 		-compile	$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.properties \
    90 		-compile	$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.properties \
    91 				$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.java \
    91 				$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.java \
    92 				java.util.ListResourceBundle
    92 				java.util.ListResourceBundle
    93 	echo PROPS_ARE_CREATED=yes > $@
    93 	$(ECHO) PROPS_ARE_CREATED=yes > $@
    94 
    94 
    95 # Trigger the generation of the resource bundles. After the resource bundles have
    95 # Trigger the generation of the resource bundles. After the resource bundles have
    96 # been compiled, then the makefile will restart and the newly created java files
    96 # been compiled, then the makefile will restart and the newly created java files
    97 # will become part of the build further along in the makefile.
    97 # will become part of the build further along in the makefile.
    98 -include $(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d
    98 -include $(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d
   132 
   132 
   133         # Now setup the build recipe for genstubs.
   133         # Now setup the build recipe for genstubs.
   134         $(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs.d : $(STUBSOURCES) $(BUILD_TOOLS) \
   134         $(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs.d : $(STUBSOURCES) $(BUILD_TOOLS) \
   135 				$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
   135 				$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
   136 				$(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d
   136 				$(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d
   137 	       	mkdir -p $(@D)
   137 	       	$(MKDIR) -p $(@D)
   138 		mkdir -p $(LANGTOOLS_OUTPUTDIR)/tmpstubs
   138 		$(MKDIR) -p $(LANGTOOLS_OUTPUTDIR)/tmpstubs
   139 	       	echo $(LOG_INFO) Generating stubs from JDK sources.
   139 	       	$(ECHO) $(LOG_INFO) Generating stubs from JDK sources.
   140 	       	($(TOOL_GENSTUBS_CMD) -s $(LANGTOOLS_OUTPUTDIR)/tmpstubs -sourcepath $(JDKS) $(STUBCLASSES) && echo STUBS_ARE_CREATED=yes > $@)
   140 	       	($(TOOL_GENSTUBS_CMD) -s $(LANGTOOLS_OUTPUTDIR)/tmpstubs -sourcepath $(JDKS) $(STUBCLASSES) && $(ECHO) STUBS_ARE_CREATED=yes > $@)
   141 		if $(DIFF) -x "_the*" -rq $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(LANGTOOLS_OUTPUTDIR)/genstubs > /dev/null 2>&1; then \
   141 		if $(DIFF) -x "_the*" -rq $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(LANGTOOLS_OUTPUTDIR)/genstubs > /dev/null 2>&1; then \
   142 			echo $(LOG_INFO) No changes in the stubs!; \
   142 			$(ECHO) $(LOG_INFO) No changes in the stubs!; \
   143 			rm -rf $(LANGTOOLS_OUTPUTDIR)/tmpstubs; \
   143 			$(RM) -r $(LANGTOOLS_OUTPUTDIR)/tmpstubs; \
   144 		else \
   144 		else \
   145 			echo $(LOG_INFO) Changes in stubs detected!; \
   145 			$(ECHO) $(LOG_INFO) Changes in stubs detected!; \
   146 			rm -rf $(@D); \
   146 			$(RM) -r $(@D); \
   147 			mv $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(@D); \
   147 			$(MV) $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(@D); \
   148 		fi
   148 		fi
   149 		echo STUBS_ARE_CREATED=yes > $@
   149 		$(ECHO) STUBS_ARE_CREATED=yes > $@
   150 
   150 
   151         # Trigger a generation of the genstubs java source code and a restart
   151         # Trigger a generation of the genstubs java source code and a restart
   152         # of the makefile to make sure that the following build setup use the 
   152         # of the makefile to make sure that the following build setup use the 
   153         # newly created java files.
   153         # newly created java files.
   154         -include $(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs.d
   154         -include $(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs.d