[vmkit-commits] [vmkit] r180395 - only use my own rules, except for directories

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


Author: peter.senna
Date: Thu Apr 25 12:05:38 2013
New Revision: 180395

URL: http://llvm.org/viewvc/llvm-project?rev=180395&view=rev
Log:
only use my own rules, except for directories
(cherry picked from commit 7818f246838632f3b89e42103e9620986621a1d0)

Modified:
    vmkit/trunk/Makefile.common.llvm
    vmkit/trunk/Makefile.rules
    vmkit/trunk/lib/vmkit/JITGCPass/Makefile
    vmkit/trunk/mmtk/mmtk-alloc/Makefile
    vmkit/trunk/mmtk/mmtk-j3/Makefile
    vmkit/trunk/tools/j3/Makefile
    vmkit/trunk/tools/precompiler/Makefile
    vmkit/trunk/tools/vmjc/Makefile

Modified: vmkit/trunk/Makefile.common.llvm
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.common.llvm?rev=180395&r1=180394&r2=180395&view=diff
==============================================================================
--- vmkit/trunk/Makefile.common.llvm (original)
+++ vmkit/trunk/Makefile.common.llvm Thu Apr 25 12:05:38 2013
@@ -1501,71 +1501,6 @@ endif
 endif
 
 ###############################################################################
-# Library Build Rules: Four ways to build a library
-###############################################################################
-
-#---------------------------------------------------------
-# Bytecode Module Targets:
-#   If the user set MODULE_NAME then they want to build a
-#   bytecode module from the sources. We compile all the
-#   sources and link it together into a single bytecode
-#   module.
-#---------------------------------------------------------
-
-ifdef MODULE_NAME
-ifeq ($(strip $(LLVMCC)),)
-$(warning Modules require LLVM capable compiler but none is available ****)
-else
-
-Module     := $(LibDir)/$(MODULE_NAME).bc
-LinkModule := $(LLVMLINK)
-
-
-ifdef EXPORTED_SYMBOL_FILE
-LinkModule += -internalize-public-api-file=$(EXPORTED_SYMBOL_FILE)
-endif
-
-$(Module): $(BUILT_SOURCES) $(ObjectsBC) $(LibDir)/.dir $(LLVMLINK)
-	$(Echo) Building $(BuildMode) Bytecode Module $(notdir $@)
-	$(Verb) $(LinkModule) -o $@ $(ObjectsBC)
-
-all-local:: $(Module)
-
-clean-local::
-ifneq ($(strip $(Module)),)
-	-$(Verb) $(RM) -f $(Module)
-endif
-
-ifdef BYTECODE_DESTINATION
-ModuleDestDir := $(BYTECODE_DESTINATION)
-else
-ModuleDestDir := $(DESTDIR)$(PROJ_libdir)
-endif
-
-ifdef NO_INSTALL
-install-local::
-	$(Echo) Install circumvented with NO_INSTALL
-uninstall-local::
-	$(Echo) Uninstall circumvented with NO_INSTALL
-else
-DestModule := $(ModuleDestDir)/$(MODULE_NAME).bc
-
-install-module:: $(DestModule)
-install-local:: $(DestModule)
-
-$(DestModule): $(ModuleDestDir) $(Module)
-	$(Echo) Installing $(BuildMode) Bytecode Module $(DestModule)
-	$(Verb) $(DataInstall) $(Module) $(DestModule)
-
-uninstall-local::
-	$(Echo) Uninstalling $(BuildMode) Bytecode Module $(DestModule)
-	-$(Verb) $(RM) -f $(DestModule)
-endif
-
-endif
-endif
-
-###############################################################################
 # OTHER RULES: Other rules needed
 ###############################################################################
 

Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=180395&r1=180394&r2=180395&view=diff
==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Thu Apr 25 12:05:38 2013
@@ -1,3 +1,7 @@
+.PHONY: all all-subs build-module bootstrap tidy clean distclean local-clean
+.SECONDARY:
+.SUFFIXES:
+
 ifdef NO
 ifeq ($(OPTIMIZED),1)
   BUILD_NAME:=Release
@@ -28,9 +32,8 @@ endif
 ###############################################################################
 #   Build directories
 ###############################################################################
-BINDIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/bin
-LIBDIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/lib
-INCDIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/include
+BIN_DIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/bin
+LIB_DIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/lib
 BUILD_DIR=$(BUILD_NAME)
 
 LLVM_BIN=$(shell $(LLVM_CONFIG) --bindir)
@@ -52,7 +55,7 @@ LArchive=$(LLVM_BIN)/llvm-ar rcsf
 MKDIR=mkdir -p
 TOUCH=touch
 
-PREPARE_CODE=$(LIBDIR)/prepare-code$(SHLIBEXT)
+PREPARE_CODE=$(LIB_DIR)/prepare-code$(SHLIBEXT)
 
 %/.dir:
 	$(Verb) $(MKDIR) $(dir $@) && $(TOUCH) $@
@@ -63,7 +66,7 @@ clean::
 
 distclean::
 	$(Echo) "Cleaning build files"
-	$(Verb) $(RM) -Rf $(BINDIR) $(LIBDIR) $(INCDIR)
+	$(Verb) $(RM) -Rf $(BIN_DIR) $(LIB_DIR) $(INCDIR)
 
 ifeq ($(DEBUG),1)
   COMMON_CFLAGS+=-g
@@ -77,24 +80,83 @@ endif
 ###############################################################################
 #   Linking
 ###############################################################################
-USEDLIBS:=$(patsubst %,$(LibDir)/lib%,$(USEDLIBS))
+DEP_LIBS=$(patsubst %,$(LIB_DIR)/lib%.a,$(MODULE) $(USE) $(USE))
 
 ifdef TOOL
-all:: $(BINDIR)/$(TOOL)$(EXEEXT)
+MODULE=$(TOOL)
+
+all:: $(BIN_DIR)/$(TOOL)$(EXEEXT)
 
-$(BINDIR)/$(TOOL)$(EXEEXT): $(ObjectsO) $(USEDLIBS) $(SELF) $(BINDIR)/.dir
+$(BIN_DIR)/$(TOOL)$(EXEEXT): $(DEP_LIBS) $(SELF) $(BIN_DIR)/.dir
 	$(Echo) 'Linking executable $(notdir $@)'
-	$(Verb) $(CLANGXX) -o $@ $(ObjectsO) $(USEDLIBS) $(MY_LIBS) $(MY_LDFLAGS) 
+	$(Verb) $(CLANGXX) -o $@ $(DEP_LIBS) $(MY_LIBS) $(MY_LDFLAGS) 
+
 endif
 
 ifdef LIBRARY
-all:: $(LIBDIR)/$(LIBRARY)$(SHLIBEXT)
+MODULE=$(LIBRARY)
+
+all:: $(LIB_DIR)/$(LIBRARY)$(SHLIBEXT)
 
-$(LIBDIR)/$(LIBRARY)$(SHLIBEXT): $(ObjectsO) $(SELF) $(LIBDIR)/.dir
+$(LIB_DIR)/$(LIBRARY)$(SHLIBEXT): $(DEP_LIBS) $(SELF) $(LIB_DIR)/.dir
 	$(Echo) "Linking shared library $(notdir $@)"
 	$(Verb) $(CLANGXX) -O0 -o $@ $(SHOPT) -Wl,-R -Wl,'$ORIGIN' -shared $(ObjectsO)
 endif
 
