[vmkit-commits] [vmkit] r180384 - move a lot of definitions inside our Makefile.rules
Peter Senna Tschudin
peter.senna at gmail.com
Thu Apr 25 10:05:45 PDT 2013
Author: peter.senna
Date: Thu Apr 25 12:04:03 2013
New Revision: 180384
URL: http://llvm.org/viewvc/llvm-project?rev=180384&view=rev
Log:
move a lot of definitions inside our Makefile.rules
(cherry picked from commit 8c806657a202a40f980602b08083459ab6e46f03)
Modified:
vmkit/trunk/Makefile.common.llvm
vmkit/trunk/Makefile.config.in
vmkit/trunk/Makefile.rules
vmkit/trunk/autoconf/configure.ac
vmkit/trunk/configure
Modified: vmkit/trunk/Makefile.common.llvm
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.common.llvm?rev=180384&r1=180383&r2=180384&view=diff
==============================================================================
--- vmkit/trunk/Makefile.common.llvm (original)
+++ vmkit/trunk/Makefile.common.llvm Thu Apr 25 12:04:03 2013
@@ -1877,24 +1877,6 @@ else
$(ToolBuildPath): $(ToolDir)/.dir
endif
-ifdef CODESIGN_TOOLS
-$(ToolBuildPath): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths)
- $(Echo) Linking $(BuildMode) executable $(TOOLNAME) $(StripWarnMsg)
- $(Verb) $(Link) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(ProjLibsOptions) \
- $(LLVMLibsOptions) $(ExtraLibs) $(TOOLLINKOPTSB) $(LIBS)
- $(Echo) ======= Finished Linking $(BuildMode) Executable $(TOOLNAME) \
- $(StripWarnMsg)
- $(Echo) ======= Code-Signing $(BuildMode) Executable $(TOOLNAME)
- $(Verb) codesign -s - $@
-else
-$(ToolBuildPath): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths)
- $(Echo) Linking $(BuildMode) executable $(TOOLNAME) $(StripWarnMsg)
- $(Verb) $(Link) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(ProjLibsOptions) \
- $(LLVMLibsOptions) $(ExtraLibs) $(TOOLLINKOPTSB) $(LIBS)
- $(Echo) ======= Finished Linking $(BuildMode) Executable $(TOOLNAME) \
- $(StripWarnMsg)
-endif
-
ifneq ($(strip $(ToolAliasBuildPath)),)
$(ToolAliasBuildPath): $(ToolBuildPath)
$(Echo) Creating $(BuildMode) Alias $(TOOLALIAS) $(StripWarnMsg)
Modified: vmkit/trunk/Makefile.config.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.config.in?rev=180384&r1=180383&r2=180384&view=diff
==============================================================================
--- vmkit/trunk/Makefile.config.in (original)
+++ vmkit/trunk/Makefile.config.in Thu Apr 25 12:04:03 2013
@@ -38,3 +38,7 @@ SHOPT=@SHOPT@
LDOPT=@LDOPT@
EXEEXT=@EXEEXT@
SHLIBEXT=@SHLIBEXT@
+
+OPTIMIZED=@OPTIMIZED@
+DEBUG=@DEBUG@
+ASSERT=@ASSERT@
Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=180384&r1=180383&r2=180384&view=diff
==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Thu Apr 25 12:04:03 2013
@@ -1,15 +1,56 @@
+ifdef NO
+ifeq ($(OPTIMIZED),1)
+ BUILD_NAME:=Release
+ ifeq ($(DEBUG),1)
+ BUILD_NAME:=$(BUILD_NAME)+Debug
+ endif
+ ifeq ($(ASSERT),1)
+ BUILD_NAME:=$(BUILD_NAME)+Assert
+ endif
+else
+ ifeq ($(DEBUG),1)
+ BUILD_NAME:=Debug
+ ifeq ($(ASSERT),1)
+ BUILD_NAME:=$(BUILD_NAME)+Assert
+ endif
+ else
+ ifeq ($(ASSERT),1)
+ BUILD_NAME:=Assert
+ else
+ BUILD_NAME:=Unoptimized
+ endif
+ endif
+endif
+else
+BUILD_NAME=Release+Asserts
+endif
+
+###############################################################################
+# Build directories
+###############################################################################
+BINDIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/bin
+LIBDIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/lib
+INCDIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/include
+BUILD_DIR=$(BUILD_NAME)
+
+%/.dir:
+ mkdir -p $(dir $@) && touch $@
+
+clean::
+ $(Echo) "Cleaning compilation files"
+ $(Verb) rm -Rf $(BUILD_DIR)
+
+distclean::
+ $(Echo) "Cleaning build files"
+ $(Verb) rm -Rf $(BINDIR) $(LIBDIR) $(INCDIR)
+
+ifeq ($(DEBUG),1)
+ COMMON_CFLAGS+=-g
+endif
LLVM_BIN=$(shell $(LLVM_CONFIG) --bindir)
-#LLVMAS
-#LLC
-#LOPT
-#LLVMLINK
-#MV
-#LLVMCC
-#Archive
-#Ranlib
-#RM
+CLANG=$(LLVM_BIN)/clang
CLANGXX=$(LLVM_BIN)/clang++
LLVMAS=$(LLVM_BIN)/llvm-as
LLC=$(LLVM_BIN)/llc
@@ -21,8 +62,14 @@ Archive=ar cru
Ranlib=ranlib
RM=rm
NM=nm
+LD=ld
LArchive=$(LLVM_BIN)/llvm-ar rcsf
+###############################################################################
+# Linking options
+###############################################################################
+USEDLIBS:=$(addprefix $(LibDir)/lib,$(patsubst %.a,%.a,$(USEDLIBS)))
+
#
#
# OLD BUILD SYSTEM
@@ -43,8 +90,8 @@ ifdef VMKIT_RUNTIME
.PRECIOUS: LLVMRuntime.inc
LLVMRuntime.inc : $(LLVMAS) $(LLC) $(VMKIT_RUNTIME)
- $(Echo) "**[7] Building LLVM runtime"
- $(Verb) cat $(VMKIT_RUNTIME) | $(LLVMAS) -o - | $(LLC) $(LLC_CPP_FLAGS) -march=cpp -cppgen=contents -o $@
+ $(Echo) "**[7] Building LLVM runtime $(LLC_CPP_FLAGS)"
+ $(Verb) cat $(VMKIT_RUNTIME) | $(LLVMAS) -o - | $(LLC) -march=cpp -cppgen=contents -o $@
all-local:: LLVMRuntime.inc
@@ -66,9 +113,9 @@ ifeq ($(shell [ ! -e $(MMTkLib) ] && ech
endif
ifeq ($(COMPILE_MMTK), 1)
- all::
+all::
$(Verb) $(ANT) -buildfile $(PROJ_OBJ_ROOT)/mmtk/java/build.xml
- $(Echo) "**[12] Building $(BuildMode) $(JARNAME).jar $(notdir $@)"
+ $(Echo) "**[12] Building $(BuildMode) $(JARNAME).jar $(notdir $@) $(OPT_MMTK_FLAGS)"
$(Verb) $(LOPT) -load=$(LibDir)/JITGCPass$(SHLIBEXT) $(OPT_MMTK_FLAGS) -JITGCPass -f $(LibDir)/MMTKAlloc.bc -o $(LibDir)/MMTKAlloc.bc
$(Verb) $(VMJC) $(VMJC_MMTK_FLAGS) -load=$(LibDir)/MMTKRuntime$(SHLIBEXT) -load=$(LibDir)/MMTKMagic$(SHLIBEXT) -LowerMagic $(PROJ_OBJ_ROOT)/mmtk/java/$(JARNAME).jar -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 $(JARNAME).bc -Dmmtk.properties=$(PROJ_SRC_ROOT)/mmtk/java/vmkit.properties -disable-stubs -assume-compiled
$(Verb) $(LOPT) -load=$(LibDir)/MMTKMagic$(SHLIBEXT) $(OPT_MMTK_FLAGS) -LowerJavaRT -f $(JARNAME).bc -o $(JARNAME)-optimized.bc
@@ -101,6 +148,7 @@ ifdef MODULE_WITH_GC
ObjectsBCWithGC := $(BaseNameSources:%=$(ObjDir)/%_gc.bc)
ObjectsWithGC := $(BaseNameSources:%=$(ObjDir)/%_gc.o)
AModule := $(LibDir)/lib$(MODULE_WITH_GC).a
+OModule := $(LibDir)/$(MODULE_WITH_GC).o
$(ObjectsBCWithGC): $(ObjDir)/%_gc.bc: $(ObjDir)/%.bc $(LOPT)
$(Echo) "**[4] Compiling $*.bc to $*.bc (gc) for $(BuildMode) build (bytecode)" # $(OPT_BC_WITH_GC_FLAGS)
@@ -116,7 +164,11 @@ $(AModule): $(ObjectsWithGC) $(LibDir)/.
$(Verb) $(Archive) $@ $(ObjectsWithGC)
$(Verb) $(Ranlib) $@
-all-local:: $(AModule) $(OModule)
+$(OModule): $(ObjectsWithGC) $(LibDir)/.dir
+ $(Echo) "**[80] Linking native module $(notdir $@)"
+ $(Verb) $(LD) -r $(ObjectsWithGC) -o $@
+
+all-local:: $(OModule) $(AModule)
clean-local::
-$(Verb) $(RM) -f $(AModule) $(ObjectsBCWithGC) $(ObjectsSWithGC) $(ObjectsWithGC)
@@ -173,11 +225,7 @@ endif
# NEW BUILD SYSTEM
#
#
-
-CLANGXX=$(LLVM_BIN)/clang++
-LOPT=$(LLVM_BIN)/opt
-
-#-I$(BUILDDIR)
+#-I$(BUILD_DIR)
INCLUDES+=-I. -I$(PROJ_SRC_ROOT)/include -I$(PROJ_SRC_ROOT)/lib/vmkit/MMTk \
-I$(PROJ_SRC_ROOT)/include/j3 \
-I$(PROJ_SRC_ROOT)/lib/j3/ClassLib/$(CLASSPATH_DIR) \
@@ -193,12 +241,12 @@ COMMON_CFLAGS+= -O0 $(INCLUDES) -fno-st
CFLAGS+=$(COMMON_CFLAGS) `$(LLVM_CONFIG) --cflgas`
CXXFLAGS+=$(COMMON_CFLAGS) `$(LLVM_CONFIG) --cxxflags`
MY_LDFLAGS+=`$(LLVM_CONFIG) --ldflags` $(LDOPT)
-MY_LIBS+=`$(LLVM_CONFIG) --libs`
+MY_LIBS+=`$(LLVM_CONFIG) --libs` -lz
-$(ToolBuildPath): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths)
+$(ToolBuildPath): $(ObjectsO) $(USEDLIBS)
$(Echo) '**[30] Linking $(BuildMode) executable $(TOOLNAME) $(StripWarnMsg)'
-# $(Verb) $(CLANGXX) $(LDFLAGS) -O0 -o $@ $^ $(LIBS)
- $(Verb) $(Link) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(ProjLibsOptions) $(LLVMLibsOptions) $(ExtraLibs) $(TOOLLINKOPTSB) $(LIBS)
+ $(Verb) $(CLANGXX) -o $@ $(ObjectsO) $(USEDLIBS) $(MY_LIBS) $(MY_LDFLAGS)
+# $(Verb) $(Link) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(USEDLIBS) $(TOOLLINKOPTSB) $(MY_LIBS) $(MY_LDFLAGS)
$(LibName.SO): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths) $(SharedLibDir)/.dir
$(Echo) "**[20] Linking $(BuildMode) $(SharedLibKindMessage) $(notdir $@)"
Modified: vmkit/trunk/autoconf/configure.ac
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/autoconf/configure.ac?rev=180384&r1=180383&r2=180384&view=diff
==============================================================================
--- vmkit/trunk/autoconf/configure.ac (original)
+++ vmkit/trunk/autoconf/configure.ac Thu Apr 25 12:04:03 2013
@@ -171,6 +171,40 @@ case $target_cpu in
esac
dnl **************************************************************************
+dnl optimization and debug
+dnl **************************************************************************
+AC_ARG_ENABLE(optimized,
+ AS_HELP_STRING([--enable-optimized],
+ [Build with all optimization flag enable (default is yes)]),,
+ enableval=yes)
+case "$enableval" in
+ yes) AC_SUBST(OPTIMIZED,[1]) ;;
+ no) AC_SUBST(OPTIMIZED,[0]) ;;
+ *) AC_MSG_ERROR([Invalid setting for --enable-optimized. Use "yes" or "no"]) ;;
+esac
+
+AC_ARG_ENABLE(debug,
+ AS_HELP_STRING([--enable-debug],
+ [Build with debug flags (default is no)]),,
+ enableval=no)
+case "$enableval" in
+ yes) AC_SUBST(DEBUG,[1]) ;;
+ no) AC_SUBST(DEBUG,[0]) ;;
+ *) AC_MSG_ERROR([Invalid setting for --enable-debug. Use "yes" or "no"]) ;;
+esac
+
+AC_ARG_ENABLE(assert,
+ AS_HELP_STRING([--enable-assert],
+ [Build with assert flags (default is yes)]),,
+ enableval=yes)
+
+case "$enableval" in
+ yes) AC_SUBST(ASSERT,[1]) ;;
+ no) AC_SUBST(ASSERT,[0]) ;;
+ *) AC_MSG_ERROR([Invalid setting for --enable-assert. Use "yes" or "no"]) ;;
+esac
+
+dnl **************************************************************************
dnl llvm
dnl **************************************************************************
AC_ARG_WITH(llvm-config-path,
Modified: vmkit/trunk/configure
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/configure?rev=180384&r1=180383&r2=180384&view=diff
==============================================================================
--- vmkit/trunk/configure (original)
+++ vmkit/trunk/configure Thu Apr 25 12:04:03 2013
@@ -649,6 +649,9 @@ classpathlibs
classpathglibj
MMTK_PLAN
GC_FLAGS
+ASSERT
+DEBUG
+OPTIMIZED
WITH_64
EXEEXT
SHLIBEXT
@@ -713,6 +716,9 @@ ac_user_opts='
enable_option_checking
with_llvmsrc
with_llvmobj
+enable_optimized
+enable_debug
+enable_assert
with_llvm_config_path
with_mmtk_plan
with_gnu_classpath_libs
@@ -1349,6 +1355,10 @@ Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-optimized Build with all optimization flag enable (default is
+ yes)
+ --enable-debug Build with debug flags (default is no)
+ --enable-assert Build with assert flags (default is yes)
--enable-incinerator Use incinerator to kill stale references in OSGi
(default is NO)
@@ -2539,6 +2549,52 @@ $as_echo "#define WITH_64 1" >>confdefs.
;;
esac
+# Check whether --enable-optimized was given.
+if test "${enable_optimized+set}" = set; then :
+ enableval=$enable_optimized;
+else
+ enableval=yes
+fi
+
+case "$enableval" in
+ yes) OPTIMIZED=1
+ ;;
+ no) OPTIMIZED=0
+ ;;
+ *) as_fn_error $? "Invalid setting for --enable-optimized. Use \"yes\" or \"no\"" "$LINENO" 5 ;;
+esac
+
+# Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+ enableval=$enable_debug;
+else
+ enableval=no
+fi
+
+case "$enableval" in
+ yes) DEBUG=1
+ ;;
+ no) DEBUG=0
+ ;;
+ *) as_fn_error $? "Invalid setting for --enable-debug. Use \"yes\" or \"no\"" "$LINENO" 5 ;;
+esac
+
+# Check whether --enable-assert was given.
+if test "${enable_assert+set}" = set; then :
+ enableval=$enable_assert;
+else
+ enableval=yes
+fi
+
+
+case "$enableval" in
+ yes) ASSERT=1
+ ;;
+ no) ASSERT=0
+ ;;
+ *) as_fn_error $? "Invalid setting for --enable-assert. Use \"yes\" or \"no\"" "$LINENO" 5 ;;
+esac
+
# Check whether --with-llvm-config-path was given.
if test "${with_llvm_config_path+set}" = set; then :
More information about the vmkit-commits
mailing list