hotspot/make/Makefile

Print this page

        

@@ -82,20 +82,27 @@
 
 # Typical C1/C2 targets made available with this Makefile
 C1_VM_TARGETS=product1 fastdebug1 optimized1 jvmg1
 C2_VM_TARGETS=product  fastdebug  optimized  jvmg
 KERNEL_VM_TARGETS=productkernel fastdebugkernel optimizedkernel jvmgkernel
+ZERO_VM_TARGETS=productzero fastdebugzero optimizedzero jvmgzero
 
 # JDK directory list
 JDK_DIRS=bin include jre lib demo
 
 all:           all_product all_fastdebug
 all_product:   product product1 productkernel docs export_product
 all_fastdebug: fastdebug fastdebug1 fastdebugkernel docs export_fastdebug
 all_debug:     jvmg jvmg1 jvmgkernel docs export_debug
 all_optimized: optimized optimized1 optimizedkernel docs export_optimized
 
+allzero:           all_productzero all_fastdebugzero
+all_productzero:   productzero docs export_product
+all_fastdebugzero: fastdebugzero docs export_fastdebug
+all_debugzero:     jvmgzero docs export_debug
+all_optimizedzero: optimizedzero docs export_optimized
+
 # Do everything
 world:         all create_jdk
 
 # Build or export docs
 docs:

@@ -118,10 +125,14 @@
 
 $(KERNEL_VM_TARGETS):
         $(CD) $(GAMMADIR)/make; \
         $(MAKE) VM_TARGET=$@ generic_buildkernel $(ALT_OUT)
 
+$(ZERO_VM_TARGETS):
+        $(CD) $(GAMMADIR)/make; \
+        $(MAKE) VM_TARGET=$@ generic_buildzero $(ALT_OUT)
+
 # Build compiler1 (client) rule, different for platforms
 generic_build1:
         $(MKDIR) -p $(OUTPUTDIR)
 ifeq ($(OSNAME),windows)
   ifeq ($(ARCH_DATA_MODEL), 32)

@@ -178,10 +189,16 @@
   endif
 else
         @$(ECHO) "No kernel ($(VM_TARGET)) for OS_NAME=$(OSNAME)"
 endif
 
+generic_buildzero:
+        $(MKDIR) -p $(OUTPUTDIR)
+        $(CD) $(OUTPUTDIR); \
+                $(MAKE) -f $(ABS_OS_MAKEFILE) \
+                        $(MAKE_ARGS) $(VM_TARGET)
+
 # Export file rule
 generic_export: $(EXPORT_LIST)
 export_product:
         $(MAKE) VM_SUBDIR=product                            generic_export
 export_fastdebug:

@@ -208,22 +225,29 @@
 XUSAGE=$(HS_SRC_DIR)/share/vm/Xusage.txt
 DOCS_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_docs
 C1_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_compiler1
 C2_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_compiler2
 KERNEL_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_kernel
+ZERO_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_zero
 C1_DIR=$(C1_BASE_DIR)/$(VM_SUBDIR)
 C2_DIR=$(C2_BASE_DIR)/$(VM_SUBDIR)
 KERNEL_DIR=$(KERNEL_BASE_DIR)/$(VM_SUBDIR)
+ZERO_DIR=$(ZERO_BASE_DIR)/$(VM_SUBDIR)
 
 # Misc files and generated files need to come from C1 or C2 area
+ifeq ($(ZERO_BUILD), true)
+  MISC_DIR=$(ZERO_DIR)
+  GEN_DIR=$(ZERO_BASE_DIR)/generated
+else
 ifeq ($(ARCH_DATA_MODEL), 32)
   MISC_DIR=$(C1_DIR)
   GEN_DIR=$(C1_BASE_DIR)/generated
 else
   MISC_DIR=$(C2_DIR)
   GEN_DIR=$(C2_BASE_DIR)/generated
 endif
+endif
 
 # Bin files (windows)
 ifeq ($(OSNAME),windows)
 
 # Get jvm.lib 

@@ -263,20 +287,27 @@
         $(install-file)
 endif
 
 # Shared Library
 ifneq ($(OSNAME),windows)
+  ifeq ($(ZERO_BUILD), true)
+$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(ZERO_DIR)/%.so
+        $(install-file)
+$(EXPORT_SERVER_DIR)/%.so:       $(ZERO_DIR)/%.so
+        $(install-file)
+  else
 $(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(C2_DIR)/%.so
         $(install-file)
 $(EXPORT_CLIENT_DIR)/%.so:       $(C1_DIR)/%.so
         $(install-file)
 $(EXPORT_CLIENT_DIR)/64/%.so:    $(C1_DIR)/%.so
         $(install-file)
 $(EXPORT_SERVER_DIR)/%.so:       $(C2_DIR)/%.so
         $(install-file)
 $(EXPORT_SERVER_DIR)/64/%.so:    $(C2_DIR)/%.so
         $(install-file)
+  endif
 endif
 
 # Jar file (sa-jdi.jar)
 $(EXPORT_LIB_DIR)/%.jar: $(GEN_DIR)/%.jar
         $(install-file)

@@ -311,10 +342,11 @@
 clobber clean: clean_build clean_export clean_jdk
 clean_build:
         $(RM) -r $(C1_DIR)
         $(RM) -r $(C2_DIR)
         $(RM) -r $(KERNEL_DIR)
+        $(RM) -r $(ZERO_DIR)
 clean_export:
         $(RM) -r $(EXPORT_PATH)
 clean_jdk:
         $(RM) -r $(JDK_IMAGE_DIR)
 

@@ -333,13 +365,15 @@
         ($(CD) $(JDK_IMPORT_PATH) && \
          $(TAR) -cf - *) | \
          ($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xf -)
 
 test_jdk:
+  ifneq ($(ZERO_BUILD), true)
   ifeq ($(ARCH_DATA_MODEL), 32)
         $(JDK_IMAGE_DIR)/bin/java -client -version
   endif
+  endif
         $(JDK_IMAGE_DIR)/bin/java -server -version
 
 copy_product_jdk:
         $(RM) -r $(JDK_IMAGE_DIR)
         $(MKDIR) -p $(JDK_IMAGE_DIR)