1a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# 3a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# Use of this source code is governed by a BSD-style license 4a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# that can be found in the LICENSE file in the root of the source 5a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# tree. An additional intellectual property rights grant can be found 6a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# in the file PATENTS. All contributing project authors may 7a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# be found in the AUTHORS file in the root of the source tree. 8a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 9a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin############################# 10a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# Build the non-neon library. 11a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 12a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_PATH := $(call my-dir) 13a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 14a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkininclude $(CLEAR_VARS) 15a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 16a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkininclude $(LOCAL_PATH)/../../../../../../../android-webrtc.mk 17a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 18a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_ARM_MODE := arm 19a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_MODULE_CLASS := STATIC_LIBRARIES 20a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_MODULE := libwebrtc_isacfix 21a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_MODULE_TAGS := optional 22a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_SRC_FILES := \ 23a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin arith_routines.c \ 24a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin arith_routines_hist.c \ 25a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin arith_routines_logist.c \ 26a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin bandwidth_estimator.c \ 27a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin decode.c \ 28a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin decode_bwe.c \ 29a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin decode_plc.c \ 30a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin encode.c \ 31a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin entropy_coding.c \ 32a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin fft.c \ 33a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin filterbank_tables.c \ 34a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin filterbanks.c \ 35a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin filters.c \ 36a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin initialize.c \ 37a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin isacfix.c \ 38a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin lattice.c \ 39a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin lpc_masking_model.c \ 40a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin lpc_tables.c \ 41a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin pitch_estimator.c \ 42a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin pitch_filter.c \ 43a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin pitch_gain_tables.c \ 44a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin pitch_lag_tables.c \ 45a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin spectrum_ar_model_tables.c \ 46a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin transform.c 47a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 48a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# Using .S (instead of .s) extention is to include a C header file in assembly. 49792d5464151b0e5744e311ff79eca886e277807bYing Wangmy_as_src := \ 50a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin lattice_armv7.S \ 51a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin pitch_filter_armv6.S 52792d5464151b0e5744e311ff79eca886e277807bYing Wangmy_c_src := \ 5369857ee3e72bc52cc3bd1ea80147fa0076a02973Alexander Gutkin lattice_c.c \ 5469857ee3e72bc52cc3bd1ea80147fa0076a02973Alexander Gutkin pitch_filter_c.c 55792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_SRC_FILES_arm += $(my_as_src) 56792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_SRC_FILES_x86 += $(my_c_src) 57792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_SRC_FILES_mips += $(my_c_src) 58792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_SRC_FILES_arm64 += $(my_c_src) 59792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_SRC_FILES_x86_64 += $(my_c_src) 60792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_SRC_FILES_mips64 += $(my_c_src) 61a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 62a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# Flags passed to both C and C++ files. 63a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_CFLAGS := \ 64a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin $(MY_WEBRTC_COMMON_DEFS) 65a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 66792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_CFLAGS_arm := $(MY_WEBRTC_COMMON_DEFS_arm) 67792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_CFLAGS_x86 := $(MY_WEBRTC_COMMON_DEFS_x86) 68792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_CFLAGS_mips := $(MY_WEBRTC_COMMON_DEFS_mips) 69792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_CFLAGS_arm64 := $(MY_WEBRTC_COMMON_DEFS_arm64) 70792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_CFLAGS_x86_64 := $(MY_WEBRTC_COMMON_DEFS_x86_64) 71792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_CFLAGS_mips64 := $(MY_WEBRTC_COMMON_DEFS_mips64) 72792d5464151b0e5744e311ff79eca886e277807bYing Wang 73a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_C_INCLUDES := \ 74a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin $(LOCAL_PATH)/../interface \ 75a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin $(LOCAL_PATH)/../../../../../.. \ 76a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin $(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include 77a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 785d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw Szczepaniakifndef WEBRTC_STL 795d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw SzczepaniakLOCAL_SHARED_LIBRARIES += libstlport 80a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkininclude external/stlport/libstlport.mk 815d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw Szczepaniakelse 825d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw SzczepaniakLOCAL_NDK_STL_VARIANT := $(WEBRTC_STL) 835d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw SzczepaniakLOCAL_SDK_VERSION := 14 845d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw SzczepaniakLOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL) 855d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw Szczepaniakendif 865d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw Szczepaniak 87a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkininclude $(BUILD_STATIC_LIBRARY) 88a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 89a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin######################### 90a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# Build the neon library. 91a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkinifeq ($(WEBRTC_BUILD_NEON_LIBS),true) 92a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 93a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkininclude $(CLEAR_VARS) 94a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 95a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_ARM_MODE := arm 96a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_MODULE_CLASS := STATIC_LIBRARIES 97a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_MODULE := libwebrtc_isacfix_neon 98a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_MODULE_TAGS := optional 99a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_SRC_FILES := \ 100a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin filters_neon.c \ 101a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin lattice_neon.S \ 102a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin lpc_masking_model_neon.S 103a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 104a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin# Flags passed to both C and C++ files. 105a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_CFLAGS := \ 106a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin $(MY_WEBRTC_COMMON_DEFS) \ 107a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin -mfpu=neon \ 108a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin -mfloat-abi=softfp \ 109a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin -flax-vector-conversions 110a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 1119fb5517a05f10f029c7a716b6cd3fd3ee60cb3bdYing WangLOCAL_MODULE_TARGET_ARCH := arm 112792d5464151b0e5744e311ff79eca886e277807bYing WangLOCAL_CFLAGS_arm := $(MY_WEBRTC_COMMON_DEFS_arm) 113792d5464151b0e5744e311ff79eca886e277807bYing Wang 114a6451827d543eb00824bc95097e47d0aac51ae93Alexander GutkinLOCAL_C_INCLUDES := \ 115a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin $(LOCAL_PATH)/../interface \ 116a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin $(LOCAL_PATH)/../../../../../.. \ 117a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin $(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include 118a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 1195d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw Szczepaniakifndef WEBRTC_STL 1205d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw SzczepaniakLOCAL_SHARED_LIBRARIES += libstlport 121a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkininclude external/stlport/libstlport.mk 1225d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw Szczepaniakelse 1235d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw SzczepaniakLOCAL_NDK_STL_VARIANT := $(WEBRTC_STL) 1245d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw SzczepaniakLOCAL_SDK_VERSION := 14 1255d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw SzczepaniakLOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL) 1265d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw Szczepaniakendif 1275d8e19eb3b3c4b541df50f8eddd6198b4be992a4Przemyslaw Szczepaniak 128a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkininclude $(BUILD_STATIC_LIBRARY) 129a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 130a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkinendif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true) 131