v1.9.0 compilation fails due to X11 dependency on Linux with V4L

Stuart Hickinbottom <[email protected]> Fri, 20 Feb 2009 08:30:47 +0000
Newsgroups gmane.comp.video.mjpeg.devel
Message-ID <[email protected]>
I'm reporting this in response to a Gentoo Linux bug I've filed
(http://bugs.gentoo.org/show_bug.cgi?id=217427#c11).

On a headless (no X11) Linux server that has V4L, the compilation of
1.9.0 fails as follows:
----

creating png2yuv
(cd .libs && rm -f liblavrec.la && ln -s ../liblavrec.la liblavrec.la)
/bin/sh ../libtool --tag=CC   --mode=link i686-pc-linux-gnu-gcc 
-march=prescott -O2 -pipe -fomit-frame-pointer -fno-strict-aliasing -pthread
-Wall -Wunused  -Wl,-O1 -o lav2wav lav2wav.o ../utils/libmjpegutils.la 
liblavfile.la -lm
/bin/sh ../libtool --tag=CC   --mode=link i686-pc-linux-gnu-gcc 
-march=prescott -O2 -pipe -fomit-frame-pointer -fno-strict-aliasing -pthread
-Wall -Wunused  -Wl,-O1 -o lav2yuv lav2yuv-lav2yuv.o lav2yuv-lav_common.o
../utils/libmjpegutils.la  liblavfile.la liblavjpeg.la -lm
i686-pc-linux-gnu-gcc -shared  .libs/liblavplay_la-liblavplay.o
.libs/liblavplay_la-audiolib.o  -Wl,--rpath
-Wl,/var/tmp/portage/media-video/mjpegtools-1.9.0/work/mjpegtools-1.9.0/lavtools/.libs
-Wl,--rpath
-Wl,/var/tmp/portage/media-video/mjpegtools-1.9.0/work/mjpegtools-1.9.0/utils/.libs
-L/var/tmp/portage/media-video/mjpegtools-1.9.0/work/mjpegtools-1.9.0/utils/.libs
./.libs/liblavfile.so -L/usr/lib /usr/lib/libSDL.so -lpthread
./.libs/liblavjpeg.so ../utils/.libs/libmjpegutils.so -lX11 -lm 
-march=prescott -pthread -Wl,-O1 -Wl,-soname -Wl,liblavplay-1.9.so.0 -o
.libs/liblavplay-1.9.so.0.0.0
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/bin/ld:
cannot find -lX11
collect2: ld returned 1 exit status
make[2]: *** [liblavplay.la] Error 1

----

The 'configure' parameters passed were as follows:
./configure --prefix=/usr --host=i686-pc-linux-gnu
--mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share
--sysconfdir=/etc --localstatedir=/var/lib --without-x
--disable-xfree-ext --with-libquicktime --with-libpng --with-v4l
--without-gtk --without-sdl --without-libdv --enable-simd-accel
--enable-largefile --without-jpeg-mmx --build=i686-pc-linux-gnu

(note --without-x and --with-v4l)

And the relevant output of configure was:
... snip ...
checking for X... disabled
... snip ...
configure:  MJPEG tools 1.9.0 build configuration :
configure:
configure:   - X86 Optimizations:
configure:     - MMX/3DNow!/SSE enabled      : true
configure:   - video4linux recording/playback: true
configure:   - software MJPEG playback       : true
configure:   - Quicktime playback/recording  : true
configure:   - PNG input support             : true
configure:   - AVI MJPEG playback/recording  : true (always)
configure:   - libDV (digital video) support : false
configure:   - Gtk+ support for glav         : false

Version 1.8.0 built fine with these same options.

Looking at the makefile, a change was checked in for 1.9.0 that meant
V4L assumed that it should link to X11:
http://mjpeg.cvs.sourceforge.net/viewvc/mjpeg/mjpeg_play/lavtools/Makefile.am?r1=1.117&r2=1.118

I'm not sure of the history (I don't follow the developers' list), but
that looks like an incorrect assumption given a no-x11-but-v4l
configuration.

I've searched the SourceForge bug tracker and this list but couldn't
find a similar report - apologies if this is a dupe.

Thanks
Stuart

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H