Opened 12 years ago

Last modified 12 years ago

#2043 reopened defect

Makefile does not handle shared libraries

Reported by: joe@… Owned by: diego@…
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)

make.log.tar.gz (249.4 KB ) - added by joe@… 12 years ago.
make -p log
mplayer-build-20120227.log.tar.gz (24.0 KB ) - added by joe@… 12 years ago.
Build Log for 34777

Download all attachments as: .zip

Change History (8)

comment:1 by diego@…, 12 years ago

op_sys: LinuxAll
Resolution: worksforme
Status: newclosed

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.

by joe@…, 12 years ago

Attachment: make.log.tar.gz added

make -p log

comment:2 by joe@…, 12 years ago

Owner: changed from diego@… to joe@…
Resolution: worksforme
Status: closedreopened

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

by joe@…, 12 years ago

Build Log for 34777

comment:3 by joe@…, 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 belegdol+mplayer@…, 12 years ago

Cc: belegdol+mplayer@… added

comment:5 by belegdol+mplayer@…, 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 belegdol+mplayer@…, 12 years ago

Owner: changed from joe@… to diego@…
Note: See TracTickets for help on using tickets.