+###############################################################################
+#   Module
+###############################################################################
+ifdef MODULE_WITH_GC
+MODULE=$(MODULE_WITH_GC)
+WITH_GC=-gc
+endif
+
+ifdef MODULE
+
+MODULE_A=$(LIB_DIR)/lib$(MODULE).a
+MODULE_BC=$(LIB_DIR)/$(MODULE).bc
+
+BC_FILES+=$(patsubst %.c,$(BUILD_DIR)/%$(WITH_GC).bc,$(wildcard *.c)) \
+          $(patsubst %.cc,$(BUILD_DIR)/%$(WITH_GC).bc,$(wildcard *.cc)) \
+          $(patsubst %.cpp,$(BUILD_DIR)/%$(WITH_GC).bc,$(wildcard *.cpp)) \
+          $(patsubst %,$(BUILD_DIR)/%$(WITH_GC).bc,$(GEN))
+
+OBJ_FILES=$(patsubst %.bc,%.o,$(BC_FILES))
+
+all:: $(MODULE_A)
+
+ifdef NEED_BC
+all:: $(MODULE_BC)
+endif
+
+ifdef BUILD_FRAMETABLE
+
+FRAMETABLES=FrametablesExterns.inc FrametablesSymbols.inc
+DEP_FRAMETABLES=$(patsubst %,$(LIB_DIR)/lib%.a,$(USE))
+
+FrametablesExterns.inc: $(DEP_FRAMETABLES) $(SELF)
+	$(Verb) $(NM) $(DEP_FRAMETABLES) | grep __frametable | sed 's/\([a-f0-9]*\) \([a-zA-Z]*\) _*\([a-zA-Z0-9_]*\)/extern "C" CompiledFrames \3;/' > $@
+
+FrametablesSymbols.inc: $(DEP_FRAMETABLES) $(SELF)
+	$(Verb) $(NM) $(DEP_FRAMETABLES) | grep __frametable | sed 's/\([a-f0-9]*\) \([a-zA-Z]*\) _*\([a-zA-Z0-9_]*\)/\&\3,/' > $@
+
+clean-local::
+	-$(Verb) $(RM) -f FrametablesExterns.inc FrametablesSymbols.inc
+
+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)
+
+endif
+
 #
 #
 # OLD BUILD SYSTEM
@@ -168,52 +230,10 @@ endif
 #                 GC symbol information.
 ###############################################################################
 
-ifdef MODULE_WITH_GC
-
-ObjectsBCWithGC   := $(BaseNameSources:%=$(ObjDir)/%_gc.bc)
-ObjectsWithGC     := $(BaseNameSources:%=$(ObjDir)/%_gc.o)
-AModule           := $(LibDir)/lib$(MODULE_WITH_GC).a
-
-$(ObjectsBCWithGC): $(ObjDir)/%_gc.bc: $(ObjDir)/%.bc $(LOPT)
-	$(Echo) "**[4] Compiling $*.bc to $*.bc (gc) for $(BuildMode) build (bytecode)" # $(OPT_BC_WITH_GC_FLAGS)
-	$(Verb) $(LOPT) $< -load=$(PREPARE_CODE) -StaticGCPass -o $@
-
-$(ObjectsWithGC): $(ObjDir)/%_gc.o: $(ObjDir)/%_gc.bc $(LLC)
-	$(Echo) "**[5] Compiling $*.bc to $*.o for $(BuildMode) build" # $(LLC_ASM_FLAGS)
-	$(Verb) $(LLC) -filetype=obj -disable-cfi -disable-fp-elim -load=$(PREPARE_CODE) $< -o $@
-
-$(AModule): $(ObjectsWithGC) $(LibDir)/.dir
-	$(Echo) "**[6] Building $(BuildMode) Archive Library $(notdir $@)"
-	-$(Verb) $(RM) -f $@
-	$(Verb) $(Archive) $@ $(ObjectsWithGC)
-	$(Verb) $(Ranlib) $@
-
-all-local:: $(AModule)
-
-clean-local::
-	-$(Verb) $(RM) -f $(AModule) $(ObjectsBCWithGC) $(ObjectsSWithGC) $(ObjectsWithGC)
-
-endif
-
 ###############################################################################
 # BUILD_FRAMETABLE: Generate files for easy access of frametables at runtime.
 ###############################################################################
 
-ifdef BUILD_FRAMETABLE
-
-FrametablesExterns.inc: $(ProjLibsPaths)
-	$(Verb) $(NM) $(ProjLibsPaths) | grep __frametable | sed 's/\([a-f0-9]*\) \([a-zA-Z]*\) _*\([a-zA-Z0-9_]*\)/extern "C" CompiledFrames \3;/' > $@
-
-FrametablesSymbols.inc: $(ProjLibsPaths)
-	$(Verb) $(NM) $(ProjLibsPaths) | grep __frametable | sed 's/\([a-f0-9]*\) \([a-zA-Z]*\) _*\([a-zA-Z0-9_]*\)/\&\3,/' > $@
-
-all-local:: FrametablesExterns.inc FrametablesSymbols.inc
-
-clean-local::
-	-$(Verb) $(RM) -f FrametablesExterns.inc FrametablesSymbols.inc
-
-endif
-
 ###############################################################################
 # COMPILE_OPENJDK_ZIP: Build the specified java sources and zip them up
 ###############################################################################
