[vmkit-commits] [vmkit] r180412 - great rules for mmtk

Peter Senna Tschudin peter.senna at gmail.com
Thu Apr 25 10:09:07 PDT 2013


Author: peter.senna
Date: Thu Apr 25 12:07:29 2013
New Revision: 180412

URL: http://llvm.org/viewvc/llvm-project?rev=180412&view=rev
Log:
great rules for mmtk
(cherry picked from commit 690c522ed859d226cd5fecf551b119ba0935bcb6)

Modified:
    vmkit/trunk/Makefile.rules
    vmkit/trunk/mmtk/java/Makefile
    vmkit/trunk/tools/j3/Makefile
    vmkit/trunk/tools/precompiler/Makefile
    vmkit/trunk/tools/vmjc/Makefile

Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=180412&r1=180411&r2=180412&view=diff
==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Thu Apr 25 12:07:29 2013
@@ -1,7 +1,7 @@
 
 .PHONY: all tidy clean distclean confclean
 .SECONDARY:
-.SUFFIXES: .c .cpp .cxx .cc .h .hpp .o .a .bc .ll $(SHLIBEXT) $(SUFFIXES)
+.SUFFIXES: .c .cpp .cxx .cc .h .hpp .o .a .bc .ll .jar $(SHLIBEXT) $(SUFFIXES)
 
 ifeq ($(OPTIMIZED),1)
   BUILD_NAME:=Release
