xref: /aosp_15_r20/external/libopus/Makefile.am (revision a58d3d2adb790c104798cd88c8a3aff4fa8b82cc)
1*a58d3d2aSXin Li# Provide the full test output for failed tests when using the parallel
2*a58d3d2aSXin Li# test suite (which is enabled by default with automake 1.13+).
3*a58d3d2aSXin Liexport VERBOSE = yes
4*a58d3d2aSXin Li
5*a58d3d2aSXin LiAUTOMAKE_OPTIONS = subdir-objects
6*a58d3d2aSXin LiACLOCAL_AMFLAGS = -I m4
7*a58d3d2aSXin Li
8*a58d3d2aSXin Lilib_LTLIBRARIES = libopus.la
9*a58d3d2aSXin Li
10*a58d3d2aSXin LiDIST_SUBDIRS = doc
11*a58d3d2aSXin Li
12*a58d3d2aSXin LiAM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/celt -I$(top_srcdir)/silk \
13*a58d3d2aSXin Li              -I$(top_srcdir)/silk/float -I$(top_srcdir)/silk/fixed $(NE10_CFLAGS) \
14*a58d3d2aSXin Li              -I$(top_srcdir)/dnn
15*a58d3d2aSXin Li
16*a58d3d2aSXin Liinclude celt_sources.mk
17*a58d3d2aSXin Liinclude lpcnet_sources.mk
18*a58d3d2aSXin Liinclude silk_sources.mk
19*a58d3d2aSXin Liinclude opus_sources.mk
20*a58d3d2aSXin Li
21*a58d3d2aSXin LiLPCNET_SOURCES =
22*a58d3d2aSXin Liif ENABLE_DEEP_PLC
23*a58d3d2aSXin LiLPCNET_SOURCES += $(DEEP_PLC_SOURCES)
24*a58d3d2aSXin Liendif
25*a58d3d2aSXin Liif ENABLE_DRED
26*a58d3d2aSXin LiLPCNET_SOURCES += $(DRED_SOURCES)
27*a58d3d2aSXin Liendif
28*a58d3d2aSXin Liif ENABLE_OSCE
29*a58d3d2aSXin LiLPCNET_SOURCES += $(OSCE_SOURCES)
30*a58d3d2aSXin Liendif
31*a58d3d2aSXin Li
32*a58d3d2aSXin Liif FIXED_POINT
33*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_FIXED)
34*a58d3d2aSXin Liif HAVE_SSE4_1
35*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_SSE4_1) $(SILK_SOURCES_FIXED_SSE4_1)
36*a58d3d2aSXin Liendif
37*a58d3d2aSXin Liif HAVE_ARM_NEON_INTR
38*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_FIXED_ARM_NEON_INTR)
39*a58d3d2aSXin Liendif
40*a58d3d2aSXin Lielse
41*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_FLOAT)
42*a58d3d2aSXin Liif HAVE_SSE4_1
43*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_SSE4_1)
44*a58d3d2aSXin Liendif
45*a58d3d2aSXin Liif HAVE_AVX2
46*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_FLOAT_AVX2)
47*a58d3d2aSXin Liendif
48*a58d3d2aSXin Liendif
49*a58d3d2aSXin Li
50*a58d3d2aSXin Liif DISABLE_FLOAT_API
51*a58d3d2aSXin Lielse
52*a58d3d2aSXin LiOPUS_SOURCES += $(OPUS_SOURCES_FLOAT)
53*a58d3d2aSXin Liendif
54*a58d3d2aSXin Li
55*a58d3d2aSXin Liif CPU_X86
56*a58d3d2aSXin Liif HAVE_RTCD
57*a58d3d2aSXin LiCELT_SOURCES += $(CELT_SOURCES_X86_RTCD)
58*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_X86_RTCD)
59*a58d3d2aSXin Liif ENABLE_DEEP_PLC
60*a58d3d2aSXin LiLPCNET_SOURCES += $(DNN_SOURCES_X86_RTCD)
61*a58d3d2aSXin Liendif
62*a58d3d2aSXin Liendif
63*a58d3d2aSXin Liif HAVE_SSE
64*a58d3d2aSXin LiCELT_SOURCES += $(CELT_SOURCES_SSE)
65*a58d3d2aSXin Liendif
66*a58d3d2aSXin Liif HAVE_SSE2
67*a58d3d2aSXin LiCELT_SOURCES += $(CELT_SOURCES_SSE2)
68*a58d3d2aSXin Liif ENABLE_DEEP_PLC
69*a58d3d2aSXin LiLPCNET_SOURCES += $(DNN_SOURCES_SSE2)
70*a58d3d2aSXin Liendif
71*a58d3d2aSXin Liendif
72*a58d3d2aSXin Liif HAVE_SSE4_1
73*a58d3d2aSXin LiCELT_SOURCES += $(CELT_SOURCES_SSE4_1)
74*a58d3d2aSXin Liif ENABLE_DEEP_PLC
75*a58d3d2aSXin LiLPCNET_SOURCES += $(DNN_SOURCES_SSE4_1)
76*a58d3d2aSXin Liendif
77*a58d3d2aSXin Liendif
78*a58d3d2aSXin Liif HAVE_AVX2
79*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_AVX2)
80*a58d3d2aSXin LiCELT_SOURCES += $(CELT_SOURCES_AVX2)
81*a58d3d2aSXin Liif ENABLE_DEEP_PLC
82*a58d3d2aSXin LiLPCNET_SOURCES += $(DNN_SOURCES_AVX2)
83*a58d3d2aSXin Liendif
84*a58d3d2aSXin Liendif
85*a58d3d2aSXin Liendif
86*a58d3d2aSXin Li
87*a58d3d2aSXin Liif CPU_ARM
88*a58d3d2aSXin Liif HAVE_RTCD
89*a58d3d2aSXin LiCELT_SOURCES += $(CELT_SOURCES_ARM_RTCD)
90*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_ARM_RTCD)
91*a58d3d2aSXin Liif ENABLE_DEEP_PLC
92*a58d3d2aSXin LiLPCNET_SOURCES += $(DNN_SOURCES_ARM_RTCD)
93*a58d3d2aSXin Liendif
94*a58d3d2aSXin Liendif
95*a58d3d2aSXin Li
96*a58d3d2aSXin Liif ENABLE_DEEP_PLC
97*a58d3d2aSXin Liif HAVE_ARM_DOTPROD
98*a58d3d2aSXin LiLPCNET_SOURCES += $(DNN_SOURCES_DOTPROD)
99*a58d3d2aSXin Liendif
100*a58d3d2aSXin Liif HAVE_ARM_NEON_INTR
101*a58d3d2aSXin LiLPCNET_SOURCES += $(DNN_SOURCES_NEON)
102*a58d3d2aSXin Liendif
103*a58d3d2aSXin Liendif
104*a58d3d2aSXin Li
105*a58d3d2aSXin Liif HAVE_ARM_NEON_INTR
106*a58d3d2aSXin LiCELT_SOURCES += $(CELT_SOURCES_ARM_NEON_INTR)
107*a58d3d2aSXin LiSILK_SOURCES += $(SILK_SOURCES_ARM_NEON_INTR)
108*a58d3d2aSXin Liendif
109*a58d3d2aSXin Li
110*a58d3d2aSXin Liif HAVE_ARM_NE10
111*a58d3d2aSXin LiCELT_SOURCES += $(CELT_SOURCES_ARM_NE10)
112*a58d3d2aSXin Liendif
113*a58d3d2aSXin Li
114*a58d3d2aSXin Liif OPUS_ARM_EXTERNAL_ASM
115*a58d3d2aSXin Linoinst_LTLIBRARIES = libarmasm.la
116*a58d3d2aSXin Lilibarmasm_la_SOURCES = $(CELT_SOURCES_ARM_ASM:.s=-gnu.S)
117*a58d3d2aSXin LiBUILT_SOURCES = $(CELT_SOURCES_ARM_ASM:.s=-gnu.S) \
118*a58d3d2aSXin Li $(CELT_AM_SOURCES_ARM_ASM:.s.in=.s) \
119*a58d3d2aSXin Li $(CELT_AM_SOURCES_ARM_ASM:.s.in=-gnu.S)
120*a58d3d2aSXin Liendif
121*a58d3d2aSXin Liendif
122*a58d3d2aSXin Li
123*a58d3d2aSXin LiCLEANFILES = $(CELT_SOURCES_ARM_ASM:.s=-gnu.S) \
124*a58d3d2aSXin Li $(CELT_AM_SOURCES_ARM_ASM:.s.in=-gnu.S)
125*a58d3d2aSXin Li
126*a58d3d2aSXin Liinclude celt_headers.mk
127*a58d3d2aSXin Liinclude lpcnet_headers.mk
128*a58d3d2aSXin Liinclude silk_headers.mk
129*a58d3d2aSXin Liinclude opus_headers.mk
130*a58d3d2aSXin Li
131*a58d3d2aSXin LiLPCNET_HEAD =
132*a58d3d2aSXin Liif ENABLE_DEEP_PLC
133*a58d3d2aSXin LiLPCNET_HEAD += $(DEEP_PLC_HEAD)
134*a58d3d2aSXin Liendif
135*a58d3d2aSXin Liif ENABLE_DRED
136*a58d3d2aSXin LiLPCNET_HEAD += $(DRED_HEAD)
137*a58d3d2aSXin Liendif
138*a58d3d2aSXin Liif ENABLE_OSCE
139*a58d3d2aSXin LiLPCNET_HEAD += $(OSCE_HEAD)
140*a58d3d2aSXin Liendif
141*a58d3d2aSXin Liif ENABLE_LOSSGEN
142*a58d3d2aSXin LiLPCNET_HEAD += $(LOSSGEN_HEAD)
143*a58d3d2aSXin Liendif
144*a58d3d2aSXin Li
145*a58d3d2aSXin Lilibopus_la_SOURCES = $(CELT_SOURCES) $(SILK_SOURCES) $(LPCNET_SOURCES) $(OPUS_SOURCES)
146*a58d3d2aSXin Lilibopus_la_LDFLAGS = -no-undefined -version-info @OPUS_LT_CURRENT@:@OPUS_LT_REVISION@:@OPUS_LT_AGE@
147*a58d3d2aSXin Lilibopus_la_LIBADD = $(NE10_LIBS) $(LIBM)
148*a58d3d2aSXin Liif OPUS_ARM_EXTERNAL_ASM
149*a58d3d2aSXin Lilibopus_la_LIBADD += libarmasm.la
150*a58d3d2aSXin Liendif
151*a58d3d2aSXin Li
152*a58d3d2aSXin Lipkginclude_HEADERS = include/opus.h include/opus_multistream.h include/opus_types.h include/opus_defines.h include/opus_projection.h
153*a58d3d2aSXin Li
154*a58d3d2aSXin Linoinst_HEADERS = $(OPUS_HEAD) $(SILK_HEAD) $(CELT_HEAD) $(LPCNET_HEAD)
155*a58d3d2aSXin Li
156*a58d3d2aSXin Liif EXTRA_PROGRAMS
157*a58d3d2aSXin Linoinst_PROGRAMS = celt/tests/test_unit_cwrs32 \
158*a58d3d2aSXin Li                  celt/tests/test_unit_dft \
159*a58d3d2aSXin Li                  celt/tests/test_unit_entropy \
160*a58d3d2aSXin Li                  celt/tests/test_unit_laplace \
161*a58d3d2aSXin Li                  celt/tests/test_unit_mathops \
162*a58d3d2aSXin Li                  celt/tests/test_unit_mdct \
163*a58d3d2aSXin Li                  celt/tests/test_unit_rotation \
164*a58d3d2aSXin Li                  celt/tests/test_unit_types \
165*a58d3d2aSXin Li                  opus_compare \
166*a58d3d2aSXin Li                  opus_demo \
167*a58d3d2aSXin Li                  repacketizer_demo \
168*a58d3d2aSXin Li                  silk/tests/test_unit_LPC_inv_pred_gain \
169*a58d3d2aSXin Li                  tests/test_opus_api \
170*a58d3d2aSXin Li                  tests/test_opus_decode \
171*a58d3d2aSXin Li                  tests/test_opus_dred \
172*a58d3d2aSXin Li                  tests/test_opus_encode \
173*a58d3d2aSXin Li                  tests/test_opus_extensions \
174*a58d3d2aSXin Li                  tests/test_opus_padding \
175*a58d3d2aSXin Li                  tests/test_opus_projection \
176*a58d3d2aSXin Li                  trivial_example
177*a58d3d2aSXin Li
178*a58d3d2aSXin LiTESTS = celt/tests/test_unit_cwrs32 \
179*a58d3d2aSXin Li        celt/tests/test_unit_dft \
180*a58d3d2aSXin Li        celt/tests/test_unit_entropy \
181*a58d3d2aSXin Li        celt/tests/test_unit_laplace \
182*a58d3d2aSXin Li        celt/tests/test_unit_mathops \
183*a58d3d2aSXin Li        celt/tests/test_unit_mdct \
184*a58d3d2aSXin Li        celt/tests/test_unit_rotation \
185*a58d3d2aSXin Li        celt/tests/test_unit_types \
186*a58d3d2aSXin Li        silk/tests/test_unit_LPC_inv_pred_gain \
187*a58d3d2aSXin Li        tests/test_opus_api \
188*a58d3d2aSXin Li        tests/test_opus_decode \
189*a58d3d2aSXin Li        tests/test_opus_encode \
190*a58d3d2aSXin Li        tests/test_opus_extensions \
191*a58d3d2aSXin Li        tests/test_opus_padding \
192*a58d3d2aSXin Li        tests/test_opus_projection
193*a58d3d2aSXin Li
194*a58d3d2aSXin Liopus_demo_SOURCES = src/opus_demo.c
195*a58d3d2aSXin Liif ENABLE_LOSSGEN
196*a58d3d2aSXin Liopus_demo_SOURCES += $(LOSSGEN_SOURCES)
197*a58d3d2aSXin Liendif
198*a58d3d2aSXin Li
199*a58d3d2aSXin Liopus_demo_LDADD = libopus.la $(NE10_LIBS) $(LIBM)
200*a58d3d2aSXin Li
201*a58d3d2aSXin Lirepacketizer_demo_SOURCES = src/repacketizer_demo.c
202*a58d3d2aSXin Li
203*a58d3d2aSXin Lirepacketizer_demo_LDADD = libopus.la $(NE10_LIBS) $(LIBM)
204*a58d3d2aSXin Li
205*a58d3d2aSXin Liopus_compare_SOURCES = src/opus_compare.c
206*a58d3d2aSXin Liopus_compare_LDADD = $(LIBM)
207*a58d3d2aSXin Li
208*a58d3d2aSXin Litrivial_example_SOURCES = doc/trivial_example.c
209*a58d3d2aSXin Litrivial_example_LDADD = libopus.la $(LIBM)
210*a58d3d2aSXin Li
211*a58d3d2aSXin Litests_test_opus_api_SOURCES = tests/test_opus_api.c tests/test_opus_common.h
212*a58d3d2aSXin Litests_test_opus_api_LDADD = libopus.la $(NE10_LIBS) $(LIBM)
213*a58d3d2aSXin Li
214*a58d3d2aSXin Litests_test_opus_encode_SOURCES = tests/test_opus_encode.c tests/opus_encode_regressions.c tests/test_opus_common.h
215*a58d3d2aSXin Litests_test_opus_encode_LDADD = libopus.la $(NE10_LIBS) $(LIBM)
216*a58d3d2aSXin Li
217*a58d3d2aSXin Litests_test_opus_decode_SOURCES = tests/test_opus_decode.c tests/test_opus_common.h
218*a58d3d2aSXin Litests_test_opus_decode_LDADD = libopus.la $(NE10_LIBS) $(LIBM)
219*a58d3d2aSXin Li
220*a58d3d2aSXin Litests_test_opus_padding_SOURCES = tests/test_opus_padding.c tests/test_opus_common.h
221*a58d3d2aSXin Litests_test_opus_padding_LDADD = libopus.la $(NE10_LIBS) $(LIBM)
222*a58d3d2aSXin Li
223*a58d3d2aSXin Litests_test_opus_dred_SOURCES = tests/test_opus_dred.c tests/test_opus_common.h
224*a58d3d2aSXin Litests_test_opus_dred_LDADD = libopus.la $(NE10_LIBS) $(LIBM)
225*a58d3d2aSXin Li
226*a58d3d2aSXin LiCELT_OBJ = $(CELT_SOURCES:.c=.lo)
227*a58d3d2aSXin LiSILK_OBJ = $(SILK_SOURCES:.c=.lo)
228*a58d3d2aSXin LiLPCNET_OBJ = $(LPCNET_SOURCES:.c=.lo)
229*a58d3d2aSXin LiOPUS_OBJ = $(OPUS_SOURCES:.c=.lo)
230*a58d3d2aSXin Li
231*a58d3d2aSXin Litests_test_opus_extensions_SOURCES = tests/test_opus_extensions.c tests/test_opus_common.h
232*a58d3d2aSXin Litests_test_opus_extensions_LDADD = $(OPUS_OBJ) $(SILK_OBJ) $(LPCNET_OBJ) $(CELT_OBJ) $(NE10_LIBS) $(LIBM)
233*a58d3d2aSXin Liif OPUS_ARM_EXTERNAL_ASM
234*a58d3d2aSXin Litests_test_opus_extensions_LDADD += libarmasm.la
235*a58d3d2aSXin Liendif
236*a58d3d2aSXin Li
237*a58d3d2aSXin Litests_test_opus_projection_SOURCES = tests/test_opus_projection.c tests/test_opus_common.h
238*a58d3d2aSXin Litests_test_opus_projection_LDADD = $(OPUS_OBJ) $(SILK_OBJ) $(LPCNET_OBJ) $(CELT_OBJ) $(NE10_LIBS) $(LIBM)
239*a58d3d2aSXin Liif OPUS_ARM_EXTERNAL_ASM
240*a58d3d2aSXin Litests_test_opus_projection_LDADD += libarmasm.la
241*a58d3d2aSXin Liendif
242*a58d3d2aSXin Li
243*a58d3d2aSXin Lisilk_tests_test_unit_LPC_inv_pred_gain_SOURCES = silk/tests/test_unit_LPC_inv_pred_gain.c
244*a58d3d2aSXin Lisilk_tests_test_unit_LPC_inv_pred_gain_LDADD = $(SILK_OBJ) $(LPCNET_OBJ) $(CELT_OBJ) $(NE10_LIBS) $(LIBM)
245*a58d3d2aSXin Liif OPUS_ARM_EXTERNAL_ASM
246*a58d3d2aSXin Lisilk_tests_test_unit_LPC_inv_pred_gain_LDADD += libarmasm.la
247*a58d3d2aSXin Liendif
248*a58d3d2aSXin Li
249*a58d3d2aSXin Licelt_tests_test_unit_cwrs32_SOURCES = celt/tests/test_unit_cwrs32.c
250*a58d3d2aSXin Licelt_tests_test_unit_cwrs32_LDADD = $(LIBM)
251*a58d3d2aSXin Li
252*a58d3d2aSXin Licelt_tests_test_unit_dft_SOURCES = celt/tests/test_unit_dft.c
253*a58d3d2aSXin Licelt_tests_test_unit_dft_LDADD = $(CELT_OBJ) $(LPCNET_OBJ) $(NE10_LIBS) $(LIBM)
254*a58d3d2aSXin Liif OPUS_ARM_EXTERNAL_ASM
255*a58d3d2aSXin Licelt_tests_test_unit_dft_LDADD += libarmasm.la
256*a58d3d2aSXin Liendif
257*a58d3d2aSXin Li
258*a58d3d2aSXin Licelt_tests_test_unit_entropy_SOURCES = celt/tests/test_unit_entropy.c
259*a58d3d2aSXin Licelt_tests_test_unit_entropy_LDADD = $(LIBM)
260*a58d3d2aSXin Li
261*a58d3d2aSXin Licelt_tests_test_unit_laplace_SOURCES = celt/tests/test_unit_laplace.c
262*a58d3d2aSXin Licelt_tests_test_unit_laplace_LDADD = $(LIBM)
263*a58d3d2aSXin Li
264*a58d3d2aSXin Licelt_tests_test_unit_mathops_SOURCES = celt/tests/test_unit_mathops.c
265*a58d3d2aSXin Licelt_tests_test_unit_mathops_LDADD = $(CELT_OBJ) $(LPCNET_OBJ) $(NE10_LIBS) $(LIBM)
266*a58d3d2aSXin Liif OPUS_ARM_EXTERNAL_ASM
267*a58d3d2aSXin Licelt_tests_test_unit_mathops_LDADD += libarmasm.la
268*a58d3d2aSXin Liendif
269*a58d3d2aSXin Li
270*a58d3d2aSXin Licelt_tests_test_unit_mdct_SOURCES = celt/tests/test_unit_mdct.c
271*a58d3d2aSXin Licelt_tests_test_unit_mdct_LDADD = $(CELT_OBJ) $(LPCNET_OBJ) $(NE10_LIBS) $(LIBM)
272*a58d3d2aSXin Liif OPUS_ARM_EXTERNAL_ASM
273*a58d3d2aSXin Licelt_tests_test_unit_mdct_LDADD += libarmasm.la
274*a58d3d2aSXin Liendif
275*a58d3d2aSXin Li
276*a58d3d2aSXin Licelt_tests_test_unit_rotation_SOURCES = celt/tests/test_unit_rotation.c
277*a58d3d2aSXin Licelt_tests_test_unit_rotation_LDADD = $(CELT_OBJ) $(LPCNET_OBJ) $(NE10_LIBS) $(LIBM)
278*a58d3d2aSXin Liif OPUS_ARM_EXTERNAL_ASM
279*a58d3d2aSXin Licelt_tests_test_unit_rotation_LDADD += libarmasm.la
280*a58d3d2aSXin Liendif
281*a58d3d2aSXin Li
282*a58d3d2aSXin Licelt_tests_test_unit_types_SOURCES = celt/tests/test_unit_types.c
283*a58d3d2aSXin Licelt_tests_test_unit_types_LDADD = $(LIBM)
284*a58d3d2aSXin Liendif
285*a58d3d2aSXin Li
286*a58d3d2aSXin Liif CUSTOM_MODES
287*a58d3d2aSXin Lipkginclude_HEADERS += include/opus_custom.h
288*a58d3d2aSXin Liif EXTRA_PROGRAMS
289*a58d3d2aSXin Linoinst_PROGRAMS += opus_custom_demo
290*a58d3d2aSXin Liopus_custom_demo_SOURCES = celt/opus_custom_demo.c
291*a58d3d2aSXin Liopus_custom_demo_LDADD = libopus.la $(LIBM)
292*a58d3d2aSXin Liendif
293*a58d3d2aSXin Liendif
294*a58d3d2aSXin Li
295*a58d3d2aSXin Liif EXTRA_PROGRAMS
296*a58d3d2aSXin Liif ENABLE_DEEP_PLC
297*a58d3d2aSXin Linoinst_PROGRAMS += lpcnet_demo dump_data dump_weights_blob
298*a58d3d2aSXin Lilpcnet_demo_SOURCES = dnn/lpcnet_demo.c
299*a58d3d2aSXin Lilpcnet_demo_LDADD = $(LPCNET_OBJ) $(CELT_OBJ) $(LIBM)
300*a58d3d2aSXin Li
301*a58d3d2aSXin Lidump_data_SOURCES = dnn/dump_data.c
302*a58d3d2aSXin Lidump_data_LDADD = $(LPCNET_OBJ) $(CELT_OBJ) $(LIBM)
303*a58d3d2aSXin Li
304*a58d3d2aSXin Lidump_weights_blob_SOURCES = dnn/write_lpcnet_weights.c
305*a58d3d2aSXin Lidump_weights_blob_LDADD = $(LIBM)
306*a58d3d2aSXin Lidump_weights_blob_CFLAGS = $(AM_CFLAGS) -DDUMP_BINARY_WEIGHTS
307*a58d3d2aSXin Liendif
308*a58d3d2aSXin Liif ENABLE_DRED
309*a58d3d2aSXin LiTESTS += tests/test_opus_dred
310*a58d3d2aSXin Liendif
311*a58d3d2aSXin Li
312*a58d3d2aSXin Liif ENABLE_LOSSGEN
313*a58d3d2aSXin Linoinst_PROGRAMS += lossgen_demo
314*a58d3d2aSXin Lilossgen_demo_SOURCES = dnn/lossgen_demo.c $(LOSSGEN_SOURCES)
315*a58d3d2aSXin Lilossgen_demo_LDADD = $(LIBM)
316*a58d3d2aSXin Liendif
317*a58d3d2aSXin Li
318*a58d3d2aSXin Liendif
319*a58d3d2aSXin Li
320*a58d3d2aSXin Li
321*a58d3d2aSXin LiEXTRA_DIST = opus.pc.in \
322*a58d3d2aSXin Li             opus-uninstalled.pc.in \
323*a58d3d2aSXin Li             opus.m4 \
324*a58d3d2aSXin Li             Makefile.mips \
325*a58d3d2aSXin Li             Makefile.unix \
326*a58d3d2aSXin Li             CMakeLists.txt \
327*a58d3d2aSXin Li             cmake/CFeatureCheck.cmake \
328*a58d3d2aSXin Li             cmake/OpusBuildtype.cmake \
329*a58d3d2aSXin Li             cmake/OpusConfig.cmake \
330*a58d3d2aSXin Li             cmake/OpusConfig.cmake.in \
331*a58d3d2aSXin Li             cmake/OpusFunctions.cmake \
332*a58d3d2aSXin Li             cmake/OpusPackageVersion.cmake \
333*a58d3d2aSXin Li             cmake/OpusSources.cmake \
334*a58d3d2aSXin Li             cmake/RunTest.cmake \
335*a58d3d2aSXin Li             cmake/config.h.cmake.in \
336*a58d3d2aSXin Li             cmake/vla.c \
337*a58d3d2aSXin Li             cmake/cpu_info_by_asm.c \
338*a58d3d2aSXin Li             cmake/cpu_info_by_c.c \
339*a58d3d2aSXin Li             meson/get-version.py \
340*a58d3d2aSXin Li             meson/read-sources-list.py \
341*a58d3d2aSXin Li             meson.build \
342*a58d3d2aSXin Li             meson_options.txt \
343*a58d3d2aSXin Li             include/meson.build \
344*a58d3d2aSXin Li             celt/meson.build \
345*a58d3d2aSXin Li             celt/tests/meson.build \
346*a58d3d2aSXin Li             silk/meson.build \
347*a58d3d2aSXin Li             silk/tests/meson.build \
348*a58d3d2aSXin Li             src/meson.build \
349*a58d3d2aSXin Li             tests/meson.build \
350*a58d3d2aSXin Li             doc/meson.build \
351*a58d3d2aSXin Li             tests/run_vectors.sh \
352*a58d3d2aSXin Li             celt/arm/arm2gnu.pl \
353*a58d3d2aSXin Li             celt/arm/celt_pitch_xcorr_arm.s
354*a58d3d2aSXin Li
355*a58d3d2aSXin Lipkgconfigdir = $(libdir)/pkgconfig
356*a58d3d2aSXin Lipkgconfig_DATA = opus.pc
357*a58d3d2aSXin Li
358*a58d3d2aSXin Lim4datadir = $(datadir)/aclocal
359*a58d3d2aSXin Lim4data_DATA = opus.m4
360*a58d3d2aSXin Li
361*a58d3d2aSXin Li# Targets to build and install just the library without the docs
362*a58d3d2aSXin Liopus check-opus install-opus: export NO_DOXYGEN = 1
363*a58d3d2aSXin Li
364*a58d3d2aSXin Liopus: all
365*a58d3d2aSXin Licheck-opus: check
366*a58d3d2aSXin Liinstall-opus: install
367*a58d3d2aSXin Li
368*a58d3d2aSXin Li
369*a58d3d2aSXin Li# Or just the docs
370*a58d3d2aSXin Lidocs:
371*a58d3d2aSXin Li	( cd doc && $(MAKE) $(AM_MAKEFLAGS) )
372*a58d3d2aSXin Li
373*a58d3d2aSXin Liinstall-docs:
374*a58d3d2aSXin Li	( cd doc && $(MAKE) $(AM_MAKEFLAGS) install )
375*a58d3d2aSXin Li
376*a58d3d2aSXin Li
377*a58d3d2aSXin Li# Or everything (by default)
378*a58d3d2aSXin Liall-local:
379*a58d3d2aSXin Li	@[ -n "$(NO_DOXYGEN)" ] || ( cd doc && $(MAKE) $(AM_MAKEFLAGS) )
380*a58d3d2aSXin Li
381*a58d3d2aSXin Liinstall-data-local:
382*a58d3d2aSXin Li	@[ -n "$(NO_DOXYGEN)" ] || ( cd doc && $(MAKE) $(AM_MAKEFLAGS) install )
383*a58d3d2aSXin Li
384*a58d3d2aSXin Liclean-local:
385*a58d3d2aSXin Li	-( cd doc && $(MAKE) $(AM_MAKEFLAGS) clean )
386*a58d3d2aSXin Li
387*a58d3d2aSXin Liuninstall-local:
388*a58d3d2aSXin Li	( cd doc && $(MAKE) $(AM_MAKEFLAGS) uninstall )
389*a58d3d2aSXin Li
390*a58d3d2aSXin Li
391*a58d3d2aSXin Li# We check this every time make is run, with configure.ac being touched to
392*a58d3d2aSXin Li# trigger an update of the build system files if update_version changes the
393*a58d3d2aSXin Li# current PACKAGE_VERSION (or if package_version was modified manually by a
394*a58d3d2aSXin Li# user with either AUTO_UPDATE=no or no update_version script present - the
395*a58d3d2aSXin Li# latter being the normal case for tarball releases).
396*a58d3d2aSXin Li#
397*a58d3d2aSXin Li# We can't just add the package_version file to CONFIGURE_DEPENDENCIES since
398*a58d3d2aSXin Li# simply running autoconf will not actually regenerate configure for us when
399*a58d3d2aSXin Li# the content of that file changes (due to autoconf dependency checking not
400*a58d3d2aSXin Li# knowing about that without us creating yet another file for it to include).
401*a58d3d2aSXin Li#
402*a58d3d2aSXin Li# The MAKECMDGOALS check is a gnu-make'ism, but will degrade 'gracefully' for
403*a58d3d2aSXin Li# makes that don't support it.  The only loss of functionality is not forcing
404*a58d3d2aSXin Li# an update of package_version for `make dist` if AUTO_UPDATE=no, but that is
405*a58d3d2aSXin Li# unlikely to be a real problem for any real user.
406*a58d3d2aSXin Li$(top_srcdir)/configure.ac: force
407*a58d3d2aSXin Li	@case "$(MAKECMDGOALS)" in \
408*a58d3d2aSXin Li	    dist-hook)                             exit 0       ;; \
409*a58d3d2aSXin Li	    dist-* | dist | distcheck | distclean) _arg=release ;; \
410*a58d3d2aSXin Li	esac; \
411*a58d3d2aSXin Li	if ! $(top_srcdir)/update_version $$_arg 2> /dev/null; then \
412*a58d3d2aSXin Li	    if [ ! -e $(top_srcdir)/package_version ]; then \
413*a58d3d2aSXin Li		echo 'PACKAGE_VERSION="unknown"' > $(top_srcdir)/package_version; \
414*a58d3d2aSXin Li	    fi; \
415*a58d3d2aSXin Li	    . $(top_srcdir)/package_version || exit 1; \
416*a58d3d2aSXin Li	    [ "$(PACKAGE_VERSION)" != "$$PACKAGE_VERSION" ] || exit 0; \
417*a58d3d2aSXin Li	fi; \
418*a58d3d2aSXin Li	touch $@
419*a58d3d2aSXin Li
420*a58d3d2aSXin Liforce:
421*a58d3d2aSXin Li
422*a58d3d2aSXin Li# Create a minimal package_version file when make dist is run.
423*a58d3d2aSXin Lidist-hook:
424*a58d3d2aSXin Li	echo 'PACKAGE_VERSION="$(PACKAGE_VERSION)"' > $(top_distdir)/package_version
425*a58d3d2aSXin Li
426*a58d3d2aSXin Li
427*a58d3d2aSXin Li.PHONY: opus check-opus install-opus docs install-docs
428*a58d3d2aSXin Li
429*a58d3d2aSXin Li# automake doesn't do dependency tracking for asm files, that I can tell
430*a58d3d2aSXin Li$(CELT_SOURCES_ARM_ASM:%.s=%-gnu.S): celt/arm/armopts-gnu.S
431*a58d3d2aSXin Li$(CELT_SOURCES_ARM_ASM:%.s=%-gnu.S): $(top_srcdir)/celt/arm/arm2gnu.pl
432*a58d3d2aSXin Li
433*a58d3d2aSXin Li# convert ARM asm to GNU as format
434*a58d3d2aSXin Li%-gnu.S: $(top_srcdir)/%.s
435*a58d3d2aSXin Li	$(top_srcdir)/celt/arm/arm2gnu.pl @ARM2GNU_PARAMS@ < $< > $@
436*a58d3d2aSXin Li# For autoconf-modified sources (e.g., armopts.s)
437*a58d3d2aSXin Li%-gnu.S: %.s
438*a58d3d2aSXin Li	$(top_srcdir)/celt/arm/arm2gnu.pl @ARM2GNU_PARAMS@ < $< > $@
439*a58d3d2aSXin Li
440*a58d3d2aSXin LiOPT_UNIT_TEST_OBJ = $(celt_tests_test_unit_mathops_SOURCES:.c=.o) \
441*a58d3d2aSXin Li                    $(celt_tests_test_unit_rotation_SOURCES:.c=.o) \
442*a58d3d2aSXin Li                    $(celt_tests_test_unit_mdct_SOURCES:.c=.o) \
443*a58d3d2aSXin Li                    $(celt_tests_test_unit_dft_SOURCES:.c=.o) \
444*a58d3d2aSXin Li                    $(silk_tests_test_unit_LPC_inv_pred_gain_SOURCES:.c=.o)
445*a58d3d2aSXin Li
446*a58d3d2aSXin Liif HAVE_SSE
447*a58d3d2aSXin LiSSE_OBJ = $(CELT_SOURCES_SSE:.c=.lo)
448*a58d3d2aSXin Li$(SSE_OBJ): CFLAGS += $(OPUS_X86_SSE_CFLAGS)
449*a58d3d2aSXin Liendif
450*a58d3d2aSXin Li
451*a58d3d2aSXin Liif HAVE_SSE2
452*a58d3d2aSXin LiSSE2_OBJ = $(CELT_SOURCES_SSE2:.c=.lo) \
453*a58d3d2aSXin Li           $(DNN_SOURCES_SSE2:.c=.lo)
454*a58d3d2aSXin Li$(SSE2_OBJ): CFLAGS += $(OPUS_X86_SSE2_CFLAGS)
455*a58d3d2aSXin Liendif
456*a58d3d2aSXin Li
457*a58d3d2aSXin Liif HAVE_SSE4_1
458*a58d3d2aSXin LiSSE4_1_OBJ = $(CELT_SOURCES_SSE4_1:.c=.lo) \
459*a58d3d2aSXin Li             $(DNN_SOURCES_SSE4_1:.c=.lo) \
460*a58d3d2aSXin Li             $(SILK_SOURCES_SSE4_1:.c=.lo) \
461*a58d3d2aSXin Li             $(SILK_SOURCES_FIXED_SSE4_1:.c=.lo)
462*a58d3d2aSXin Li$(SSE4_1_OBJ): CFLAGS += $(OPUS_X86_SSE4_1_CFLAGS)
463*a58d3d2aSXin Liendif
464*a58d3d2aSXin Li
465*a58d3d2aSXin Liif HAVE_AVX2
466*a58d3d2aSXin LiAVX2_OBJ = $(CELT_SOURCES_AVX2:.c=.lo) \
467*a58d3d2aSXin Li           $(SILK_SOURCES_AVX2:.c=.lo) \
468*a58d3d2aSXin Li           $(SILK_SOURCES_FLOAT_AVX2:.c=.lo) \
469*a58d3d2aSXin Li           $(DNN_SOURCES_AVX2:.c=.lo)
470*a58d3d2aSXin Li$(AVX2_OBJ): CFLAGS += $(OPUS_X86_AVX2_CFLAGS)
471*a58d3d2aSXin Liendif
472*a58d3d2aSXin Li
473*a58d3d2aSXin Liif HAVE_ARM_NEON_INTR
474*a58d3d2aSXin LiARM_NEON_INTR_OBJ = $(CELT_SOURCES_ARM_NEON_INTR:.c=.lo) \
475*a58d3d2aSXin Li                    $(SILK_SOURCES_ARM_NEON_INTR:.c=.lo) \
476*a58d3d2aSXin Li                    $(DNN_SOURCES_NEON:.c=.lo) \
477*a58d3d2aSXin Li                    $(SILK_SOURCES_FIXED_ARM_NEON_INTR:.c=.lo)
478*a58d3d2aSXin Li$(ARM_NEON_INTR_OBJ): CFLAGS += \
479*a58d3d2aSXin Li $(OPUS_ARM_NEON_INTR_CFLAGS)  $(NE10_CFLAGS)
480*a58d3d2aSXin Liendif
481*a58d3d2aSXin Li
482*a58d3d2aSXin Liif HAVE_ARM_DOTPROD
483*a58d3d2aSXin LiARM_DOTPROD_OBJ = $(DNN_SOURCES_DOTPROD:.c=.lo)
484*a58d3d2aSXin Li$(ARM_DOTPROD_OBJ): CFLAGS += $(ARM_DOTPROD_INTR_CFLAGS)
485*a58d3d2aSXin Liendif
486