1LOCAL_PATH := $(call my-dir) 2 3include $(CLEAR_VARS) 4 5include $(LOCAL_PATH)/celt_sources.mk 6include $(LOCAL_PATH)/opus_sources.mk 7include $(LOCAL_PATH)/silk_sources.mk 8 9LOCAL_MODULE := libopus 10OGG_DIR := external/libogg 11LOCAL_C_INCLUDES += $(LOCAL_PATH)/include $(LOCAL_PATH)/src $(LOCAL_PATH)/silk \ 12 $(LOCAL_PATH)/celt $(LOCAL_PATH)/silk/fixed $(OGG_DIR)/include 13LOCAL_SRC_FILES := $(CELT_SOURCES) $(SILK_SOURCES) $(SILK_SOURCES_FIXED) \ 14 $(OPUS_SOURCES) $(OPUS_SOURCES_FLOAT) src/repacketizer_demo.c 15 16LOCAL_CFLAGS := -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED \ 17 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 \ 18 -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT \ 19 -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -O2 -fno-math-errno 20LOCAL_CPPFLAGS := -DBSD=1 -ffast-math -O2 -funroll-loops 21 22# Note: OPUS enhanced DSP/NEON implementation is not yet compatible with arm64. 23# Only add the appropriate defines for 32-bit arm architecture. 24LOCAL_SRC_FILES_arm += $(CELT_SOURCES_ARM) 25LOCAL_CFLAGS_arm += -DOPUS_ARM_ASM -DOPUS_ARM_INLINE_ASM \ 26 -DOPUS_ARM_MAY_HAVE_EDSP -DOPUS_ARM_INLINE_EDSP \ 27 -DOPUS_ARM_MAY_HAVE_MEDIA -DOPUS_ARM_INLINE_MEDIA \ 28 -DOPUS_HAVE_RTCD 29# DSP, MEDIA and NEON instructions are in the same assembler file - thus we 30# need to include it even if NEON is not supported on target platform. 31LOCAL_SRC_FILES_arm += $(subst .s,_gnu.s,$(CELT_SOURCES_ARM_ASM)) 32ifeq ($(ARCH_ARM_HAVE_NEON),true) 33LOCAL_SRC_FILES_arm += $(CELT_SOURCES_ARM_NEON_INTR) \ 34 $(SILK_SOURCES_ARM_NEON_INTR) 35LOCAL_CFLAGS_arm += -DOPUS_ARM_MAY_HAVE_NEON -DOPUS_ARM_MAY_HAVE_NEON_INTR \ 36 -DOPUS_ARM_PRESUME_NEON -DOPUS_ARM_INLINE_NEON 37endif 38 39LIBOPUS_X86_FILES := 40LIBOPUS_X86_CFLAGS := 41ifeq ($(ARCH_X86_HAVE_SSSE3),true) 42LIBOPUS_X86_FILES += $(CELT_SOURCES_SSE) $(CELT_SOURCES_SSE2) 43LIBOPUS_X86_CFLAGS += -DOPUS_X86_MAY_HAVE_SSE -DOPUS_X86_PRESUME_SSE \ 44 -DOPUS_X86_MAY_HAVE_SSE2 -DOPUS_X86_PRESUME_SSE2 45endif 46 47ifeq ($(ARCH_X86_HAVE_SSE4_1),true) 48LIBOPUS_X86_FILES += $(CELT_SOURCES_SSE4_1) \ 49 $(SILK_SOURCES_SSE4_1) $(SILK_SOURCES_FIXED_SSE4_1) 50LIBOPUS_X86_CFLAGS += -DOPUS_X86_MAY_HAVE_SSE4_1 -DOPUS_X86_PRESUME_SSE4_1 51endif 52 53LOCAL_SRC_FILES_x86 += $(LIBOPUS_X86_FILES) 54LOCAL_SRC_FILES_x86_64 += $(LIBOPUS_X86_FILES) 55LOCAL_CFLAGS_x86 += $(LIBOPUS_X86_CFLAGS) 56LOCAL_CFLAGS_x86_64 += $(LIBOPUS_X86_CFLAGS) 57 58LOCAL_STATIC_LIBRARIES := libogg 59 60include $(BUILD_SHARED_LIBRARY) 61