Opened 8 years ago

Last modified 7 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: Analyzed by developer:

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@… 7 years ago.
make -p log
mplayer-build-20120227.log.tar.gz (24.0 KB) - added by joe@… 7 years ago.
Build Log for 34777

Download all attachments as: .zip

Change History (8)

comment:1 Changed 8 years ago by diego@…

  • op_sys changed from Linux to All
  • Resolution set to worksforme
  • Status changed from new to closed

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.

Changed 7 years ago by joe@…

make -p log

comment:2 Changed 7 years ago by joe@…

  • Owner changed from diego@… to joe@…
  • Resolution worksforme deleted
  • Status changed from closed to 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

Changed 7 years ago by joe@…

Build Log for 34777

comment:3 Changed 7 years ago by joe@…

I'm also adding this attachment which contains the complete output of configure and make from a clean build of revision 34777.

comment:4 Changed 7 years ago by belegdol+mplayer@…

  • Cc belegdol+mplayer@… added

comment:5 Changed 7 years ago by belegdol+mplayer@…

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 Changed 7 years ago by belegdol+mplayer@…

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