[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