[vmkit-commits] [vmkit] r180407 - auto dependencies are ok
Peter Senna Tschudin
peter.senna at gmail.com
Thu Apr 25 10:09:35 PDT 2013
Author: peter.senna
Date: Thu Apr 25 12:06:42 2013
New Revision: 180407
URL: http://llvm.org/viewvc/llvm-project?rev=180407&view=rev
Log:
auto dependencies are ok
(cherry picked from commit 342f4c33f587e4ddc46255db692154ea7d4dec5a)
Modified:
vmkit/trunk/Makefile.common.in
vmkit/trunk/Makefile.rules
vmkit/trunk/lib/j3/ClassLib/GNUClasspath/Makefile
vmkit/trunk/lib/j3/Compiler/Makefile
vmkit/trunk/lib/j3/VMCore/Makefile
Modified: vmkit/trunk/Makefile.common.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.common.in?rev=180407&r1=180406&r2=180407&view=diff
==============================================================================
--- vmkit/trunk/Makefile.common.in (original)
+++ vmkit/trunk/Makefile.common.in Thu Apr 25 12:06:42 2013
@@ -2,6 +2,8 @@
PROJECT_NAME := @PACKAGE_NAME@
PROJ_VERSION := @PACKAGE_VERSION@
+realpath=$(shell cd $(1); $(PWD))
+
# Set the directory root of this project's source files
PROJ_SRC_ROOT := $(subst //,/, at abs_top_srcdir@)
VMKIT_SRC_ROOT := $(PROJ_SRC_ROOT)
@@ -10,6 +12,9 @@ VMKIT_SRC_ROOT := $(PROJ_SRC_ROOT)
PROJ_OBJ_ROOT := $(subst //,/, at abs_top_builddir@)
VMKIT_OBJ_ROOT := $(PROJ_OBJ_ROOT)
+PROJ_OBJ_CWD:= $(call realpath, .)
+PROJ_SRC_CWD:= $(call realpath, $(patsubst $(PROJ_OBJ_ROOT)%,$(PROJ_SRC_ROOT)%,$(PROJ_OBJ_CWD)))
+
# Set the root directory of this project's install prefix
PROJ_INSTALL_ROOT := @prefix@
Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=180407&r1=180406&r2=180407&view=diff
==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Thu Apr 25 12:06:42 2013
@@ -1,5 +1,4 @@
-
.PHONY: all tidy clean confclean
.SECONDARY:
.SUFFIXES: .c .cpp .cxx .cc .h .hpp .o .a .bc .ll $(SHLIBEXT) $(SUFFIXES)
@@ -51,7 +50,6 @@ endif
###############################################################################
# Recursive target managment
###############################################################################
-#SELF=$(PROJ_SRC_ROOT)/Makefile.rules Makefile $(PROJ_SRC_ROOT)/Makefile.common
RECURSIVE_TARGETS=all clean
$(RECURSIVE_TARGETS)::
@@ -80,29 +78,31 @@ confclean: distclean
###############################################################################
# Build system managment
###############################################################################
-SELF=$(LEVEL)/Makefile.rules Makefile $(PROJ_SRC_ROOT)/Makefile.common
+#SELF=$(PROJ_SRC_ROOT)/Makefile.rules $(PROJ_OBJ_ROOT)/Makefile.common Makefile
+
+$(LEVEL)/Makefile.common: $(PROJ_SRC_ROOT)/Makefile.common
define define_config_rule
-$(LEVEL)/$1: $1.in $(PROJ_SRC_ROOT)/configure
- $(Echo) Regenerating project files $$@
- $(Verb) cd $(PROJ_OBJ_ROOT) && ./config.status -q --$2=$$@
+$$(PROJ_OBJ_ROOT)/$1: $$(PROJ_SRC_ROOT)/$1.in $$(PROJ_SRC_ROOT)/configure
+ $(Echo) "Regenerating project files $$@"
+ $(Verb) cd $(PROJ_OBJ_ROOT) && ./config.status -q --$2=$1
$(Verb) touch $$@
endef
$(foreach cur,$(CONFIG_FILES),$(eval $(call define_config_rule,$(cur),file)))
$(foreach cur,$(CONFIG_HEADERS),$(eval $(call define_config_rule,$(cur),header)))
-$(PROJ_SRC_ROOT)/configure: $(PROJ_SRC_ROOT)/autoconf/configure.ac $(PROJ_SRC_ROOT)/autoconf/AutoRegen.sh
+$(PROJ_OBJ_ROOT)/configure: $(PROJ_SRC_ROOT)/autoconf/configure.ac $(PROJ_SRC_ROOT)/autoconf/AutoRegen.sh
$(Echo) Rebootstraping project
$(Verb) cd $(PROJ_SRC_ROOT)/autoconf && ./AutoRegen.sh
- $(Verb) ./config.status --recheck
+ $(Verb) cd $(PROJ_OBJ_ROOT) && ./config.status --recheck
###############################################################################
# Build directories
###############################################################################
BIN_DIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/bin
LIB_DIR=$(PROJ_OBJ_ROOT)/$(BUILD_NAME)/lib
-BUILD_DIR=$(BUILD_NAME)
+BUILD_DIR=$(PROJ_OBJ_CWD)/$(BUILD_NAME)
LLVM_BIN=$(shell $(LLVM_CONFIG) --bindir)
@@ -160,12 +160,13 @@ 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))
+BASE_FILES+=$(patsubst %.c,$(BUILD_DIR)/%,$(wildcard *.c)) \
+ $(patsubst %.cc,$(BUILD_DIR)/%,$(wildcard *.cc)) \
+ $(patsubst %.cpp,$(BUILD_DIR)/%,$(wildcard *.cpp)) \
+ $(patsubst %,$(BUILD_DIR)/%,$(GEN))
-OBJ_FILES=$(patsubst %.bc,%.o,$(BC_FILES))
+BC_FILES=$(addsuffix $(WITH_GC).bc,$(BASE_FILES))
+OBJ_FILES=$(addsuffix $(WITH_GC).o,$(BASE_FILES))
all:: $(MODULE_A)
@@ -304,8 +305,7 @@ endif
# NEW BUILD SYSTEM
#
#
-#-I$(BUILD_DIR)
-INCLUDES+=-I. -I$(PROJ_SRC_ROOT)/include -I$(PROJ_SRC_ROOT)/lib/vmkit/MMTk -I$(BUILD_DIR)
+INCLUDES+=-I$(PROJ_SRC_CWD) -I$(PROJ_SRC_ROOT)/include -I$(PROJ_SRC_ROOT)/lib/vmkit/MMTk -I$(BUILD_DIR)
# should remove no-unused-variable
WARN_CFLAGS= -Wall -Wno-long-long -Wno-variadic-macros -Wno-unused-private-field -Wno-unused-variable
@@ -352,6 +352,6 @@ $(eval $(call define_compile_rule,.c,$(C
ifneq ($(MAKECMDGOALS),tidy)
ifneq ($(MAKECMDGOALS),clean)
--include $(patsubst %.o, %.d, $(OBJ_FILES))
+-include $(addsuffix .d,$(BASE_FILES))
endif
endif
Modified: vmkit/trunk/lib/j3/ClassLib/GNUClasspath/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/GNUClasspath/Makefile?rev=180407&r1=180406&r2=180407&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/GNUClasspath/Makefile (original)
+++ vmkit/trunk/lib/j3/ClassLib/GNUClasspath/Makefile Thu Apr 25 12:06:42 2013
@@ -11,7 +11,7 @@ LEVEL = ../../../..
include $(LEVEL)/Makefile.config
MODULE_WITH_GC=Classpath
-INCLUDES+=-I../../VMCore -I..
+INCLUDES+=-I$(PROJ_SRC_ROOT)/lib/j3/VMCore -I$(PROJ_SRC_ROOT)/lib/j3/ClassLib
include $(LEVEL)/Makefile.common
Modified: vmkit/trunk/lib/j3/Compiler/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/Makefile?rev=180407&r1=180406&r2=180407&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/Makefile (original)
+++ vmkit/trunk/lib/j3/Compiler/Makefile Thu Apr 25 12:06:42 2013
@@ -11,6 +11,6 @@ LEVEL = ../../..
include $(LEVEL)/Makefile.config
MODULE_WITH_GC = J3Compiler
-INCLUDES+=-I../ClassLib/$(CLASSPATH_DIR) -I../ClassLib/ -I../VMCore -I../LLVMRuntime/$(BUILD_DIR)
+INCLUDES+=-I$(PROJ_SRC_ROOT)/lib/j3/ClassLib/$(CLASSPATH_DIR) -I$(PROJ_SRC_ROOT)/lib/j3/ClassLib -I$(PROJ_SRC_ROOT)/lib/j3/VMCore -I$(PROJ_SRC_ROOT)/lib/j3/LLVMRuntime
include $(LEVEL)/Makefile.common
Modified: vmkit/trunk/lib/j3/VMCore/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/Makefile?rev=180407&r1=180406&r2=180407&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/Makefile (original)
+++ vmkit/trunk/lib/j3/VMCore/Makefile Thu Apr 25 12:06:42 2013
@@ -13,7 +13,7 @@ EXTRA_DIST = JniClasspath.inc JniOpenJDK
include $(LEVEL)/Makefile.config
MODULE_WITH_GC = J3
-INCLUDES+=-I../ClassLib -I../ClassLib/$(CLASSPATH_DIR)
+INCLUDES+=-I$(PROJ_SRC_ROOT)/lib/j3/ClassLib/$(CLASSPATH_DIR) -I$(PROJ_SRC_ROOT)/lib/j3/ClassLib
include $(LEVEL)/Makefile.common
More information about the vmkit-commits
mailing list