summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
Diffstat (limited to 'native_client_sdk')
-rw-r--r--native_client_sdk/src/build_tools/template.mk5
-rwxr-xr-xnative_client_sdk/src/build_tools/test_sdk.py8
-rw-r--r--native_client_sdk/src/tools/host_gcc.mk16
-rw-r--r--native_client_sdk/src/tools/host_vc.mk15
-rw-r--r--native_client_sdk/src/tools/nacl_gcc.mk33
-rw-r--r--native_client_sdk/src/tools/nacl_llvm.mk14
6 files changed, 88 insertions, 3 deletions
diff --git a/native_client_sdk/src/build_tools/template.mk b/native_client_sdk/src/build_tools/template.mk
index ca5f2d4..d240f1f 100644
--- a/native_client_sdk/src/build_tools/template.mk
+++ b/native_client_sdk/src/build_tools/template.mk
@@ -94,7 +94,12 @@ $(eval $(call SO_RULE,{{name}},$({{name}}_SOURCES)))
[[ elif target['TYPE'] == 'so-standalone':]]
$(eval $(call SO_RULE,{{name}},$({{name}}_SOURCES),,,1))
[[ else:]]
+ifeq ($(CONFIG),Release)
+$(eval $(call LINK_RULE,{{name}}_unstripped,$({{name}}_SOURCES),$(LIBS),$(DEPS)))
+$(eval $(call STRIP_RULE,{{name}},{{name}}_unstripped))
+else
$(eval $(call LINK_RULE,{{name}},$({{name}}_SOURCES),$(LIBS),$(DEPS)))
+endif
[[]]
#
diff --git a/native_client_sdk/src/build_tools/test_sdk.py b/native_client_sdk/src/build_tools/test_sdk.py
index f245fb4..6e7a841 100755
--- a/native_client_sdk/src/build_tools/test_sdk.py
+++ b/native_client_sdk/src/build_tools/test_sdk.py
@@ -37,8 +37,12 @@ TEST_LIBRARY_LIST = [
def BuildStepBuildExamples(pepperdir, platform):
- build_sdk.BuildStepMakeAll(pepperdir, platform, 'examples', 'Build Examples',
- deps=False)
+ build_sdk.BuildStepMakeAll(pepperdir, platform, 'examples',
+ 'Build Examples (Debug)',
+ deps=False, config='Debug')
+ build_sdk.BuildStepMakeAll(pepperdir, platform, 'examples',
+ 'Build Examples (Release)',
+ deps=False, config='Release')
def BuildStepCopyTests(pepperdir, toolchains, build_experimental, clobber):
diff --git a/native_client_sdk/src/tools/host_gcc.mk b/native_client_sdk/src/tools/host_gcc.mk
index f776739..386cf9d 100644
--- a/native_client_sdk/src/tools/host_gcc.mk
+++ b/native_client_sdk/src/tools/host_gcc.mk
@@ -19,6 +19,7 @@ HOST_CC?=gcc
HOST_CXX?=g++
HOST_LINK?=g++
HOST_LIB?=ar r
+HOST_STRIP?=strip
ifeq (,$(findstring gcc,$(shell $(WHICH) gcc)))
$(warning To skip the host build use:)
@@ -125,3 +126,18 @@ $(call LINKER_RULE,$(OUTDIR)/$(1)$(HOST_EXT),$(foreach src,$(2),$(call SRC_TO_OB
endef
all : $(LIB_LIST) $(DEPS_LIST)
+
+
+#
+# Strip Macro
+# The host build makes shared libraries, so the best we can do is strip-debug.
+# We cannot strip the symbol names.
+#
+# $1 = Target Name
+# $2 = Input Name
+#
+define STRIP_RULE
+all: $(OUTDIR)/$(1)$(HOST_EXT)
+$(OUTDIR)/$(1)$(HOST_EXT): $(OUTDIR)/$(2)$(HOST_EXT)
+ $(call LOG,STRIP,$$@,$(HOST_STRIP) --strip-debug -o $$@ $$^)
+endef
diff --git a/native_client_sdk/src/tools/host_vc.mk b/native_client_sdk/src/tools/host_vc.mk
index ac2fbd4f..2f7b6a9 100644
--- a/native_client_sdk/src/tools/host_vc.mk
+++ b/native_client_sdk/src/tools/host_vc.mk
@@ -115,4 +115,19 @@ define LINK_RULE
$(call LINKER_RULE,$(OUTDIR)/$(1)$(HOST_EXT),$(foreach src,$(2),$(OUTDIR)/$(basename $(src)).o),$(3),$(4),$(LIB_PATHS),$(6))
endef
+
+#
+# Strip Macro
+# This is a nop (copy) since visual studio already keeps debug info
+# separate from the binaries
+#
+# $1 = Target Name
+# $2 = Input Name
+#
+define STRIP_RULE
+all: $(OUTDIR)/$(1)$(HOST_EXT)
+$(OUTDIR)/$(1)$(HOST_EXT): $(OUTDIR)/$(2)$(HOST_EXT)
+ $(call LOG,COPY,$$@,$(CP) $$^ $$@)
+endef
+
all : $(LIB_LIST) $(DEPS_LIST)
diff --git a/native_client_sdk/src/tools/nacl_gcc.mk b/native_client_sdk/src/tools/nacl_gcc.mk
index ea7d869..bdbe33d 100644
--- a/native_client_sdk/src/tools/nacl_gcc.mk
+++ b/native_client_sdk/src/tools/nacl_gcc.mk
@@ -28,16 +28,19 @@ X86_32_CC?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-gcc
X86_32_CXX?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-g++
X86_32_LINK?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-g++
X86_32_LIB?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-ar
+X86_32_STRIP?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-strip
X86_64_CC?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/x86_64-nacl-gcc
X86_64_CXX?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/x86_64-nacl-g++
X86_64_LINK?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/x86_64-nacl-g++
X86_64_LIB?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/x86_64-nacl-ar
+X86_64_STRIP?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/x86_64-nacl-strip
ARM_CC?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-gcc
ARM_CXX?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-g++
ARM_LINK?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-g++
ARM_LIB?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-ar
+ARM_STRIP?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-strip
# Architecture-specific flags
@@ -204,6 +207,35 @@ endef
#
+# Strip Macro for each arch (e.g., each arch supported by LINKER_RULE).
+#
+# $1 = Target Name
+# $2 = Source Name
+#
+define STRIP_ALL_RULE
+$(OUTDIR)/$(1)_x86_32.nexe : $(OUTDIR)/$(2)_x86_32.nexe
+ $(call LOG,STRIP,$$@,$(X86_32_STRIP) -o $$@ $$^)
+
+$(OUTDIR)/$(1)_x86_64.nexe : $(OUTDIR)/$(2)_x86_64.nexe
+ $(call LOG,STRIP,$$@,$(X86_64_STRIP) -o $$@ $$^)
+
+$(OUTDIR)/$(1)_arm.nexe : $(OUTDIR)/$(2)_arm.nexe
+ $(call LOG,STRIP,$$@,$(ARM_STRIP) -o $$@ $$^)
+endef
+
+
+#
+# Top-level Strip Macro
+#
+# $1 = Target Basename
+# $2 = Source Basename
+#
+define STRIP_RULE
+$(call STRIP_ALL_RULE,$(1),$(2))
+endef
+
+
+#
# Determine which architectures to build for. The user can set NACL_ARCH or
# ARCHES in the environment to control this.
#
@@ -221,6 +253,7 @@ else
ARCHES?=${VALID_ARCHES}
endif
+
#
# Generate NMF_TARGETS
#
diff --git a/native_client_sdk/src/tools/nacl_llvm.mk b/native_client_sdk/src/tools/nacl_llvm.mk
index 429b6e3..271b289 100644
--- a/native_client_sdk/src/tools/nacl_llvm.mk
+++ b/native_client_sdk/src/tools/nacl_llvm.mk
@@ -16,7 +16,7 @@ PNACL_CC?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-clang -c
PNACL_CXX?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-clang++ -c
PNACL_LINK?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-clang++
PNACL_LIB?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-ar r
-
+PNACL_STRIP?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-finalize
#
# Compile Macro
@@ -113,6 +113,18 @@ $(call LINKER_RULE,$(OUTDIR)/$(1).pexe,$(foreach src,$(2),$(call SRC_TO_OBJ,$(sr
endef
+#
+# Strip Macro
+#
+# $1 = Target Name
+# $2 = Input Name
+#
+define STRIP_RULE
+all: $(OUTDIR)/$(1).pexe
+$(OUTDIR)/$(1).pexe: $(OUTDIR)/$(2).pexe
+ $(call LOG,STRIP,$$@,$(PNACL_STRIP) -o $$@ $$^)
+endef
+
#
# NMF Manifiest generation