Home | History | Annotate | Download | only in source
      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 
     12 LOCAL_PATH := $(call my-dir)
     13 
     14 include $(CLEAR_VARS)
     15 
     16 include $(LOCAL_PATH)/../../../../../../../android-webrtc.mk
     17 
     18 LOCAL_ARM_MODE := arm
     19 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
     20 LOCAL_MODULE := libwebrtc_isacfix
     21 LOCAL_MODULE_TAGS := optional
     22 LOCAL_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 ifeq ($(ARCH_ARM_HAVE_ARMV7A),true)
     49 # Using .S (instead of .s) extention is to include a C header file in assembly.
     50 LOCAL_SRC_FILES += \
     51     lattice_armv7.S \
     52     pitch_filter_armv6.S
     53 else
     54 LOCAL_SRC_FILES += \
     55     lattice_c.c \
     56     pitch_filter_c.c
     57 endif
     58 
     59 # Flags passed to both C and C++ files.
     60 LOCAL_CFLAGS := \
     61     $(MY_WEBRTC_COMMON_DEFS)
     62 
     63 LOCAL_C_INCLUDES := \
     64     $(LOCAL_PATH)/../interface \
     65     $(LOCAL_PATH)/../../../../../.. \
     66     $(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include
     67 
     68 LOCAL_STATIC_LIBRARIES += libwebrtc_system_wrappers
     69 
     70 LOCAL_SHARED_LIBRARIES := \
     71     libcutils \
     72     libdl
     73 
     74 ifndef NDK_ROOT
     75 ifndef WEBRTC_STL
     76 LOCAL_SHARED_LIBRARIES += libstlport
     77 include external/stlport/libstlport.mk
     78 else
     79 LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
     80 LOCAL_SDK_VERSION := 14
     81 LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
     82 endif
     83 else
     84 LOCAL_SHARED_LIBRARIES += libstlport
     85 endif
     86 
     87 include $(BUILD_STATIC_LIBRARY)
     88 
     89 #########################
     90 # Build the neon library.
     91 ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
     92 
     93 include $(CLEAR_VARS)
     94 
     95 LOCAL_ARM_MODE := arm
     96 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
     97 LOCAL_MODULE := libwebrtc_isacfix_neon
     98 LOCAL_MODULE_TAGS := optional
     99 LOCAL_SRC_FILES := \
    100     filters_neon.c \
    101     lattice_neon.S \
    102     lpc_masking_model_neon.S
    103 
    104 # Flags passed to both C and C++ files.
    105 LOCAL_CFLAGS := \
    106     $(MY_WEBRTC_COMMON_DEFS) \
    107     -mfpu=neon \
    108     -mfloat-abi=softfp \
    109     -flax-vector-conversions
    110 
    111 LOCAL_C_INCLUDES := \
    112     $(LOCAL_PATH)/../interface \
    113     $(LOCAL_PATH)/../../../../../.. \
    114     $(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include
    115 
    116 ifndef NDK_ROOT
    117 ifndef WEBRTC_STL
    118 LOCAL_SHARED_LIBRARIES += libstlport
    119 include external/stlport/libstlport.mk
    120 else
    121 LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
    122 LOCAL_SDK_VERSION := 14
    123 LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
    124 endif
    125 else
    126 LOCAL_SHARED_LIBRARIES += libstlport
    127 endif
    128 
    129 include $(BUILD_STATIC_LIBRARY)
    130 
    131 endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
    132 
    133 ###########################
    134 # isac test app
    135 
    136 include $(CLEAR_VARS)
    137 
    138 LOCAL_MODULE_TAGS := tests
    139 LOCAL_CPP_EXTENSION := .cc
    140 LOCAL_SRC_FILES:= ../test/kenny.c
    141 
    142 # Flags passed to both C and C++ files.
    143 LOCAL_CFLAGS := $(MY_WEBRTC_COMMON_DEFS)
    144 
    145 LOCAL_C_INCLUDES := \
    146     $(LOCAL_PATH)/../interface \
    147     $(LOCAL_PATH)/../../../../../..
    148 
    149 MY_LIB_SUFFIX :=
    150 ifdef WEBRTC_STL
    151 MY_LIB_SUFFIX := _$(WEBRTC_STL)
    152 endif
    153 
    154 LOCAL_STATIC_LIBRARIES := \
    155     libwebrtc_isacfix$(MY_LIB_SUFFIX) \
    156     libwebrtc_spl$(MY_LIB_SUFFIX) \
    157     libwebrtc_system_wrappers$(MY_LIB_SUFFIX)
    158 
    159 ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
    160 LOCAL_STATIC_LIBRARIES += \
    161     libwebrtc_isacfix_neon$(MY_LIB_SUFFIX)
    162 endif
    163 
    164 LOCAL_SHARED_LIBRARIES := \
    165     libutils
    166 
    167 LOCAL_MODULE:= webrtc_isac_test
    168 
    169 ifdef NDK_ROOT
    170 include $(BUILD_EXECUTABLE)
    171 else
    172 ifndef WEBRTC_STL
    173 LOCAL_SHARED_LIBRARIES += libstlport
    174 include external/stlport/libstlport.mk
    175 else
    176 LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
    177 LOCAL_SDK_VERSION := 14
    178 LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
    179 LOCAL_SHARED_LIBRARIES :=
    180 endif
    181 include $(BUILD_NATIVE_TEST)
    182 endif
    183