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 # Using .S (instead of .s) extention is to include a C header file in assembly.
     49 my_as_src := \
     50     lattice_armv7.S \
     51     pitch_filter_armv6.S
     52 my_c_src := \
     53     lattice_c.c \
     54     pitch_filter_c.c
     55 LOCAL_SRC_FILES_arm += $(my_as_src)
     56 LOCAL_SRC_FILES_x86 += $(my_c_src)
     57 LOCAL_SRC_FILES_mips += $(my_c_src)
     58 LOCAL_SRC_FILES_arm64 += $(my_c_src)
     59 LOCAL_SRC_FILES_x86_64 += $(my_c_src)
     60 LOCAL_SRC_FILES_mips64 += $(my_c_src)
     61 
     62 # Flags passed to both C and C++ files.
     63 LOCAL_CFLAGS := \
     64     $(MY_WEBRTC_COMMON_DEFS)
     65 
     66 LOCAL_CFLAGS_arm := $(MY_WEBRTC_COMMON_DEFS_arm)
     67 LOCAL_CFLAGS_x86 := $(MY_WEBRTC_COMMON_DEFS_x86)
     68 LOCAL_CFLAGS_mips := $(MY_WEBRTC_COMMON_DEFS_mips)
     69 LOCAL_CFLAGS_arm64 := $(MY_WEBRTC_COMMON_DEFS_arm64)
     70 LOCAL_CFLAGS_x86_64 := $(MY_WEBRTC_COMMON_DEFS_x86_64)
     71 LOCAL_CFLAGS_mips64 := $(MY_WEBRTC_COMMON_DEFS_mips64)
     72 
     73 LOCAL_C_INCLUDES := \
     74     $(LOCAL_PATH)/../interface \
     75     $(LOCAL_PATH)/../../../../../.. \
     76     $(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include
     77 
     78 ifndef WEBRTC_STL
     79 LOCAL_SHARED_LIBRARIES += libstlport
     80 include external/stlport/libstlport.mk
     81 else
     82 LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
     83 LOCAL_SDK_VERSION := 14
     84 LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
     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_MODULE_TARGET_ARCH := arm
    112 LOCAL_CFLAGS_arm := $(MY_WEBRTC_COMMON_DEFS_arm)
    113 
    114 LOCAL_C_INCLUDES := \
    115     $(LOCAL_PATH)/../interface \
    116     $(LOCAL_PATH)/../../../../../.. \
    117     $(LOCAL_PATH)/../../../../../../common_audio/signal_processing/include
    118 
    119 ifndef WEBRTC_STL
    120 LOCAL_SHARED_LIBRARIES += libstlport
    121 include external/stlport/libstlport.mk
    122 else
    123 LOCAL_NDK_STL_VARIANT := $(WEBRTC_STL)
    124 LOCAL_SDK_VERSION := 14
    125 LOCAL_MODULE := $(LOCAL_MODULE)_$(WEBRTC_STL)
    126 endif
    127 
    128 include $(BUILD_STATIC_LIBRARY)
    129 
    130 endif # ifeq ($(WEBRTC_BUILD_NEON_LIBS),true)
    131