Opened 12 years ago
Last modified 12 years ago
#2043 reopened defect
Makefile does not handle shared libraries
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Component: | build system |
Version: | HEAD | Severity: | blocker |
Keywords: | Cc: | belegdol+mplayer@… | |
Blocked By: | Blocking: | ||
Reproduced by developer: | no | Analyzed by developer: | no |
Description
I've been experimenting with trying to use shared ffmpeg libraries.
It seems the Makefile correctly handles the --disable-ffmpeg_a configure option by removing references to these files. However, it does nothing to include the necessary references to the external shared libraries. I examined the command line, and I found it missing "-llibpostproc -llibavfilter -llibavformat -llibavcodec -llibswscale -llibswresample -llibavutil" which would be needed to link to the external shared ffmpeg libraries. (On my system, they are in /usr/lib64).
The code in question appears to be at lines 692-698 of the makefile. There appears to be code for handling FFMPEG_A but nothing for FFMPEG_SO.
Unfortunately, I am not that familiar with the build process to propose code to address the issue. Any help you can provide would be appreciated.
Attachments (2)
Change History (8)
comment:1 by , 12 years ago
op_sys: | Linux → All |
---|---|
Resolution: | → worksforme |
Status: | new → closed |
comment:2 by , 12 years ago
Owner: | changed from | to
---|---|
Resolution: | worksforme |
Status: | closed → reopened |
I've attached the results from "make -p' and my configure options are below.
With ffmpeg_a disabled, I would *think* it would generate something in the make file telling it to link to the enternal libraries, but it doesn't.
configure \
--prefix=/usr \
--bindir=/usr/bin \
--datadir=/usr/share/mplayer \
--mandir=/usr/share/man \
--confdir=/etc/mplayer \
--libdir=/usr/lib64 \
--codecsdir=/usr/lib64/codecs \
--extra-cflags="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic" \
--language=all \
--enable-joystick \
--enable-lirc \
--enable-menu \
--enable-radio \
--enable-radio-capture \
--enable-runtime-cpudetection \
--enable-unrarexec \
--disable-dvdread-internal \
--disable-libdvdcss-internal \
--disable-nemesi \
--disable-smb \
--disable-faac \
--disable-mad \
--disable-libmpeg2-internal \
--disable-tremor-internal \
--disable-bitmap-font \
--disable-dga1 --disable-dga2 \
--disable-directfb \
--disable-svga \
--disable-termcap \
--enable-xvmc \
--with-xvmclib=XvMCW \
--disable-arts \
--disable-esd \
--disable-jack \
--disable-openal \
--disable-ffmpeg_a
comment:3 by , 12 years ago
I'm also adding this attachment which contains the complete output of configure and make from a clean build of revision 34777.
comment:4 by , 12 years ago
Cc: | added |
---|
comment:5 by , 12 years ago
The other problem is that since revision 34243 libmpdemux/mp_taglists.c includes libavformat/internal.h, which makes building without the ffmpeg tree present impossible.
I am not sure how Joseph has solved this problem, but judging from the linking error it seems like these two might be related.
comment:6 by , 12 years ago
Owner: | changed from | to
---|
This has too few details to be useful. Shared libraries work for me. I split out the libpostproc check, which should help if your local FFmpeg installation comes without libpostproc. If that does not fix your problem we at least need you to report all the fancy details like, for starters, error messages from your linker.