Changed build settings for ARMv5 in Android.

I found some issues in building ARMv5 with ICM. This CL includes fixes,
and a design change which now will exclude any NEON libraries unless 
the build is for dynamic detection or for Neon specifically.
Review URL: http://webrtc-codereview.appspot.com/330021

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1335 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
kma@webrtc.org 2012-01-04 17:47:57 +00:00
parent 6c1d41583a
commit 746f9e31c0
5 changed files with 25 additions and 14 deletions

View File

@ -74,11 +74,7 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \
libwebrtc_system_wrappers
# Add Neon libraries.
ifneq (,$(filter '-DWEBRTC_DETECT_ARM_NEON',$(MY_WEBRTC_COMMON_DEFS)))
LOCAL_WHOLE_STATIC_LIBRARIES += \
libwebrtc_aecm_neon \
libwebrtc_ns_neon
else ifeq ($(ARCH_ARM_HAVE_NEON),true)
ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
LOCAL_WHOLE_STATIC_LIBRARIES += \
libwebrtc_aecm_neon \
libwebrtc_ns_neon
@ -139,10 +135,7 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \
libwebrtc_vpx
# Add Neon libraries.
ifneq (,$(filter '-DWEBRTC_DETECT_ARM_NEON',$(MY_WEBRTC_COMMON_DEFS)))
LOCAL_WHOLE_STATIC_LIBRARIES += \
libwebrtc_isacfix_neon
else ifeq ($(ARCH_ARM_HAVE_NEON),true)
ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
LOCAL_WHOLE_STATIC_LIBRARIES += \
libwebrtc_isacfix_neon
endif

View File

@ -33,6 +33,11 @@ MY_ARM_CFLAGS_NEON := \
-flax-vector-conversions
endif
ifneq (,$(filter '-DWEBRTC_DETECT_ARM_NEON' '-DWEBRTC_ARCH_ARM_NEON', \
$(MY_WEBRTC_COMMON_DEFS)))
WEBRTC_BUILD_NEON_LIBS := true
endif
ifeq ($(ARCH_ARM_HAVE_ARMV7A),true)
MY_WEBRTC_COMMON_DEFS += \
'-DWEBRTC_ARCH_ARM_V7A'

View File

@ -52,7 +52,7 @@ LOCAL_CFLAGS := \
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../interface \
$(LOCAL_PATH)/../../../../../.. \
$(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include
$(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include
LOCAL_SHARED_LIBRARIES := \
libcutils \
@ -66,6 +66,7 @@ include $(BUILD_STATIC_LIBRARY)
#########################
# Build the neon library.
ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
include $(CLEAR_VARS)
@ -76,13 +77,12 @@ LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := \
filters_neon.c \
lattice_neon.S #.S extention is for including a header file in assembly.
# TODO(kma): Check with C compiler team and on line community for any status
# in the file name (.s vs .S), for a better solution.
# Flags passed to both C and C++ files.
LOCAL_CFLAGS := \
$(MY_WEBRTC_COMMON_DEFS) \
-mfpu=neon \
-mfloat-abi=softfp \
-flax-vector-conversions
LOCAL_C_INCLUDES := \
@ -96,6 +96,8 @@ include external/stlport/libstlport.mk
endif
include $(BUILD_STATIC_LIBRARY)
endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
###########################
# isac test app
@ -114,9 +116,13 @@ LOCAL_C_INCLUDES := \
LOCAL_STATIC_LIBRARIES := \
libwebrtc_isacfix \
libwebrtc_isacfix_neon \
libwebrtc_spl
ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
LOCAL_STATIC_LIBRARIES += \
libwebrtc_isacfix_neon
endif
LOCAL_SHARED_LIBRARIES := \
libutils

View File

@ -47,6 +47,7 @@ include $(BUILD_STATIC_LIBRARY)
#########################
# Build the neon library.
ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
include $(CLEAR_VARS)
@ -61,6 +62,7 @@ LOCAL_SRC_FILES := aecm_core_neon.c
LOCAL_CFLAGS := \
$(MY_WEBRTC_COMMON_DEFS) \
-mfpu=neon \
-mfloat-abi=softfp \
-flax-vector-conversions
LOCAL_C_INCLUDES := \
@ -72,3 +74,5 @@ ifndef NDK_ROOT
include external/stlport/libstlport.mk
endif
include $(BUILD_STATIC_LIBRARY)
endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)

View File

@ -49,13 +49,14 @@ include $(BUILD_STATIC_LIBRARY)
#############################
# Build the neon library.
ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE := libwebrtc_ns_neon
LOCAL_MODULE_TAGS := optional
LOCAL_GENERATED_SOURCES :=
LOCAL_SRC_FILES := nsx_core_neon.c
@ -63,6 +64,7 @@ LOCAL_SRC_FILES := nsx_core_neon.c
LOCAL_CFLAGS := \
$(MY_WEBRTC_COMMON_DEFS) \
-mfpu=neon \
-mfloat-abi=softfp \
-flax-vector-conversions
LOCAL_C_INCLUDES := \
@ -74,3 +76,4 @@ ifndef NDK_ROOT
include external/stlport/libstlport.mk
endif
include $(BUILD_STATIC_LIBRARY)
endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)