Mercurial > libavcodec.hg
view x86/Makefile @ 12208:5d73c4b4cd37 libavcodec
Make ff_inverse stay with libavutil, and optional copy it to libavcodec.
The ff_inverse table is used by FASTDIV macro, defined in libavutil, but up
to now the table was defined only in libavcodec.
After this change, the main copy of ff_inverse is part of libavutil (just
like FASTDIV), but if CONFIG_SMALL is unset, then a different copy is made
available to libavcodec, to avoid the performance penalty of using an
external look up table.
Dynamic linking works, because the libraries are linked with -Bsymbolic, so
the local copy of the symbol has priority over the external; static linking
works because the table is on a standalone object file in both libraries,
so the linker is able to discard one of the two.
Tested on Linux/x86-64 and Mac OS X/x86-64.
author | flameeyes |
---|---|
date | Wed, 21 Jul 2010 12:37:37 +0000 |
parents | 846779f6b164 |
children | c6509c205922 |
line wrap: on
line source
OBJS-$(CONFIG_MLP_DECODER) += x86/mlpdsp.o OBJS-$(CONFIG_TRUEHD_DECODER) += x86/mlpdsp.o YASM-OBJS-FFT-$(HAVE_AMD3DNOW) += x86/fft_3dn.o YASM-OBJS-FFT-$(HAVE_AMD3DNOWEXT) += x86/fft_3dn2.o YASM-OBJS-FFT-$(HAVE_SSE) += x86/fft_sse.o YASM-OBJS-$(CONFIG_FFT) += x86/fft_mmx.o \ $(YASM-OBJS-FFT-yes) YASM-OBJS-$(CONFIG_GPL) += x86/h264_deblock_sse2.o \ x86/h264_idct_sse2.o \ YASM-OBJS-$(CONFIG_H264DSP) += x86/h264_intrapred.o \ YASM-OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp_yasm.o MMX-OBJS-$(CONFIG_CAVS_DECODER) += x86/cavsdsp_mmx.o MMX-OBJS-$(CONFIG_MP1FLOAT_DECODER) += x86/mpegaudiodec_mmx.o MMX-OBJS-$(CONFIG_MP2FLOAT_DECODER) += x86/mpegaudiodec_mmx.o MMX-OBJS-$(CONFIG_MP3FLOAT_DECODER) += x86/mpegaudiodec_mmx.o MMX-OBJS-$(CONFIG_MP3ON4FLOAT_DECODER) += x86/mpegaudiodec_mmx.o MMX-OBJS-$(CONFIG_MP3ADUFLOAT_DECODER) += x86/mpegaudiodec_mmx.o MMX-OBJS-$(CONFIG_ENCODERS) += x86/dsputilenc_mmx.o MMX-OBJS-$(CONFIG_GPL) += x86/idct_mmx.o MMX-OBJS-$(CONFIG_LPC) += x86/lpc_mmx.o MMX-OBJS-$(CONFIG_DWT) += x86/snowdsp_mmx.o MMX-OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp_mmx.o MMX-OBJS-$(CONFIG_VP3_DECODER) += x86/vp3dsp_mmx.o \ x86/vp3dsp_sse2.o MMX-OBJS-$(CONFIG_VP5_DECODER) += x86/vp3dsp_mmx.o \ x86/vp3dsp_sse2.o MMX-OBJS-$(CONFIG_VP6_DECODER) += x86/vp3dsp_mmx.o \ x86/vp3dsp_sse2.o \ x86/vp6dsp_mmx.o \ x86/vp6dsp_sse2.o YASM-OBJS-$(CONFIG_VP8_DECODER) += x86/vp8dsp.o MMX-OBJS-$(CONFIG_VP8_DECODER) += x86/vp8dsp-init.o MMX-OBJS-$(HAVE_YASM) += x86/dsputil_yasm.o \ $(YASM-OBJS-yes) MMX-OBJS-$(CONFIG_FFT) += x86/fft.o OBJS-$(HAVE_MMX) += x86/cpuid.o \ x86/dnxhd_mmx.o \ x86/dsputil_mmx.o \ x86/fdct_mmx.o \ x86/idct_mmx_xvid.o \ x86/idct_sse2_xvid.o \ x86/motion_est_mmx.o \ x86/mpegvideo_mmx.o \ x86/simple_idct_mmx.o \ MMX-OBJS-$(CONFIG_DCT) += x86/dct32_sse.o