@@ -256,26 +276,30 @@ INCLUDES+=-I. -I$(PROJ_SRC_ROOT)/include
 
 # should remove no-unused-variable                                                                                                         
 WARN_CFLAGS=  -Wall -Wno-long-long -Wno-variadic-macros -Wno-unused-private-field -Wno-unused-variable
-COMMON_CFLAGS+=  -O0 $(INCLUDES) -fno-strict-aliasing -fno-omit-frame-pointer  -ansi -pedantic $(WARN_CFLAGS)
+COMMON_CFLAGS+=  -O0 $(INCLUDES) -fno-strict-aliasing -fno-omit-frame-pointer  -ansi -pedantic $(WARN_CFLAGS) -fPIC
 
-CFLAGS+=$(COMMON_CFLAGS) `$(LLVM_CONFIG) --cflgas`
-CXXFLAGS+=$(COMMON_CFLAGS) `$(LLVM_CONFIG) --cxxflags`
-MY_LDFLAGS+=`$(LLVM_CONFIG) --ldflags` $(LDOPT)
-MY_LIBS+=`$(LLVM_CONFIG) --libs` -lz
+CFLAGS+=$(COMMON_CFLAGS) $(shell $(LLVM_CONFIG) --cflgas)
+CXXFLAGS+=$(COMMON_CFLAGS) $(shell $(LLVM_CONFIG) --cxxflags)
+MY_LDFLAGS+=$(shell $(LLVM_CONFIG) --ldflags) $(LDOPT)
+MY_LIBS+=$(shell $(LLVM_CONFIG) --libs) -lz
 
 $(LibName.BCA): $(ObjectsBC) $(LibDir)/.dir $(LLVMToolDir)/llvm-ar
 	$(Echo) "**[22] Building $(BuildMode) Bytecode Archive $(notdir $@)"
 	$(Verb) $(RM) -f $@
 	$(Verb) $(LArchive) $@ $(ObjectsBC)
 
-$(ObjectsBC): $(ObjDir)/%.bc: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "**[1] Compiling $*.cpp for $(BuildMode) build (bytecode)"
-	$(Verb) $(CLANGXX) -S $(CXXFLAGS) -emit-llvm -c "$<" -o $@
+$(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 $@
 
-$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMCXX)
-	$(Echo) "**[2] Compiling $*.cpp for $(BuildMode) build (bytecode)"
-	$(Verb) $(CLANGXX) -S $(CXXFLAGS) -emit-llvm -c "$<" -o $@
+$(BUILD_DIR)/%-gc.bc: $(BUILD_DIR)/%.bc $(LOPT) $(PREPARE_CODE) $(SELF)
+	$(Echo) "Preparing for gc: $(notdir $<)"
+	$(Verb) $(LOPT) $< -load=$(PREPARE_CODE) -StaticGCPass -o $@
 
-$(ObjDir)/%.o: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES) $(PROJ_MAKEFILE)
-	$(Echo) "**[3] Compiling $*.cpp for $(BuildMode) build" $(PIC_FLAG)
-	$(Verb) $(CLANGXX) $(CXXFLAGS) -c "$<" -o $@
+$(BUILD_DIR)/%.bc: %.cpp $(FRAMETABLES) $(SELF) $(BUILD_DIR)/.dir
+	$(Echo) "Compiling:        $(notdir $<)"
+	$(Verb) $(CLANGXX) -S $(CXXFLAGS) -emit-llvm -c "$<" -o $@

Modified: vmkit/trunk/lib/vmkit/JITGCPass/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/vmkit/JITGCPass/Makefile?rev=180395&r1=180394&r2=180395&view=diff
==============================================================================
--- vmkit/trunk/lib/vmkit/JITGCPass/Makefile (original)
+++ vmkit/trunk/lib/vmkit/JITGCPass/Makefile Thu Apr 25 12:05:38 2013
@@ -13,7 +13,6 @@ include $(LEVEL)/Makefile.config
 
 LIBRARY=JITGCPass
 LOADABLE_MODULE = 1
-USEDLIBS =
 
 include $(LEVEL)/Makefile.common
 

