Android.mk revision 792d5464151b0e5744e311ff79eca886e277807b
1# 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
48# Using .S (instead of .s) extention is to include a C header file in assembly.
49my_as_src := \
50    lattice_armv7.S \
51    pitch_filter_armv6.S
52my_c_src := \
53    lattice_c.c \
54    pitch_filter_c.c
55LOCAL_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)
61
62# Flags passed to both C and C++ files.
63LOCAL_CFLAGS := \
64    $(MY_WEBRTC_COMMON_DEFS)
65
66LOCAL_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
73LOCAL_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 \
82    libdl
83
84ifndef NDK_ROOT
85ifndef WEBRTC_STL
86LOCAL_SHARED_LIBRARIES += libstlport
87include external/stlport/libstlport.mk
88else
89LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
90LOCAL_SDK_VERSION := 14
91LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
92endif
93else
94LOCAL_SHARED_LIBRARIES += libstlport
95endif
96
97include $(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
121LOCAL_CFLAGS_arm := $(MY_WEBRTC_COMMON_DEFS_arm)
122LOCAL_CFLAGS_x86 := $(MY_WEBRTC_COMMON_DEFS_x86)
123LOCAL_CFLAGS_mips := $(MY_WEBRTC_COMMON_DEFS_mips)
124LOCAL_CFLAGS_arm64 := $(MY_WEBRTC_COMMON_DEFS_arm64)
125LOCAL_CFLAGS_x86_64 := $(MY_WEBRTC_COMMON_DEFS_x86_64)
126LOCAL_CFLAGS_mips64 := $(MY_WEBRTC_COMMON_DEFS_mips64)
127
128LOCAL_C_INCLUDES := \
129    $(LOCAL_PATH)/../interface \
130    $(LOCAL_PATH)/../../../../../.. \
131    $(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include
132
133ifndef NDK_ROOT
134ifndef WEBRTC_STL
135LOCAL_SHARED_LIBRARIES += libstlport
136include external/stlport/libstlport.mk
137else
138LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
139LOCAL_SDK_VERSION := 14
140LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
141endif
142else
143LOCAL_SHARED_LIBRARIES += libstlport
144endif
145
146include $(BUILD_STATIC_LIBRARY)
147
148endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
149
150###########################
151# isac test app
152
153include $(CLEAR_VARS)
154
155LOCAL_MODULE_TAGS := tests
156LOCAL_CPP_EXTENSION := .cc
157LOCAL_SRC_FILES:= ../test/kenny.c
158
159# Flags passed to both C and C++ files.
160LOCAL_CFLAGS := $(MY_WEBRTC_COMMON_DEFS)
161
162LOCAL_CFLAGS_arm := $(MY_WEBRTC_COMMON_DEFS_arm)
163LOCAL_CFLAGS_x86 := $(MY_WEBRTC_COMMON_DEFS_x86)
164LOCAL_CFLAGS_mips := $(MY_WEBRTC_COMMON_DEFS_mips)
165LOCAL_CFLAGS_arm64 := $(MY_WEBRTC_COMMON_DEFS_arm64)
166LOCAL_CFLAGS_x86_64 := $(MY_WEBRTC_COMMON_DEFS_x86_64)
167LOCAL_CFLAGS_mips64 := $(MY_WEBRTC_COMMON_DEFS_mips64)
168
169LOCAL_C_INCLUDES := \
170    $(LOCAL_PATH)/../interface \
171    $(LOCAL_PATH)/../../../../../..
172
173MY_LIB_SUFFIX :=
174ifdef WEBRTC_STL
175MY_LIB_SUFFIX := _$(WEBRTC_STL)
176endif
177
178LOCAL_STATIC_LIBRARIES := \
179    libwebrtc_isacfix$(MY_LIB_SUFFIX) \
180    libwebrtc_spl$(MY_LIB_SUFFIX) \
181    libwebrtc_system_wrappers$(MY_LIB_SUFFIX)
182
183ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
184LOCAL_STATIC_LIBRARIES += \
185    libwebrtc_isacfix_neon$(MY_LIB_SUFFIX)
186endif
187
188LOCAL_SHARED_LIBRARIES := \
189    libutils
190
191LOCAL_MODULE:= webrtc_isac_test
192
193ifdef NDK_ROOT
194include $(BUILD_EXECUTABLE)
195else
196ifndef WEBRTC_STL
197LOCAL_SHARED_LIBRARIES += libstlport
198include external/stlport/libstlport.mk
199else
200LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
201LOCAL_SDK_VERSION := 14
202LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
203LOCAL_SHARED_LIBRARIES :=
204endif
205include $(BUILD_NATIVE_TEST)
206endif
207