[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