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