blob: 75748e5469eeacedf9e08c3d78cdc490726353e4 [file] [log] [blame]
Alexander Gutkina6451822012-09-17 08:53:18 +01001# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9#############################
10# Build the non-neon library.
11
12LOCAL_PATH := $(call my-dir)
13
14include $(CLEAR_VARS)
15
16include $(LOCAL_PATH)/../../../../../../../android-webrtc.mk
17
18LOCAL_ARM_MODE := arm
19LOCAL_MODULE_CLASS := STATIC_LIBRARIES
20LOCAL_MODULE := libwebrtc_isacfix
21LOCAL_MODULE_TAGS := optional
22LOCAL_SRC_FILES := \
23 arith_routines.c \
24 arith_routines_hist.c \
25 arith_routines_logist.c \
26 bandwidth_estimator.c \
27 decode.c \
28 decode_bwe.c \
29 decode_plc.c \
30 encode.c \
31 entropy_coding.c \
32 fft.c \
33 filterbank_tables.c \
34 filterbanks.c \
35 filters.c \
36 initialize.c \
37 isacfix.c \
38 lattice.c \
39 lpc_masking_model.c \
40 lpc_tables.c \
41 pitch_estimator.c \
42 pitch_filter.c \
43 pitch_gain_tables.c \
44 pitch_lag_tables.c \
45 spectrum_ar_model_tables.c \
46 transform.c
47
Alexander Gutkina6451822012-09-17 08:53:18 +010048# Using .S (instead of .s) extention is to include a C header file in assembly.
Ying Wang792d5462014-03-10 15:26:43 -070049my_as_src := \
Alexander Gutkina6451822012-09-17 08:53:18 +010050 lattice_armv7.S \
51 pitch_filter_armv6.S
Ying Wang792d5462014-03-10 15:26:43 -070052my_c_src := \
Alexander Gutkin69857ee2012-09-20 11:57:35 +010053 lattice_c.c \
54 pitch_filter_c.c
Ying Wang792d5462014-03-10 15:26:43 -070055LOCAL_SRC_FILES_arm += $(my_as_src)
56LOCAL_SRC_FILES_x86 += $(my_c_src)
57LOCAL_SRC_FILES_mips += $(my_c_src)
58LOCAL_SRC_FILES_arm64 += $(my_c_src)
59LOCAL_SRC_FILES_x86_64 += $(my_c_src)
60LOCAL_SRC_FILES_mips64 += $(my_c_src)
Alexander Gutkina6451822012-09-17 08:53:18 +010061
62# Flags passed to both C and C++ files.
63LOCAL_CFLAGS := \
64 $(MY_WEBRTC_COMMON_DEFS)
65
Ying Wang792d5462014-03-10 15:26:43 -070066LOCAL_CFLAGS_arm := $(MY_WEBRTC_COMMON_DEFS_arm)
67LOCAL_CFLAGS_x86 := $(MY_WEBRTC_COMMON_DEFS_x86)
68LOCAL_CFLAGS_mips := $(MY_WEBRTC_COMMON_DEFS_mips)
69LOCAL_CFLAGS_arm64 := $(MY_WEBRTC_COMMON_DEFS_arm64)
70LOCAL_CFLAGS_x86_64 := $(MY_WEBRTC_COMMON_DEFS_x86_64)
71LOCAL_CFLAGS_mips64 := $(MY_WEBRTC_COMMON_DEFS_mips64)
72
Alexander Gutkina6451822012-09-17 08:53:18 +010073LOCAL_C_INCLUDES := \
74 $(LOCAL_PATH)/../interface \
75 $(LOCAL_PATH)/../../../../../.. \
76 $(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include
77
78LOCAL_STATIC_LIBRARIES += libwebrtc_system_wrappers
79
80LOCAL_SHARED_LIBRARIES := \
81 libcutils \
Przemyslaw Szczepaniak5d8e19e2013-02-04 18:00:41 +000082 libdl
Alexander Gutkina6451822012-09-17 08:53:18 +010083
84ifndef NDK_ROOT
Przemyslaw Szczepaniak5d8e19e2013-02-04 18:00:41 +000085ifndef WEBRTC_STL
86LOCAL_SHARED_LIBRARIES += libstlport
Alexander Gutkina6451822012-09-17 08:53:18 +010087include external/stlport/libstlport.mk
Przemyslaw Szczepaniak5d8e19e2013-02-04 18:00:41 +000088else
89LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
90LOCAL_SDK_VERSION := 14
91LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
Alexander Gutkina6451822012-09-17 08:53:18 +010092endif
Przemyslaw Szczepaniak5d8e19e2013-02-04 18:00:41 +000093else
94LOCAL_SHARED_LIBRARIES += libstlport
95endif
96
Alexander Gutkina6451822012-09-17 08:53:18 +010097include $(BUILD_STATIC_LIBRARY)
98
99#########################
100# Build the neon library.
101ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
102
103include $(CLEAR_VARS)
104
105LOCAL_ARM_MODE := arm
106LOCAL_MODULE_CLASS := STATIC_LIBRARIES
107LOCAL_MODULE := libwebrtc_isacfix_neon
108LOCAL_MODULE_TAGS := optional
109LOCAL_SRC_FILES := \
110 filters_neon.c \
111 lattice_neon.S \
112 lpc_masking_model_neon.S
113
114# Flags passed to both C and C++ files.
115LOCAL_CFLAGS := \
116 $(MY_WEBRTC_COMMON_DEFS) \
117 -mfpu=neon \
118 -mfloat-abi=softfp \
119 -flax-vector-conversions
120
Ying Wang9fb55172014-03-10 18:16:38 -0700121LOCAL_MODULE_TARGET_ARCH := arm
Ying Wang792d5462014-03-10 15:26:43 -0700122LOCAL_CFLAGS_arm := $(MY_WEBRTC_COMMON_DEFS_arm)
Ying Wang792d5462014-03-10 15:26:43 -0700123
Alexander Gutkina6451822012-09-17 08:53:18 +0100124LOCAL_C_INCLUDES := \
125 $(LOCAL_PATH)/../interface \
126 $(LOCAL_PATH)/../../../../../.. \
127 $(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include
128
Przemyslaw Szczepaniakfea56d82013-02-04 17:33:41 +0000129ifndef NDK_ROOT
Przemyslaw Szczepaniak5d8e19e2013-02-04 18:00:41 +0000130ifndef WEBRTC_STL
131LOCAL_SHARED_LIBRARIES += libstlport
Przemyslaw Szczepaniakfea56d82013-02-04 17:33:41 +0000132include external/stlport/libstlport.mk
Przemyslaw Szczepaniak5d8e19e2013-02-04 18:00:41 +0000133else
134LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
135LOCAL_SDK_VERSION := 14
136LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
Przemyslaw Szczepaniakfea56d82013-02-04 17:33:41 +0000137endif
Przemyslaw Szczepaniak5d8e19e2013-02-04 18:00:41 +0000138else
139LOCAL_SHARED_LIBRARIES += libstlport
140endif
141
Alexander Gutkina6451822012-09-17 08:53:18 +0100142include $(BUILD_STATIC_LIBRARY)
143
144endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)