Modified: vmkit/trunk/mmtk/mmtk-alloc/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-alloc/Makefile?rev=180395&r1=180394&r2=180395&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-alloc/Makefile (original)
+++ vmkit/trunk/mmtk/mmtk-alloc/Makefile Thu Apr 25 12:05:38 2013
@@ -11,9 +11,8 @@ LEVEL = ../..
 
 include $(LEVEL)/Makefile.config
 
-MODULE_NAME = MMTKAlloc
-LOADABLE_MODULE = 1
-USEDLIBS =
+MODULE=MMTKAlloc
+NEED_BC=1
 
 CXX.Flags += -I$(PROJ_SRC_DIR)/../../lib/j3/VMCore
 

Modified: vmkit/trunk/mmtk/mmtk-j3/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Makefile?rev=180395&r1=180394&r2=180395&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Makefile (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Makefile Thu Apr 25 12:05:38 2013
@@ -11,9 +11,8 @@ LEVEL = ../..
 
 include $(LEVEL)/Makefile.config
 
-MODULE_NAME = MMTKRuntime
 LIBRARY=MMTKRuntime
-LOADABLE_MODULE = 1
+NEED_BC=1
 
 CXX.Flags += -I$(PROJ_SRC_DIR)/../../lib/j3/VMCore
 

Modified: vmkit/trunk/tools/j3/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/j3/Makefile?rev=180395&r1=180394&r2=180395&view=diff
==============================================================================
--- vmkit/trunk/tools/j3/Makefile (original)
+++ vmkit/trunk/tools/j3/Makefile Thu Apr 25 12:05:38 2013
@@ -11,7 +11,7 @@ LEVEL = ../..
 include $(LEVEL)/Makefile.config
 
 TOOL=j3
-USEDLIBS = Classpath.a J3.a J3Compiler.a Vmkit.a VmkitCompiler.a CommonThread.a FinalMMTk.a InlineMMTk.a Precompiled.a BootstrapClasses.a Classpath.a J3.a J3Compiler.a Vmkit.a VmkitCompiler.a CommonThread.a FinalMMTk.a InlineMMTk.a Precompiled.a BootstrapClasses.a
+USE=Classpath J3 J3Compiler Vmkit VmkitCompiler CommonThread FinalMMTk InlineMMTk Precompiled BootstrapClasses
 BUILD_FRAMETABLE = 1
 LINK_COMPONENTS = jit nativecodegen scalaropts instrumentation ipa ipo
 

Modified: vmkit/trunk/tools/precompiler/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/precompiler/Makefile?rev=180395&r1=180394&r2=180395&view=diff
==============================================================================
--- vmkit/trunk/tools/precompiler/Makefile (original)
+++ vmkit/trunk/tools/precompiler/Makefile Thu Apr 25 12:05:38 2013
@@ -11,7 +11,7 @@ LEVEL = ../..
 include $(LEVEL)/Makefile.config
 
 TOOL=precompiler
-USEDLIBS = Classpath.a J3.a J3Compiler.a Vmkit.a VmkitCompiler.a CommonThread.a FinalMMTk.a Classpath.a J3.a J3Compiler.a Vmkit.a VmkitCompiler.a CommonThread.a FinalMMTk.a
+USE=Classpath J3 J3Compiler Vmkit VmkitCompiler CommonThread FinalMMTk
 BUILD_FRAMETABLE = 1
 LINK_COMPONENTS = jit nativecodegen scalaropts instrumentation ipa ipo asmparser linker bitwriter
 

Modified: vmkit/trunk/tools/vmjc/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmjc/Makefile?rev=180395&r1=180394&r2=180395&view=diff
==============================================================================
--- vmkit/trunk/tools/vmjc/Makefile (original)
+++ vmkit/trunk/tools/vmjc/Makefile Thu Apr 25 12:05:38 2013
@@ -13,7 +13,7 @@ include $(LEVEL)/Makefile.config
 EXTRA_DIST = libvmjc
 
 TOOL=vmjc
-USEDLIBS = J3.a Classpath.a J3.a J3Compiler.a Vmkit.a VmkitCompiler.a MMTk.a CommonThread.a
+USE=J3 Classpath J3Compiler Vmkit VmkitCompiler MMTk CommonThread
 LINK_COMPONENTS = jit nativecodegen scalaropts instrumentation ipa ipo bitwriter
 
 include $(LEVEL)/Makefile.common





More information about the vmkit-commits mailing list