diff options
Diffstat (limited to 'native_client_sdk')
-rw-r--r-- | native_client_sdk/src/build_tools/template.mk | 5 | ||||
-rwxr-xr-x | native_client_sdk/src/build_tools/test_sdk.py | 8 | ||||
-rw-r--r-- | native_client_sdk/src/tools/host_gcc.mk | 16 | ||||
-rw-r--r-- | native_client_sdk/src/tools/host_vc.mk | 15 | ||||
-rw-r--r-- | native_client_sdk/src/tools/nacl_gcc.mk | 33 | ||||
-rw-r--r-- | native_client_sdk/src/tools/nacl_llvm.mk | 14 |
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 |