[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