summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
authorsbc@chromium.org <sbc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-08 00:41:30 +0000
committersbc@chromium.org <sbc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-08 00:41:30 +0000
commit3732fe67a43976558aace7b7a496802578a91524 (patch)
tree95ac0b45256f139d3ae5a8dc6c4cbfd850bd9d8f /native_client_sdk
parentb351d00457c32b78fa3222772f885b8768162f67 (diff)
downloadchromium_src-3732fe67a43976558aace7b7a496802578a91524.zip
chromium_src-3732fe67a43976558aace7b7a496802578a91524.tar.gz
chromium_src-3732fe67a43976558aace7b7a496802578a91524.tar.bz2
[NaCl SDK] Handle sources outside root in example build system.
For example SOURCES = ../../some/other/place.cpp. The only problem here was creating an OBJ_DIR relative path in which to store the object file. This solution involves replacing .. with __. Also, some make syntax cleanups for consistency: - Use ifndef to check for empty variables - Don't quote operands to 'ifeq' - Always place ':' next to target name. - remove include of .d files for win32 builds (which do not generate them). BUG=None TEST=trybot Review URL: https://chromiumcodereview.appspot.com/12395032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186829 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'native_client_sdk')
-rw-r--r--native_client_sdk/src/tools/common.mk58
-rw-r--r--native_client_sdk/src/tools/host_gcc.mk21
-rw-r--r--native_client_sdk/src/tools/host_vc.mk8
-rw-r--r--native_client_sdk/src/tools/nacl_gcc.mk44
-rw-r--r--native_client_sdk/src/tools/nacl_llvm.mk20
5 files changed, 83 insertions, 68 deletions
diff --git a/native_client_sdk/src/tools/common.mk b/native_client_sdk/src/tools/common.mk
index a5cb6e4..3e3388c 100644
--- a/native_client_sdk/src/tools/common.mk
+++ b/native_client_sdk/src/tools/common.mk
@@ -29,8 +29,8 @@ TOP_MAKE:=$(word 1,$(MAKEFILE_LIST))
# Verify we selected a valid toolchain for this example
#
ifeq (,$(findstring $(TOOLCHAIN),$(VALID_TOOLCHAINS)))
-$(warning Availbile choices are: $(VALID_TOOLCHAINS))
-$(error Can not use TOOLCHAIN=$(TOOLCHAIN) on this example.)
+ $(warning Availbile choices are: $(VALID_TOOLCHAINS))
+ $(error Can not use TOOLCHAIN=$(TOOLCHAIN) on this example.)
endif
@@ -44,12 +44,11 @@ endif
CONFIG?=Debug
-
# Note for Windows:
-# Both GCC and LLVM bases tools (include the version of Make.exe that comes
-# with the SDK) both expect and are capable of dealing with the '/' seperator.
-# For that reason, the tools in the SDK, including build, compilers, scripts
-# all have a preference for POSIX style command-line arguments.
+# The GCC and LLVM toolchains (include the version of Make.exe that comes
+# with the SDK) expect and are capable of dealing with the '/' seperator.
+# For this reason, the tools in the SDK, including Makefiles and build scripts
+# have a preference for POSIX style command-line arguments.
#
# Keep in mind however that the shell is responsible for command-line escaping,
# globbing, and variable expansion, so those may change based on which shell
@@ -58,17 +57,17 @@ CONFIG?=Debug
#
# Disable DOS PATH warning when using Cygwin based NaCl tools on Windows.
#
-CYGWIN?=nodosfilewarning
-export CYGWIN
+ifeq ($(OSNAME),win)
+ CYGWIN?=nodosfilewarning
+ export CYGWIN
+endif
#
# If NACL_SDK_ROOT is not already set, then set it relative to this makefile.
#
THIS_MAKEFILE:=$(CURDIR)/$(lastword $(MAKEFILE_LIST))
-ifndef NACL_SDK_ROOT
- NACL_SDK_ROOT:=$(realpath $(dir $(THIS_MAKEFILE))/..)
-endif
+NACL_SDK_ROOT?=$(realpath $(dir $(THIS_MAKEFILE))/..)
#
@@ -160,7 +159,7 @@ endef
#
USABLE_TOOLCHAINS=$(filter $(OSNAME) newlib glibc pnacl,$(VALID_TOOLCHAINS))
-ifeq (1,$(NO_HOST_BUILDS))
+ifeq ($(NO_HOST_BUILDS),1)
USABLE_TOOLCHAINS:=$(filter-out $(OSNAME),$(USABLE_TOOLCHAINS))
endif
@@ -205,7 +204,7 @@ clean:
# $3 = Extra Settings
#
define DEPEND_RULE
-ifeq (,$(IGNORE_DEPS))
+ifndef $(IGNORE_DEPS)
.PHONY : rebuild_$(1)
rebuild_$(1) :| $(STAMPDIR)/dir.stamp
@@ -227,8 +226,7 @@ endif
endef
-
-ifeq ('win','$(TOOLCHAIN)')
+ifeq ($(TOOLCHAIN),win)
HOST_EXT=.dll
else
HOST_EXT=.so
@@ -238,7 +236,7 @@ endif
#
# Common Compile Options
#
-ifeq ('Release','$(CONFIG)')
+ifeq ($(CONFIG),Release)
POSIX_FLAGS?=-g -O2 -pthread -MMD
else
POSIX_FLAGS?=-g -O0 -pthread -MMD
@@ -288,6 +286,28 @@ endif
#
+# Convert a source path to a object file path.
+#
+# $1 = Source Name
+# $2 = Arch suffix
+#
+define SRC_TO_OBJ
+$(OUTDIR)/$(basename $(subst ..,__,$(1)))$(2).o
+endef
+
+
+#
+# Convert a source path to a dependency file path.
+#
+# $1 = Source Name
+# $2 = Arch suffix
+#
+define SRC_TO_DEP
+$(patsubst %.o,%.d,$(call SRC_TO_OBJ,$(1),$(2)))
+endef
+
+
+#
# If the requested toolchain is a NaCl or PNaCl toolchain, the use the
# macros and targets defined in nacl.mk, otherwise use the host sepecific
# macros and targets.
@@ -320,9 +340,7 @@ endif
#
# Assign a sensible default to CHROME_PATH.
#
-ifndef CHROME_PATH
-CHROME_PATH:=$(shell python $(NACL_SDK_ROOT)/tools/getos.py --chrome 2> $(DEV_NULL))
-endif
+CHROME_PATH?=$(shell python $(NACL_SDK_ROOT)/tools/getos.py --chrome 2> $(DEV_NULL))
#
# Verify we can find the Chrome executable if we need to launch it.
diff --git a/native_client_sdk/src/tools/host_gcc.mk b/native_client_sdk/src/tools/host_gcc.mk
index 075e944..f776739 100644
--- a/native_client_sdk/src/tools/host_gcc.mk
+++ b/native_client_sdk/src/tools/host_gcc.mk
@@ -38,14 +38,14 @@ LINUX_CCFLAGS=-fPIC -pthread $(LINUX_WARNINGS) -I$(NACL_SDK_ROOT)/include -I$(NA
# $2 = Compile Flags
#
define C_COMPILER_RULE
--include $(OUTDIR)/$(basename $(1)).d
-$(OUTDIR)/$(basename $(1)).o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+-include $(call SRC_TO_DEP,$(1))
+$(call SRC_TO_OBJ,$(1)): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CC,$$@,$(HOST_CC) -o $$@ -c $$< -fPIC $(POSIX_FLAGS) $(2) $(LINUX_FLAGS))
endef
define CXX_COMPILER_RULE
--include $(OUTDIR)/$(basename $(1)).d
-$(OUTDIR)/$(basename $(1)).o : $(1) $(TOP_MAKE) |$(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+-include $(call SRC_TO_DEP,$(1))
+$(call SRC_TO_OBJ,$(1)): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CXX,$$@,$(HOST_CXX) -o $$@ -c $$< -fPIC $(POSIX_FLAGS) $(2) $(LINUX_FLAGS))
endef
@@ -55,7 +55,7 @@ endef
# $3 = VC Flags (unused)
#
define COMPILE_RULE
-ifeq ('.c','$(suffix $(1))')
+ifeq ($(suffix $(1)),.c)
$(call C_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)))
else
$(call CXX_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)))
@@ -83,11 +83,11 @@ endef
#
#
define LIB_RULE
-$(STAMPDIR)/$(1).stamp : $(NACL_SDK_ROOT)/lib/$(OSNAME)_host/$(CONFIG)/lib$(1).a
+$(STAMPDIR)/$(1).stamp: $(NACL_SDK_ROOT)/lib/$(OSNAME)_host/$(CONFIG)/lib$(1).a
@echo "TOUCHED $$@" > $(STAMPDIR)/$(1).stamp
-all:$(NACL_SDK_ROOT)/lib/$(OSNAME)_host/$(CONFIG)/lib$(1).a
-$(NACL_SDK_ROOT)/lib/$(OSNAME)_host/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(OUTDIR)/$(basename $(src)).o)
+all: $(NACL_SDK_ROOT)/lib/$(OSNAME)_host/$(CONFIG)/lib$(1).a
+$(NACL_SDK_ROOT)/lib/$(OSNAME)_host/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(call SRC_TO_OBJ,$(src)))
$(MKDIR) -p $$(dir $$@)
$(call LOG,LIB,$$@,$(HOST_LIB) $$@ $$^)
endef
@@ -105,7 +105,7 @@ endef
#
define LINKER_RULE
all: $(1)
-$(1) : $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
+$(1): $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
$(call LOG,LINK,$$@,$(HOST_LINK) -shared -o $(1) $(2) $(NACL_LDFLAGS) $(foreach path,$(5),-L$(path)/$(OSNAME)_host)/$(CONFIG) $(foreach lib,$(3),-l$(lib)) $(6))
endef
@@ -121,8 +121,7 @@ endef
# $6 = VC Linker Switches
#
define LINK_RULE
-$(call LINKER_RULE,$(OUTDIR)/$(1)$(HOST_EXT),$(foreach src,$(2),$(OUTDIR)/$(basename $(src)).o),$(filter-out pthread,$(3)),$(4),$(LIB_PATHS),$(5))
+$(call LINKER_RULE,$(OUTDIR)/$(1)$(HOST_EXT),$(foreach src,$(2),$(call SRC_TO_OBJ,$(src))),$(filter-out pthread,$(3)),$(4),$(LIB_PATHS),$(5))
endef
-
all : $(LIB_LIST) $(DEPS_LIST)
diff --git a/native_client_sdk/src/tools/host_vc.mk b/native_client_sdk/src/tools/host_vc.mk
index d1b45cd..fb62167 100644
--- a/native_client_sdk/src/tools/host_vc.mk
+++ b/native_client_sdk/src/tools/host_vc.mk
@@ -43,14 +43,12 @@ WIN_FLAGS?=-D WIN32 -D _WIN32 -D PTW32_STATIC_LIB
# $2 = Compile Flags
#
define C_COMPILER_RULE
--include $(OUTDIR)/$(basename $(1)).d
-$(OUTDIR)/$(basename $(1)).o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+$(call SRC_TO_OBJ,$(1)): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CC,$$@,$(HOST_CC) /Fo$$@ /c $$< $(WIN_OPT_FLAGS) $(2) $(WIN_FLAGS))
endef
define CXX_COMPILER_RULE
--include $(OUTDIR)/$(basename $(1)).d
-$(OUTDIR)/$(basename $(1)).o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+$(call SRC_TO_OBJ,$(1)): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CXX,$$@,$(HOST_CXX) /Fo$$@ -c $$< $(WIN_OPT_FLAGS) $(2) $(WIN_FLAGS))
endef
@@ -60,7 +58,7 @@ endef
# $3 = VC Compile Flags
#
define COMPILE_RULE
-ifeq ('.c','$(suffix $(1))')
+ifeq ($(suffix $(1)),.c)
$(call C_COMPILER_RULE,$(1),$(3) $(foreach inc,$(INC_PATHS),/I$(inc)))
else
$(call CXX_COMPILER_RULE,$(1),$(3) $(foreach inc,$(INC_PATHS),/I$(inc)))
diff --git a/native_client_sdk/src/tools/nacl_gcc.mk b/native_client_sdk/src/tools/nacl_gcc.mk
index ddff452..51ed4b6 100644
--- a/native_client_sdk/src/tools/nacl_gcc.mk
+++ b/native_client_sdk/src/tools/nacl_gcc.mk
@@ -46,29 +46,32 @@ ARM_LIB?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-ar
# $1 = Source Name
# $2 = Compile Flags
#
-
define C_COMPILER_RULE
--include $(OUTDIR)/$(basename $(1))_*.d
-$(OUTDIR)/$(basename $(1))_x86_32.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+-include $(call SRC_TO_DEP,$(1),_x86_32)
+$(call SRC_TO_OBJ,$(1),_x86_32): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CC,$$@,$(X86_32_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFLAGS))
-$(OUTDIR)/$(basename $(1))_x86_64.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+-include $(call SRC_TO_DEP,$(1),_x86_64)
+$(call SRC_TO_OBJ,$(1),_x86_64): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CC,$$@,$(X86_64_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFLAGS))
-$(OUTDIR)/$(basename $(1))_arm.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+-include $(call SRC_TO_DEP,$(1),_arm)
+$(call SRC_TO_OBJ,$(1),_arm): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CC,$$@,$(ARM_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFLAGS))
endef
define CXX_COMPILER_RULE
--include $(OUTDIR)/$(basename $(1))_*.d
-$(OUTDIR)/$(basename $(1))_x86_32.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+-include $(call SRC_TO_DEP,$(1),_x86_32)
+$(call SRC_TO_OBJ,$(1),_x86_32): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CXX,$$@,$(X86_32_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CXXFLAGS))
-$(OUTDIR)/$(basename $(1))_x86_64.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+-include $(call SRC_TO_DEP,$(1),_x86_64)
+$(call SRC_TO_OBJ,$(1),_x86_64): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CXX,$$@,$(X86_64_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CXXFLAGS))
-$(OUTDIR)/$(basename $(1))_arm.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
- $(call LOG,CXX,$$@,$(ARM_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CXXFLAGS))
+-include $(call SRC_TO_DEP,$(1),_arm)
+$(call SRC_TO_OBJ,$(1),_arm): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
+ $(call LOG,CXX,_$$@,$(ARM_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CXXFLAGS))
endef
@@ -79,7 +82,7 @@ endef
# $4 = VC Flags (unused)
#
define COMPILE_RULE
-ifeq ('.c','$(suffix $(1))')
+ifeq ($(suffix $(1)),.c)
$(call C_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3))
else
$(call CXX_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3))
@@ -100,11 +103,11 @@ endef
GLIBC_REMAP:=
define SO_RULE
NMF_TARGETS+=$$(OUTDIR)/$(1)_x86_32.so
-$(OUTDIR)/$(1)_x86_32.so : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_x86_32.o) $(4)
+$(OUTDIR)/$(1)_x86_32.so : $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_x86_32)) $(4)
$(call LOG,LINK,$$@,$(X86_32_LINK) -o $$@ $$(filter-out $(4),$$^) -shared -m32 $$(LD_X86_32) $$(LD_FLAGS) $(foreach lib,$(3),-l$(lib)))
NMF_TARGETS+=$(OUTDIR)/$(1)_x86_64.so
-$(OUTDIR)/$(1)_x86_64.so : $(foreach src,$(2),$$(OUTDIR)/$(basename $(src))_x86_64.o) $(4)
+$(OUTDIR)/$(1)_x86_64.so : $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_x86_64)) $(4)
$(call LOG,LINK,$$@,$(X86_32_LINK) -o $$@ $$(filter-out $(4),$$^) -shared -m64 $(LD_X86_64) $$(LD_FLAGS) $(foreach lib,$(3),-l$(lib)))
ifneq (1,$(5))
@@ -136,23 +139,24 @@ $(STAMPDIR)/$(1).stamp :
@echo "TOUCHED $$@" > $(STAMPDIR)/$(1).stamp
all: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_32/$(CONFIG)/lib$(1).a
-$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_32/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_x86_32.o)
+$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_32/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_x86_32))
$(MKDIR) -p $$(dir $$@)
$(call LOG,LIB,$$@,$(X86_32_LIB) -r $$@ $$^)
all: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_64/$(CONFIG)/lib$(1).a
-$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_64/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_x86_64.o)
+$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_64/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_x86_64))
$(MKDIR) -p $$(dir $$@)
$(call LOG,LIB,$$@,$(X86_64_LIB) -r $$@ $$^)
ifneq ('glibc','$(TOOLCHAIN)')
all: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_arm/$(CONFIG)/lib$(1).a
endif
-$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_arm/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_arm.o)
+$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_arm/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_arm))
$(MKDIR) -p $$(dir $$@)
$(call LOG,LIB,$$@,$(ARM_LIB) -r $$@ $$^)
endef
+
#
# Specific Link Macro
#
@@ -164,13 +168,13 @@ endef
# $6 = Library Paths
#
define LINKER_RULE
-$(OUTDIR)/$(1)_x86_32.nexe : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_x86_32.o) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
+$(OUTDIR)/$(1)_x86_32.nexe : $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_x86_32)) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
$(call LOG,LINK,$$@,$(X86_32_LINK) -o $$@ $$(filter %.o,$$^) $(NACL_LDFLAGS) $(foreach path,$(6),-L$(path)/$(TOOLCHAIN)_x86_32/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(5))
-$(OUTDIR)/$(1)_x86_64.nexe : $(foreach src,$(2),$$(OUTDIR)/$(basename $(src))_x86_64.o) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
+$(OUTDIR)/$(1)_x86_64.nexe : $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_x86_64)) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
$(call LOG,LINK,$$@,$(X86_64_LINK) -o $$@ $$(filter %.o,$$^) $(NACL_LDFLAGS) $(foreach path,$(6),-L$(path)/$(TOOLCHAIN)_x86_64/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(5))
-$(OUTDIR)/$(1)_arm.nexe : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_arm.o) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
+$(OUTDIR)/$(1)_arm.nexe : $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_arm)) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
$(call LOG,LINK,$$@,$(ARM_LINK) -o $$@ $$(filter %.o,$$^) $(NACL_LDFLAGS) $(foreach path,$(6),-L$(path)/$(TOOLCHAIN)_arm/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(5))
endef
@@ -235,5 +239,3 @@ all:$(OUTDIR)/$(1).nmf
$(OUTDIR)/$(1).nmf : $(foreach arch,$(NMF_ARCHES),$(OUTDIR)/$(1)$(arch)) $(GLIBC_SO_LIST)
$(call LOG,CREATE_NMF,$$@,$(NMF) -o $$@ $$^ -D $(GLIBC_DUMP) $(GLIBC_PATHS) -s $(OUTDIR) $(2) $(GLIBC_REMAP))
endef
-
-
diff --git a/native_client_sdk/src/tools/nacl_llvm.mk b/native_client_sdk/src/tools/nacl_llvm.mk
index 245eb7b..429b6e3 100644
--- a/native_client_sdk/src/tools/nacl_llvm.mk
+++ b/native_client_sdk/src/tools/nacl_llvm.mk
@@ -26,14 +26,14 @@ PNACL_LIB?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-ar r
# $3 = Include Directories
#
define C_COMPILER_RULE
--include $(OUTDIR)/$(basename $(1))_pnacl.d
-$(OUTDIR)/$(basename $(1))_pnacl.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+-include $(call SRC_TO_DEP,$(1),_pnacl)
+$(call SRC_TO_OBJ,$(1),_pnacl): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CC,$$@,$(PNACL_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFLAGS))
endef
define CXX_COMPILER_RULE
--include $(OUTDIR)/$(basename $(1))_pnacl.d
-$(OUTDIR)/$(basename $(1))_pnacl.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp
+-include $(call SRC_TO_DEP,$(1))
+$(call SRC_TO_OBJ,$(1),_pnacl): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
$(call LOG,CXX,$$@,$(PNACL_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFLAGS))
endef
@@ -43,7 +43,7 @@ endef
# $3 = Include Directories
# $4 = VC Flags (unused)
define COMPILE_RULE
-ifeq ('.c','$(suffix $(1))')
+ifeq ($(suffix $(1)),.c)
$(call C_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3))
else
$(call CXX_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3))
@@ -71,11 +71,11 @@ endef
# $3 = POSIX Link Flags
# $4 = VC Link Flags (unused)
define LIB_RULE
-$(STAMPDIR)/$(1).stamp : $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a
+$(STAMPDIR)/$(1).stamp: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a
@echo "TOUCHED $$@" > $(STAMPDIR)/$(1).stamp
all: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a
-$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_pnacl.o)
+$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a: $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_pnacl))
$(MKDIR) -p $$(dir $$@)
$(call LOG,LIB,$$@,$(PNACL_LIB) $$@ $$^ $(3))
endef
@@ -93,7 +93,7 @@ endef
#
define LINKER_RULE
all: $(1)
-$(1) : $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
+$(1): $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
$(call LOG,LINK,$$@,$(PNACL_LINK) -o $(1) $(2) $(foreach path,$(5),-L$(path)/pnacl/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(6))
endef
@@ -109,7 +109,7 @@ endef
# $6 = VC Linker Switches
#
define LINK_RULE
-$(call LINKER_RULE,$(OUTDIR)/$(1).pexe,$(foreach src,$(2),$(OUTDIR)/$(basename $(src))_pnacl.o),$(filter-out pthread,$(3)),$(4),$(LIB_PATHS),$(5))
+$(call LINKER_RULE,$(OUTDIR)/$(1).pexe,$(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_pnacl)),$(filter-out pthread,$(3)),$(4),$(LIB_PATHS),$(5))
endef
@@ -132,5 +132,3 @@ all:$(OUTDIR)/$(1).nmf
$(OUTDIR)/$(1).nmf : $(OUTDIR)/$(1).pexe
$(call LOG,CREATE_NMF,$$@,$(NMF) -o $$@ $$^ -s $(OUTDIR) $(2))
endef
-
-