blob: 47e499b4f8dfa38c5dc75f0cabba4e20f1c04db1 [file] [log] [blame]
Vignesh Venkatasubramanian2bd8b542014-02-20 10:50:35 -08001LOCAL_PATH := $(call my-dir)
2
3include $(CLEAR_VARS)
flimc91ee5b2016-01-26 14:33:44 +01004
5include $(LOCAL_PATH)/celt_sources.mk
6include $(LOCAL_PATH)/opus_sources.mk
7include $(LOCAL_PATH)/silk_sources.mk
8
Vignesh Venkatasubramanian2bd8b542014-02-20 10:50:35 -08009LOCAL_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
flimc91ee5b2016-01-26 14:33:44 +010013LOCAL_SRC_FILES := $(CELT_SOURCES) $(SILK_SOURCES) $(SILK_SOURCES_FIXED) \
14 $(OPUS_SOURCES) $(OPUS_SOURCES_FLOAT) src/repacketizer_demo.c
Vignesh Venkatasubramanian2bd8b542014-02-20 10:50:35 -080015
Vignesh Venkatasubramanian2bd8b542014-02-20 10:50:35 -080016LOCAL_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 \
flimc91ee5b2016-01-26 14:33:44 +010019 -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -O2 -fno-math-errno
20LOCAL_CPPFLAGS := -DBSD=1 -ffast-math -O2 -funroll-loops
21
Victor Khimenkoda5155b2016-06-04 00:11:43 +020022# 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 \
Felicia Limd03c3732016-07-25 20:28:37 +020026 -DOPUS_ARM_MAY_HAVE_EDSP -DOPUS_ARM_INLINE_EDSP \
27 -DOPUS_ARM_MAY_HAVE_MEDIA -DOPUS_ARM_INLINE_MEDIA \
Victor Khimenkoda5155b2016-06-04 00:11:43 +020028 -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)
Felicia Limd03c3732016-07-25 20:28:37 +020033LOCAL_SRC_FILES_arm += $(CELT_SOURCES_ARM_NEON_INTR) \
34 $(SILK_SOURCES_ARM_NEON_INTR)
Victor Khimenkoda5155b2016-06-04 00:11:43 +020035LOCAL_CFLAGS_arm += -DOPUS_ARM_MAY_HAVE_NEON -DOPUS_ARM_MAY_HAVE_NEON_INTR \
36 -DOPUS_ARM_PRESUME_NEON -DOPUS_ARM_INLINE_NEON
flimc91ee5b2016-01-26 14:33:44 +010037endif
38
Victor Khimenkoda5155b2016-06-04 00:11:43 +020039LIBOPUS_X86_FILES :=
40LIBOPUS_X86_CFLAGS :=
flimc91ee5b2016-01-26 14:33:44 +010041ifeq ($(ARCH_X86_HAVE_SSSE3),true)
Victor Khimenkoda5155b2016-06-04 00:11:43 +020042LIBOPUS_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
flimc91ee5b2016-01-26 14:33:44 +010045endif
46
47ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
Victor Khimenkoda5155b2016-06-04 00:11:43 +020048LIBOPUS_X86_FILES += $(CELT_SOURCES_SSE4_1) \
flimc91ee5b2016-01-26 14:33:44 +010049 $(SILK_SOURCES_SSE4_1) $(SILK_SOURCES_FIXED_SSE4_1)
Victor Khimenkoda5155b2016-06-04 00:11:43 +020050LIBOPUS_X86_CFLAGS += -DOPUS_X86_MAY_HAVE_SSE4_1 -DOPUS_X86_PRESUME_SSE4_1
flimc91ee5b2016-01-26 14:33:44 +010051endif
Vignesh Venkatasubramanian2bd8b542014-02-20 10:50:35 -080052
Victor Khimenkoda5155b2016-06-04 00:11:43 +020053LOCAL_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
Vignesh Venkatasubramanian2bd8b542014-02-20 10:50:35 -080058LOCAL_STATIC_LIBRARIES := libogg
59
Vignesh Venkatasubramanian2bd8b542014-02-20 10:50:35 -080060include $(BUILD_SHARED_LIBRARY)