@@ -88,7 +88,7 @@ $(LEVEL)/Makefile.common: $(PROJ_OBJ_ROO
 
 define define_config_rule
 $$(PROJ_OBJ_ROOT)/$1: $$(PROJ_SRC_ROOT)/$1.in $$(PROJ_SRC_ROOT)/configure
-	$(Echo) "Regenerating project files $$@"
+	$(Echo) "Regenerating project files $$1"
 	$(Verb) cd $(PROJ_OBJ_ROOT) && ./config.status -q --$2=$1
 	$(Verb) touch $$@
 endef
@@ -97,7 +97,7 @@ $(foreach cur,$(CONFIG_FILES),$(eval $(c
 $(foreach cur,$(CONFIG_HEADERS),$(eval $(call define_config_rule,$(cur),header)))
 
 $(PROJ_OBJ_ROOT)/configure: $(PROJ_SRC_ROOT)/autoconf/configure.ac $(PROJ_SRC_ROOT)/autoconf/AutoRegen.sh 
-	$(Echo) Rebootstraping project
+	$(Echo) "Rebootstraping project"
 	$(Verb) cd $(PROJ_SRC_ROOT)/autoconf && ./AutoRegen.sh
 	$(Verb) cd $(PROJ_OBJ_ROOT) && ./config.status --recheck
 
@@ -128,7 +128,7 @@ endif
 
 ifdef MODULE_WITH_GC
 MODULE=$(MODULE_WITH_GC)
-WITH_GC=-gc
+NEED_GC=1
 endif
 
 ###############################################################################
@@ -137,54 +137,73 @@ endif
 ifdef MODULE
 
 MODULE_A=$(LIB_DIR)/lib$(MODULE).a
-MODULE_BC=$(LIB_DIR)/$(MODULE).bc
 
-BASE_FILES+=$(patsubst %.c,$(BUILD_DIR)/%,$(wildcard *.c)) \
-            $(patsubst %.cc,$(BUILD_DIR)/%,$(wildcard *.cc)) \
-            $(patsubst %.cpp,$(BUILD_DIR)/%,$(wildcard *.cpp)) \
-            $(patsubst %,$(BUILD_DIR)/%,$(GEN))
+all:: $(MODULE_A)
 
-BC_FILES=$(addsuffix $(WITH_GC).bc,$(BASE_FILES))
-OBJ_FILES=$(addsuffix $(WITH_GC).o,$(BASE_FILES))
+CLANG_FILES+=$(patsubst %.c,$(BUILD_DIR)/%,$(wildcard *.c)) \
+             $(patsubst %.cc,$(BUILD_DIR)/%,$(wildcard *.cc)) \
+             $(patsubst %.cpp,$(BUILD_DIR)/%,$(wildcard *.cpp))
 
-all:: $(MODULE_A)
+BC_FILES+=$(addsuffix .bc,$(CLANG_FILES) $(patsubst %,$(BUILD_DIR)/%,$(GEN)))
+
+ifdef NEED_GC
+LLC_GC=-load=$(PREPARE_CODE)
+OPT_GC=-load=$(PREPARE_CODE) -StaticGCPass
+endif
+
+$(MODULE_A):: $(LIB_DIR)/.dir
+
+ifdef NEED_BC
+all:: $(LIB_DIR)/$(MODULE).bc
+
+$(LIB_DIR)/$(MODULE).bc: $(BUILD_DIR)/$(MODULE)-opt.bc $(LIB_DIR)/.dir
+	$(Verb) $(CP) $< $@
+
+$(BUILD_DIR)/$(MODULE).bc: $(BC_FILES) $(patsubst %, $(LIB_DIR)/%.bc,$(MODULE_USE))
+	$(Echo) "Linking module '$(notdir $@)'"
+	$(Verb) $(LLVMLINK) $^ -o $@
+endif
 
 ifdef NEED_BC
-all:: $(MODULE_BC)
+$(MODULE_A):: $(BUILD_DIR)/$(MODULE)-opt.o
+else
+$(MODULE_A):: $(patsubst %.bc,%-opt.o,$(BC_FILES)) $(patsubst %, $(LIB_DIR)/lib%.a,$(MODULE_USE))
+endif
+	$(Echo) "Building archive '$(notdir $@)'"
+	-$(Verb) $(RM) -f $@
+	$(Verb) $(Archive) $@ $^
+	$(Verb) $(Ranlib) $@
+
+%.o: %.bc
+	$(Echo) "Assembling '$(notdir $<)'"
+	$(Verb) $(LLC) -relocation-model=pic -filetype=obj -disable-cfi -disable-fp-elim $(LLC_GC) $< -o $@
+
+%-opt.bc: %.bc
+	$(Echo) "Optimizing '$(notdir $<)'"
+	$(Verb) $(LOPT) $< $(OPT_GC) -o $@
+
 endif
 
 ifdef BUILD_FRAMETABLE
 
 ## have to remove this symbol (used elsewere)
 BUILT_INC+=$(patsubst %,$(BUILD_DIR)/%,FrametablesExterns.inc FrametablesSymbols.inc)
-DEP_FRAMETABLES=$(patsubst %,$(LIB_DIR)/lib%.a,$(USE))
+DEP_FRAMETABLES=$(patsubst %,$(LIB_DIR)/lib%.a,$(LINK_USE))
 
 $(BUILD_DIR)/FrametablesExterns.inc: $(DEP_FRAMETABLES) $(SELF) $(BUILD_DIR)/.dir
 	$(Echo) "Generating $(notdir $@)"
-	$(Verb) $(NM) $(DEP_FRAMETABLES) | grep __frametable | sed 's/\([a-f0-9]*\) \([a-zA-Z]*\) _*\([a-zA-Z0-9_]*\)/extern "C" CompiledFrames \3;/' > $@
+	$(Verb) $(NM) $(DEP_FRAMETABLES) | $(GREP) __frametable | sed 's/\([a-f0-9]*\) \([a-zA-Z]*\) _*\([a-zA-Z0-9_]*\)/extern "C" CompiledFrames \3;/' > $@
 
 $(BUILD_DIR)/FrametablesSymbols.inc: $(DEP_FRAMETABLES) $(SELF) $(BUILD_DIR)/.dir
 	$(Echo) "Generating $(notdir $@)"
-	$(Verb) $(NM) $(DEP_FRAMETABLES) | grep __frametable | sed 's/\([a-f0-9]*\) \([a-zA-Z]*\) _*\([a-zA-Z0-9_]*\)/\&\3,/' > $@
-
-endif
-
-$(MODULE_A): $(OBJ_FILES) $(SELF) $(LIB_DIR)/.dir
-	$(Echo) "Building archive '$(notdir $@)'"
-	-$(Verb) $(RM) -f $@
-	$(Verb) $(Archive) $@ $(OBJ_FILES)
-	$(Verb) $(Ranlib) $@
-
-$(MODULE_BC): $(BC_FILES) $(SELF) $(LIB_DIR)/.dir
-	$(Echo) "Building module '$(notdir $@)'"
-	$(Verb) $(LLVMLINK) $(BC_FILES) -o $(MODULE_BC)
+	$(Verb) $(NM) $(DEP_FRAMETABLES) | $(GREP) __frametable | sed 's/\([a-f0-9]*\) \([a-zA-Z]*\) _*\([a-zA-Z0-9_]*\)/\&\3,/' > $@
 
 endif
 
 ###############################################################################
 #   Linking
 ###############################################################################
-DEP_LIBS=$(patsubst %,$(LIB_DIR)/lib%.a,$(USE) $(USE))
+DEP_LIBS=$(patsubst %,$(LIB_DIR)/lib%.a,$(LINK_USE) $(LINK_USE))
 
 $(BIN_DIR)/$(TOOL)$(EXEEXT): $(MODULE_A) $(DEP_LIBS) $(SELF) $(BIN_DIR)/.dir
 	$(Echo) "Linking executable '$(notdir $@)'"
@@ -203,7 +222,7 @@ all:: $(BUILD_DIR)/$(VMKIT_RUNTIME_OUT)
 BUILT_INC+=$(BUILD_DIR)/$(VMKIT_RUNTIME_OUT)
 
 $(BUILD_DIR)/$(VMKIT_RUNTIME_OUT): $(VMKIT_RUNTIME_IN) $(SELF) $(BUILD_DIR)/.dir
-	$(Echo) "Generating '$@'"
+	$(Echo) "Generating '$(notdir $@)'"
 	$(Verb) cat $(VMKIT_RUNTIME_IN) | $(LLVMAS) -o - | $(LLC) -march=cpp -cppgen=contents -o $@
 
 endif
@@ -225,18 +244,6 @@ MY_LIBS+=$(shell $(LLVM_CONFIG) --libs)
 DEPEND_OPTIONS=-MMD -MP -MF "$(BUILD_DIR)/$$*.d.tmp" -MT "$(BUILD_DIR)/$$*.bc" -MT "$(BUILD_DIR)/$$*.d"
 DOM=then mv -f "$(BUILD_DIR)/$$*.d.tmp" "$(BUILD_DIR)/$$*.d"; else rm -f "$(BUILD_DIR)/$$*.d.tmp"; exit 1; fi
 
-$(BUILD_DIR)/%-gc.o: $(BUILD_DIR)/%-gc.bc $(LLC) $(SELF)
-	$(Echo) "Assembling '$(notdir $<)'"
-	$(Verb) $(LLC) -relocation-model=pic -filetype=obj -disable-cfi -disable-fp-elim -load=$(PREPARE_CODE) $< -o $@
-
-$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.bc $(LLC) $(SELF)
-	$(Echo) "Assembling '$(notdir $<)'"
-	$(Verb) $(LLC) -relocation-model=pic -filetype=obj -disable-cfi -disable-fp-elim $< -o $@
-
-$(BUILD_DIR)/%-gc.bc: $(BUILD_DIR)/%.bc $(LOPT) $(PREPARE_CODE) $(SELF)
-	$(Echo) "Preparing for gc '$(notdir $<)'"
-	$(Verb) $(LOPT) $< -load=$(PREPARE_CODE) -StaticGCPass -o $@
-
 define define_compile_rule
 $(BUILD_DIR)/%.bc: %$1 $(SELF) $(BUILT_INC) $(BUILD_DIR)/.dir
 	$(Echo) "Compiling '$(notdir $$<)'"
@@ -254,7 +261,7 @@ $(eval $(call define_compile_rule,.c,$(C
 ifneq ($(MAKECMDGOALS),tidy)
 ifneq ($(MAKECMDGOALS),clean)
 ifneq ($(MAKECMDGOALS),distclean)
--include $(addsuffix .d,$(BASE_FILES))
+-include $(addsuffix .d,$(CLANG_FILES))
 endif
 endif
 endif

Modified: vmkit/trunk/mmtk/java/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/java/Makefile?rev=180412&r1=180411&r2=180412&view=diff
==============================================================================
--- vmkit/trunk/mmtk/java/Makefile (original)
+++ vmkit/trunk/mmtk/java/Makefile Thu Apr 25 12:07:29 2013
@@ -8,12 +8,30 @@
 ##===----------------------------------------------------------------------===##
 LEVEL = ../..
 
-#MODULE=mmtk-vmkit-inline
-#NEED_BC=1
-JARNAME = mmtk-vmkit
+GEN=mmtk-vmkit
+MODULE=FinalMMTk
+MODULE_USE=MMTKAlloc MMTKRuntime
+NEED_BC=1
+NEED_GC=1
 
 include $(LEVEL)/Makefile.common
 
+$(BUILD_DIR)/%.bc: $(BUILD_DIR)/%-lower.bc $(LIB_DIR)/MMTKMagic$(SHLIBEXT)
+	$(Echo) "Lowering '$(notdir $@)'"
+	$(Verb) $(LOPT) -load=$(LIB_DIR)/MMTKMagic$(SHLIBEXT) $(OPT_MMTK_FLAGS) -LowerJavaRT -f $< -o $@
+
+$(BUILD_DIR)/%-lower.bc: $(BUILD_DIR)/%.jar $(VMJC) $(LIB_DIR)/MMTKRuntime$(SHLIBEXT) $(LIB_DIR)/MMTKMagic$(SHLIBEXT) 
+	$(Echo) "Compiling '$(notdir $<)'"
+	$(Verb) $(VMJC) $(VMJCFLAGS) -load=$(LIB_DIR)/MMTKRuntime$(SHLIBEXT) -load=$(LIB_DIR)/MMTKMagic$(SHLIBEXT) \
+			-LowerMagic $< -disable-exceptions -disable-cooperativegc \
+			-with-clinit=org/mmtk/vm/VM,org/mmtk/utility/*,org/mmtk/policy/*,org/j3/config/* -Dmmtk.hostjvm=org.j3.mmtk.Factory \
+			-o $@ -Dmmtk.properties=$(PROJ_SRC_ROOT)/mmtk/java/vmkit.properties -disable-stubs -assume-compiled
+
+$(BUILD_DIR)/%.jar: $(PROJ_OBJ_ROOT)/mmtk/java/build.xml $(BUILD_DIR)/.dir #$(SELF)
+	$(Verb) $(ANT) -buildfile $(PROJ_OBJ_ROOT)/mmtk/java/build.xml && mv $(notdir $@) $@
+
+
+ifdef ZERO
 #
 #
 # OLD BUILD SYSTEM
@@ -53,3 +71,4 @@ endif
 
 clean-local::
 	$(Verb) $(RM) -rf classes $(JARNAME).jar $(JARNAME).bc $(JARNAME)-optimized.bc $(BUILD_DIR)
+endif
\ No newline at end of file

Modified: vmkit/trunk/tools/j3/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/j3/Makefile?rev=180412&r1=180411&r2=180412&view=diff
==============================================================================
--- vmkit/trunk/tools/j3/Makefile (original)
+++ vmkit/trunk/tools/j3/Makefile Thu Apr 25 12:07:29 2013
@@ -9,7 +9,7 @@
 LEVEL = ../..
 
 TOOL=j3
-USE=Classpath J3 J3Compiler Vmkit VmkitCompiler CommonThread FinalMMTk InlineMMTk Precompiled BootstrapClasses
+LINK_USE=Classpath J3 J3Compiler Vmkit VmkitCompiler CommonThread FinalMMTk InlineMMTk Precompiled BootstrapClasses
 BUILD_FRAMETABLE = 1
 
 include $(LEVEL)/Makefile.common

Modified: vmkit/trunk/tools/precompiler/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/precompiler/Makefile?rev=180412&r1=180411&r2=180412&view=diff
==============================================================================
--- vmkit/trunk/tools/precompiler/Makefile (original)
+++ vmkit/trunk/tools/precompiler/Makefile Thu Apr 25 12:07:29 2013
@@ -9,7 +9,7 @@
 LEVEL = ../..
 
 TOOL=precompiler
-USE=Classpath J3 J3Compiler Vmkit VmkitCompiler CommonThread FinalMMTk
+LINK_USE=Classpath J3 J3Compiler Vmkit VmkitCompiler CommonThread FinalMMTk
 BUILD_FRAMETABLE=1
 
 include $(LEVEL)/Makefile.common

Modified: vmkit/trunk/tools/vmjc/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmjc/Makefile?rev=180412&r1=180411&r2=180412&view=diff
==============================================================================
--- vmkit/trunk/tools/vmjc/Makefile (original)
+++ vmkit/trunk/tools/vmjc/Makefile Thu Apr 25 12:07:29 2013
@@ -9,6 +9,6 @@
 LEVEL = ../..
 
 TOOL=vmjc
-USE=J3 Classpath J3Compiler Vmkit VmkitCompiler MMTk CommonThread
+LINK_USE=J3 Classpath J3Compiler Vmkit VmkitCompiler MMTk CommonThread
 
 include $(LEVEL)/Makefile.common





More information about the vmkit-commits mailing list