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
diff --git a/Android.mk b/Android.mk
index e2d1e02..160301b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -74,11 +74,7 @@
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 @@
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
diff --git a/android-webrtc.mk b/android-webrtc.mk
index eb620bb..dc92aeb 100644
--- a/android-webrtc.mk
+++ b/android-webrtc.mk
@@ -33,6 +33,11 @@
-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'
diff --git a/src/modules/audio_coding/codecs/iSAC/fix/source/Android.mk b/src/modules/audio_coding/codecs/iSAC/fix/source/Android.mk
index ceca966..872d388 100644
--- a/src/modules/audio_coding/codecs/iSAC/fix/source/Android.mk
+++ b/src/modules/audio_coding/codecs/iSAC/fix/source/Android.mk
@@ -52,7 +52,7 @@
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 @@
#########################
# Build the neon library.
+ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
include $(CLEAR_VARS)
@@ -76,13 +77,12 @@
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 @@
endif
include $(BUILD_STATIC_LIBRARY)
+endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
+
###########################
# isac test app
@@ -114,9 +116,13 @@
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
diff --git a/src/modules/audio_processing/aecm/Android.mk b/src/modules/audio_processing/aecm/Android.mk
index c33a957..10c38ca 100644
--- a/src/modules/audio_processing/aecm/Android.mk
+++ b/src/modules/audio_processing/aecm/Android.mk
@@ -47,6 +47,7 @@
#########################
# Build the neon library.
+ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
include $(CLEAR_VARS)
@@ -61,6 +62,7 @@
LOCAL_CFLAGS := \
$(MY_WEBRTC_COMMON_DEFS) \
-mfpu=neon \
+ -mfloat-abi=softfp \
-flax-vector-conversions
LOCAL_C_INCLUDES := \
@@ -72,3 +74,5 @@
include external/stlport/libstlport.mk
endif
include $(BUILD_STATIC_LIBRARY)
+
+endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
diff --git a/src/modules/audio_processing/ns/Android.mk b/src/modules/audio_processing/ns/Android.mk
index aba95e1..255f470 100644
--- a/src/modules/audio_processing/ns/Android.mk
+++ b/src/modules/audio_processing/ns/Android.mk
@@ -49,13 +49,14 @@
#############################
# 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_CFLAGS := \
$(MY_WEBRTC_COMMON_DEFS) \
-mfpu=neon \
+ -mfloat-abi=softfp \
-flax-vector-conversions
LOCAL_C_INCLUDES := \
@@ -74,3 +76,4 @@
include external/stlport/libstlport.mk
endif
include $(BUILD_STATIC_LIBRARY)
+endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)