Mercurial > hg > sv-dependency-builds
comparison src/opus-1.3/Makefile.am @ 154:4664ac0c1032
Add Opus sources and macOS builds
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Wed, 23 Jan 2019 13:48:08 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
153:84bc3a5ec321 | 154:4664ac0c1032 |
---|---|
1 # Provide the full test output for failed tests when using the parallel | |
2 # test suite (which is enabled by default with automake 1.13+). | |
3 export VERBOSE = yes | |
4 | |
5 AUTOMAKE_OPTIONS = subdir-objects | |
6 ACLOCAL_AMFLAGS = -I m4 | |
7 | |
8 lib_LTLIBRARIES = libopus.la | |
9 | |
10 DIST_SUBDIRS = doc | |
11 | |
12 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/celt -I$(top_srcdir)/silk \ | |
13 -I$(top_srcdir)/silk/float -I$(top_srcdir)/silk/fixed $(NE10_CFLAGS) | |
14 | |
15 include celt_sources.mk | |
16 include silk_sources.mk | |
17 include opus_sources.mk | |
18 | |
19 if FIXED_POINT | |
20 SILK_SOURCES += $(SILK_SOURCES_FIXED) | |
21 if HAVE_SSE4_1 | |
22 SILK_SOURCES += $(SILK_SOURCES_SSE4_1) $(SILK_SOURCES_FIXED_SSE4_1) | |
23 endif | |
24 if HAVE_ARM_NEON_INTR | |
25 SILK_SOURCES += $(SILK_SOURCES_FIXED_ARM_NEON_INTR) | |
26 endif | |
27 else | |
28 SILK_SOURCES += $(SILK_SOURCES_FLOAT) | |
29 if HAVE_SSE4_1 | |
30 SILK_SOURCES += $(SILK_SOURCES_SSE4_1) | |
31 endif | |
32 endif | |
33 | |
34 if DISABLE_FLOAT_API | |
35 else | |
36 OPUS_SOURCES += $(OPUS_SOURCES_FLOAT) | |
37 endif | |
38 | |
39 if HAVE_SSE | |
40 CELT_SOURCES += $(CELT_SOURCES_SSE) | |
41 endif | |
42 if HAVE_SSE2 | |
43 CELT_SOURCES += $(CELT_SOURCES_SSE2) | |
44 endif | |
45 if HAVE_SSE4_1 | |
46 CELT_SOURCES += $(CELT_SOURCES_SSE4_1) | |
47 endif | |
48 | |
49 if CPU_ARM | |
50 CELT_SOURCES += $(CELT_SOURCES_ARM) | |
51 SILK_SOURCES += $(SILK_SOURCES_ARM) | |
52 | |
53 if HAVE_ARM_NEON_INTR | |
54 CELT_SOURCES += $(CELT_SOURCES_ARM_NEON_INTR) | |
55 SILK_SOURCES += $(SILK_SOURCES_ARM_NEON_INTR) | |
56 endif | |
57 | |
58 if HAVE_ARM_NE10 | |
59 CELT_SOURCES += $(CELT_SOURCES_ARM_NE10) | |
60 endif | |
61 | |
62 if OPUS_ARM_EXTERNAL_ASM | |
63 noinst_LTLIBRARIES = libarmasm.la | |
64 libarmasm_la_SOURCES = $(CELT_SOURCES_ARM_ASM:.s=-gnu.S) | |
65 BUILT_SOURCES = $(CELT_SOURCES_ARM_ASM:.s=-gnu.S) \ | |
66 $(CELT_AM_SOURCES_ARM_ASM:.s.in=.s) \ | |
67 $(CELT_AM_SOURCES_ARM_ASM:.s.in=-gnu.S) | |
68 endif | |
69 endif | |
70 | |
71 CLEANFILES = $(CELT_SOURCES_ARM_ASM:.s=-gnu.S) \ | |
72 $(CELT_AM_SOURCES_ARM_ASM:.s.in=-gnu.S) | |
73 | |
74 include celt_headers.mk | |
75 include silk_headers.mk | |
76 include opus_headers.mk | |
77 | |
78 libopus_la_SOURCES = $(CELT_SOURCES) $(SILK_SOURCES) $(OPUS_SOURCES) | |
79 libopus_la_LDFLAGS = -no-undefined -version-info @OPUS_LT_CURRENT@:@OPUS_LT_REVISION@:@OPUS_LT_AGE@ | |
80 libopus_la_LIBADD = $(NE10_LIBS) $(LIBM) | |
81 if OPUS_ARM_EXTERNAL_ASM | |
82 libopus_la_LIBADD += libarmasm.la | |
83 endif | |
84 | |
85 pkginclude_HEADERS = include/opus.h include/opus_multistream.h include/opus_types.h include/opus_defines.h include/opus_projection.h | |
86 | |
87 noinst_HEADERS = $(OPUS_HEAD) $(SILK_HEAD) $(CELT_HEAD) | |
88 | |
89 if EXTRA_PROGRAMS | |
90 noinst_PROGRAMS = celt/tests/test_unit_cwrs32 \ | |
91 celt/tests/test_unit_dft \ | |
92 celt/tests/test_unit_entropy \ | |
93 celt/tests/test_unit_laplace \ | |
94 celt/tests/test_unit_mathops \ | |
95 celt/tests/test_unit_mdct \ | |
96 celt/tests/test_unit_rotation \ | |
97 celt/tests/test_unit_types \ | |
98 opus_compare \ | |
99 opus_demo \ | |
100 repacketizer_demo \ | |
101 silk/tests/test_unit_LPC_inv_pred_gain \ | |
102 tests/test_opus_api \ | |
103 tests/test_opus_decode \ | |
104 tests/test_opus_encode \ | |
105 tests/test_opus_padding \ | |
106 tests/test_opus_projection | |
107 | |
108 TESTS = celt/tests/test_unit_cwrs32 \ | |
109 celt/tests/test_unit_dft \ | |
110 celt/tests/test_unit_entropy \ | |
111 celt/tests/test_unit_laplace \ | |
112 celt/tests/test_unit_mathops \ | |
113 celt/tests/test_unit_mdct \ | |
114 celt/tests/test_unit_rotation \ | |
115 celt/tests/test_unit_types \ | |
116 silk/tests/test_unit_LPC_inv_pred_gain \ | |
117 tests/test_opus_api \ | |
118 tests/test_opus_decode \ | |
119 tests/test_opus_encode \ | |
120 tests/test_opus_padding \ | |
121 tests/test_opus_projection | |
122 | |
123 opus_demo_SOURCES = src/opus_demo.c | |
124 | |
125 opus_demo_LDADD = libopus.la $(NE10_LIBS) $(LIBM) | |
126 | |
127 repacketizer_demo_SOURCES = src/repacketizer_demo.c | |
128 | |
129 repacketizer_demo_LDADD = libopus.la $(NE10_LIBS) $(LIBM) | |
130 | |
131 opus_compare_SOURCES = src/opus_compare.c | |
132 opus_compare_LDADD = $(LIBM) | |
133 | |
134 tests_test_opus_api_SOURCES = tests/test_opus_api.c tests/test_opus_common.h | |
135 tests_test_opus_api_LDADD = libopus.la $(NE10_LIBS) $(LIBM) | |
136 | |
137 tests_test_opus_encode_SOURCES = tests/test_opus_encode.c tests/opus_encode_regressions.c tests/test_opus_common.h | |
138 tests_test_opus_encode_LDADD = libopus.la $(NE10_LIBS) $(LIBM) | |
139 | |
140 tests_test_opus_decode_SOURCES = tests/test_opus_decode.c tests/test_opus_common.h | |
141 tests_test_opus_decode_LDADD = libopus.la $(NE10_LIBS) $(LIBM) | |
142 | |
143 tests_test_opus_padding_SOURCES = tests/test_opus_padding.c tests/test_opus_common.h | |
144 tests_test_opus_padding_LDADD = libopus.la $(NE10_LIBS) $(LIBM) | |
145 | |
146 CELT_OBJ = $(CELT_SOURCES:.c=.lo) | |
147 SILK_OBJ = $(SILK_SOURCES:.c=.lo) | |
148 OPUS_OBJ = $(OPUS_SOURCES:.c=.lo) | |
149 | |
150 tests_test_opus_projection_SOURCES = tests/test_opus_projection.c tests/test_opus_common.h | |
151 tests_test_opus_projection_LDADD = $(OPUS_OBJ) $(SILK_OBJ) $(CELT_OBJ) $(NE10_LIBS) $(LIBM) | |
152 if OPUS_ARM_EXTERNAL_ASM | |
153 tests_test_opus_projection_LDADD += libarmasm.la | |
154 endif | |
155 | |
156 silk_tests_test_unit_LPC_inv_pred_gain_SOURCES = silk/tests/test_unit_LPC_inv_pred_gain.c | |
157 silk_tests_test_unit_LPC_inv_pred_gain_LDADD = $(SILK_OBJ) $(CELT_OBJ) $(NE10_LIBS) $(LIBM) | |
158 if OPUS_ARM_EXTERNAL_ASM | |
159 silk_tests_test_unit_LPC_inv_pred_gain_LDADD += libarmasm.la | |
160 endif | |
161 | |
162 celt_tests_test_unit_cwrs32_SOURCES = celt/tests/test_unit_cwrs32.c | |
163 celt_tests_test_unit_cwrs32_LDADD = $(LIBM) | |
164 | |
165 celt_tests_test_unit_dft_SOURCES = celt/tests/test_unit_dft.c | |
166 celt_tests_test_unit_dft_LDADD = $(CELT_OBJ) $(NE10_LIBS) $(LIBM) | |
167 if OPUS_ARM_EXTERNAL_ASM | |
168 celt_tests_test_unit_dft_LDADD += libarmasm.la | |
169 endif | |
170 | |
171 celt_tests_test_unit_entropy_SOURCES = celt/tests/test_unit_entropy.c | |
172 celt_tests_test_unit_entropy_LDADD = $(LIBM) | |
173 | |
174 celt_tests_test_unit_laplace_SOURCES = celt/tests/test_unit_laplace.c | |
175 celt_tests_test_unit_laplace_LDADD = $(LIBM) | |
176 | |
177 celt_tests_test_unit_mathops_SOURCES = celt/tests/test_unit_mathops.c | |
178 celt_tests_test_unit_mathops_LDADD = $(CELT_OBJ) $(NE10_LIBS) $(LIBM) | |
179 if OPUS_ARM_EXTERNAL_ASM | |
180 celt_tests_test_unit_mathops_LDADD += libarmasm.la | |
181 endif | |
182 | |
183 celt_tests_test_unit_mdct_SOURCES = celt/tests/test_unit_mdct.c | |
184 celt_tests_test_unit_mdct_LDADD = $(CELT_OBJ) $(NE10_LIBS) $(LIBM) | |
185 if OPUS_ARM_EXTERNAL_ASM | |
186 celt_tests_test_unit_mdct_LDADD += libarmasm.la | |
187 endif | |
188 | |
189 celt_tests_test_unit_rotation_SOURCES = celt/tests/test_unit_rotation.c | |
190 celt_tests_test_unit_rotation_LDADD = $(CELT_OBJ) $(NE10_LIBS) $(LIBM) | |
191 if OPUS_ARM_EXTERNAL_ASM | |
192 celt_tests_test_unit_rotation_LDADD += libarmasm.la | |
193 endif | |
194 | |
195 celt_tests_test_unit_types_SOURCES = celt/tests/test_unit_types.c | |
196 celt_tests_test_unit_types_LDADD = $(LIBM) | |
197 endif | |
198 | |
199 if CUSTOM_MODES | |
200 pkginclude_HEADERS += include/opus_custom.h | |
201 if EXTRA_PROGRAMS | |
202 noinst_PROGRAMS += opus_custom_demo | |
203 opus_custom_demo_SOURCES = celt/opus_custom_demo.c | |
204 opus_custom_demo_LDADD = libopus.la $(LIBM) | |
205 endif | |
206 endif | |
207 | |
208 EXTRA_DIST = opus.pc.in \ | |
209 opus-uninstalled.pc.in \ | |
210 opus.m4 \ | |
211 Makefile.mips \ | |
212 Makefile.unix \ | |
213 tests/run_vectors.sh \ | |
214 celt/arm/arm2gnu.pl \ | |
215 celt/arm/celt_pitch_xcorr_arm.s \ | |
216 win32/VS2015/opus.vcxproj \ | |
217 win32/VS2015/test_opus_encode.vcxproj.filters \ | |
218 win32/VS2015/test_opus_encode.vcxproj \ | |
219 win32/VS2015/opus_demo.vcxproj \ | |
220 win32/VS2015/test_opus_api.vcxproj.filters \ | |
221 win32/VS2015/test_opus_api.vcxproj \ | |
222 win32/VS2015/test_opus_decode.vcxproj.filters \ | |
223 win32/VS2015/opus_demo.vcxproj.filters \ | |
224 win32/VS2015/opus.vcxproj.filters \ | |
225 win32/VS2015/test_opus_decode.vcxproj \ | |
226 win32/VS2015/opus.sln \ | |
227 win32/VS2015/common.props \ | |
228 win32/genversion.bat \ | |
229 win32/config.h | |
230 | |
231 pkgconfigdir = $(libdir)/pkgconfig | |
232 pkgconfig_DATA = opus.pc | |
233 | |
234 m4datadir = $(datadir)/aclocal | |
235 m4data_DATA = opus.m4 | |
236 | |
237 # Targets to build and install just the library without the docs | |
238 opus check-opus install-opus: export NO_DOXYGEN = 1 | |
239 | |
240 opus: all | |
241 check-opus: check | |
242 install-opus: install | |
243 | |
244 | |
245 # Or just the docs | |
246 docs: | |
247 ( cd doc && $(MAKE) $(AM_MAKEFLAGS) ) | |
248 | |
249 install-docs: | |
250 ( cd doc && $(MAKE) $(AM_MAKEFLAGS) install ) | |
251 | |
252 | |
253 # Or everything (by default) | |
254 all-local: | |
255 @[ -n "$(NO_DOXYGEN)" ] || ( cd doc && $(MAKE) $(AM_MAKEFLAGS) ) | |
256 | |
257 install-data-local: | |
258 @[ -n "$(NO_DOXYGEN)" ] || ( cd doc && $(MAKE) $(AM_MAKEFLAGS) install ) | |
259 | |
260 clean-local: | |
261 -( cd doc && $(MAKE) $(AM_MAKEFLAGS) clean ) | |
262 | |
263 uninstall-local: | |
264 ( cd doc && $(MAKE) $(AM_MAKEFLAGS) uninstall ) | |
265 | |
266 | |
267 # We check this every time make is run, with configure.ac being touched to | |
268 # trigger an update of the build system files if update_version changes the | |
269 # current PACKAGE_VERSION (or if package_version was modified manually by a | |
270 # user with either AUTO_UPDATE=no or no update_version script present - the | |
271 # latter being the normal case for tarball releases). | |
272 # | |
273 # We can't just add the package_version file to CONFIGURE_DEPENDENCIES since | |
274 # simply running autoconf will not actually regenerate configure for us when | |
275 # the content of that file changes (due to autoconf dependency checking not | |
276 # knowing about that without us creating yet another file for it to include). | |
277 # | |
278 # The MAKECMDGOALS check is a gnu-make'ism, but will degrade 'gracefully' for | |
279 # makes that don't support it. The only loss of functionality is not forcing | |
280 # an update of package_version for `make dist` if AUTO_UPDATE=no, but that is | |
281 # unlikely to be a real problem for any real user. | |
282 $(top_srcdir)/configure.ac: force | |
283 @case "$(MAKECMDGOALS)" in \ | |
284 dist-hook) exit 0 ;; \ | |
285 dist-* | dist | distcheck | distclean) _arg=release ;; \ | |
286 esac; \ | |
287 if ! $(top_srcdir)/update_version $$_arg 2> /dev/null; then \ | |
288 if [ ! -e $(top_srcdir)/package_version ]; then \ | |
289 echo 'PACKAGE_VERSION="unknown"' > $(top_srcdir)/package_version; \ | |
290 fi; \ | |
291 . $(top_srcdir)/package_version || exit 1; \ | |
292 [ "$(PACKAGE_VERSION)" != "$$PACKAGE_VERSION" ] || exit 0; \ | |
293 fi; \ | |
294 touch $@ | |
295 | |
296 force: | |
297 | |
298 # Create a minimal package_version file when make dist is run. | |
299 dist-hook: | |
300 echo 'PACKAGE_VERSION="$(PACKAGE_VERSION)"' > $(top_distdir)/package_version | |
301 | |
302 | |
303 .PHONY: opus check-opus install-opus docs install-docs | |
304 | |
305 # automake doesn't do dependency tracking for asm files, that I can tell | |
306 $(CELT_SOURCES_ARM_ASM:%.s=%-gnu.S): celt/arm/armopts-gnu.S | |
307 $(CELT_SOURCES_ARM_ASM:%.s=%-gnu.S): $(top_srcdir)/celt/arm/arm2gnu.pl | |
308 | |
309 # convert ARM asm to GNU as format | |
310 %-gnu.S: $(top_srcdir)/%.s | |
311 $(top_srcdir)/celt/arm/arm2gnu.pl @ARM2GNU_PARAMS@ < $< > $@ | |
312 # For autoconf-modified sources (e.g., armopts.s) | |
313 %-gnu.S: %.s | |
314 $(top_srcdir)/celt/arm/arm2gnu.pl @ARM2GNU_PARAMS@ < $< > $@ | |
315 | |
316 OPT_UNIT_TEST_OBJ = $(celt_tests_test_unit_mathops_SOURCES:.c=.o) \ | |
317 $(celt_tests_test_unit_rotation_SOURCES:.c=.o) \ | |
318 $(celt_tests_test_unit_mdct_SOURCES:.c=.o) \ | |
319 $(celt_tests_test_unit_dft_SOURCES:.c=.o) \ | |
320 $(silk_tests_test_unit_LPC_inv_pred_gain_SOURCES:.c=.o) | |
321 | |
322 if HAVE_SSE | |
323 SSE_OBJ = $(CELT_SOURCES_SSE:.c=.lo) | |
324 $(SSE_OBJ): CFLAGS += $(OPUS_X86_SSE_CFLAGS) | |
325 endif | |
326 | |
327 if HAVE_SSE2 | |
328 SSE2_OBJ = $(CELT_SOURCES_SSE2:.c=.lo) | |
329 $(SSE2_OBJ): CFLAGS += $(OPUS_X86_SSE2_CFLAGS) | |
330 endif | |
331 | |
332 if HAVE_SSE4_1 | |
333 SSE4_1_OBJ = $(CELT_SOURCES_SSE4_1:.c=.lo) \ | |
334 $(SILK_SOURCES_SSE4_1:.c=.lo) \ | |
335 $(SILK_SOURCES_FIXED_SSE4_1:.c=.lo) | |
336 $(SSE4_1_OBJ): CFLAGS += $(OPUS_X86_SSE4_1_CFLAGS) | |
337 endif | |
338 | |
339 if HAVE_ARM_NEON_INTR | |
340 ARM_NEON_INTR_OBJ = $(CELT_SOURCES_ARM_NEON_INTR:.c=.lo) \ | |
341 $(SILK_SOURCES_ARM_NEON_INTR:.c=.lo) \ | |
342 $(SILK_SOURCES_FIXED_ARM_NEON_INTR:.c=.lo) | |
343 $(ARM_NEON_INTR_OBJ): CFLAGS += \ | |
344 $(OPUS_ARM_NEON_INTR_CFLAGS) $(NE10_CFLAGS) | |
345 endif |