• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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