1LOCAL_PATH := $(call my-dir)
2include $(CLEAR_VARS)
3
4AAC_LIBRARY = fraunhofer
5
6LOCAL_SRC_FILES := basic_op/basicop2.c basic_op/oper_32b.c
7
8LOCAL_SRC_FILES += \
9	AACEncoder.cpp \
10	src/aac_rom.c \
11	src/aacenc.c \
12	src/aacenc_core.c \
13	src/adj_thr.c \
14	src/band_nrg.c \
15	src/bit_cnt.c \
16	src/bitbuffer.c \
17	src/bitenc.c \
18	src/block_switch.c \
19	src/channel_map.c \
20	src/dyn_bits.c \
21	src/grp_data.c \
22	src/interface.c \
23	src/line_pe.c \
24	src/ms_stereo.c \
25	src/pre_echo_control.c \
26	src/psy_configuration.c \
27	src/psy_main.c \
28	src/qc_main.c \
29	src/quantize.c \
30	src/sf_estim.c \
31	src/spreading.c \
32	src/stat_bits.c \
33	src/tns.c \
34	src/transform.c \
35	src/memalign.c
36
37ifneq ($(ARCH_ARM_HAVE_NEON),true)
38    LOCAL_SRC_FILES_arm := \
39        src/asm/ARMV5E/AutoCorrelation_v5.s \
40        src/asm/ARMV5E/band_nrg_v5.s \
41        src/asm/ARMV5E/CalcWindowEnergy_v5.s \
42        src/asm/ARMV5E/PrePostMDCT_v5.s \
43        src/asm/ARMV5E/R4R8First_v5.s \
44        src/asm/ARMV5E/Radix4FFT_v5.s
45
46    LOCAL_CFLAGS_arm := -DARMV5E -DARM_INASM -DARMV5_INASM
47    LOCAL_C_INCLUDES_arm := $(LOCAL_PATH)/src/asm/ARMV5E
48else
49    LOCAL_SRC_FILES_arm := \
50        src/asm/ARMV5E/AutoCorrelation_v5.s \
51        src/asm/ARMV5E/band_nrg_v5.s \
52        src/asm/ARMV5E/CalcWindowEnergy_v5.s \
53        src/asm/ARMV7/PrePostMDCT_v7.s \
54        src/asm/ARMV7/R4R8First_v7.s \
55        src/asm/ARMV7/Radix4FFT_v7.s
56    LOCAL_CFLAGS_arm := -DARMV5E -DARMV7Neon -DARM_INASM -DARMV5_INASM -DARMV6_INASM
57    LOCAL_C_INCLUDES_arm := $(LOCAL_PATH)/src/asm/ARMV5E
58    LOCAL_C_INCLUDES_arm += $(LOCAL_PATH)/src/asm/ARMV7
59endif
60
61LOCAL_MODULE := libstagefright_aacenc
62
63LOCAL_ARM_MODE := arm
64
65LOCAL_STATIC_LIBRARIES :=
66
67# libstagefright links this static library, so it probably isn't appropriate to
68# link libstagefright.  However, this library includes libstagefright headers,
69# and needs libbinder to be able to do so correctly.
70LOCAL_SHARED_LIBRARIES := libbinder
71
72LOCAL_C_INCLUDES := \
73	frameworks/av/include \
74	frameworks/av/media/libstagefright/include \
75	frameworks/av/media/libstagefright/codecs/common/include \
76	$(LOCAL_PATH)/src \
77	$(LOCAL_PATH)/inc \
78	$(LOCAL_PATH)/basic_op
79
80LOCAL_CFLAGS += -Werror
81LOCAL_SANITIZE := signed-integer-overflow unsigned-integer-overflow
82
83include $(BUILD_STATIC_LIBRARY)
84
85################################################################################
86
87include $(CLEAR_VARS)
88
89ifeq ($(AAC_LIBRARY), fraunhofer)
90
91  include $(CLEAR_VARS)
92
93  LOCAL_SRC_FILES := \
94          SoftAACEncoder2.cpp
95
96  LOCAL_C_INCLUDES := \
97          frameworks/av/media/libstagefright/include \
98          frameworks/native/include/media/openmax \
99          external/aac/libAACenc/include \
100          external/aac/libFDK/include \
101          external/aac/libMpegTPEnc/include \
102          external/aac/libSBRenc/include \
103          external/aac/libSYS/include
104
105  LOCAL_CFLAGS :=
106
107  LOCAL_CFLAGS += -Werror
108  LOCAL_SANITIZE := signed-integer-overflow unsigned-integer-overflow cfi
109  LOCAL_SANITIZE_DIAG := cfi
110
111  LOCAL_STATIC_LIBRARIES := libFraunhoferAAC
112
113  LOCAL_SHARED_LIBRARIES := \
114          libstagefright_omx libstagefright_foundation libutils liblog
115
116  LOCAL_MODULE := libstagefright_soft_aacenc
117  LOCAL_MODULE_TAGS := optional
118
119  include $(BUILD_SHARED_LIBRARY)
120
121else # visualon
122
123  LOCAL_SRC_FILES := \
124          SoftAACEncoder.cpp
125
126  LOCAL_C_INCLUDES := \
127          frameworks/av/media/libstagefright/include \
128          frameworks/av/media/libstagefright/codecs/common/include \
129          frameworks/native/include/media/openmax
130
131  LOCAL_CFLAGS := -DOSCL_IMPORT_REF=
132
133  LOCAL_CFLAGS += -Werror
134  LOCAL_SANITIZE := signed-integer-overflow unsigned-integer-overflow cfi
135  LOCAL_SANITIZE_DIAG := cfi
136
137  LOCAL_STATIC_LIBRARIES := \
138          libstagefright_aacenc
139
140  LOCAL_SHARED_LIBRARIES := \
141          libstagefright_omx libstagefright_foundation libutils liblog \
142          libstagefright_enc_common
143
144  LOCAL_MODULE := libstagefright_soft_aacenc
145  LOCAL_MODULE_TAGS := optional
146
147  include $(BUILD_SHARED_LIBRARY)
148
149endif # $(AAC_LIBRARY)
150