PDA

View Full Version : Tivoserver compilation failure



gregly
03-08-2006, 02:15 AM
Hello all:

I am attempting to compile the newest Tivoserver (as posted on Sourceforge.net) and am having trouble getting mjpegtools to compile. After running configure and then trying to do a "make", I get the following error:

gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../utils -mcpu=i686 -march=i686 -g -O2 -Wall -Wunused -MT cpu_accel.lo -MD -MP -MF .deps/cpu_accel.Tpo -c cpu_accel.c -fPIC -DPIC -o .libs/cpu_accel.o
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
cpu_accel.c:161:2: error: #endif without #if
make[3]: *** [cpu_accel.lo] Error 1
make[3]: Leaving directory `/home/gsl/tivoserver/mjpegtools/utils'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/gsl/tivoserver/mjpegtools/utils'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/gsl/tivoserver/mjpegtools'
make: *** [all] Error 2

I have no clue what's going on here, but it looks like something in the configure script is definitely flaking out. Any ideas? Thanks!

-- GSL

gregly
03-08-2006, 02:02 PM
Never mind, I solved my own problem: there actually is a missing #ifdef statement in the file (mjpegtools/utils/cpu_accel.c) that causes the compile to flake out. There should be a

#ifdef HAVE_X86CPU

at line 81 (between the "{" line and the "int32_t eax, ebx, ecx, edx;" line).

Unfortunately, that's not the end of the story; now it looks like the compile is breaking while trying to compile lavtools, with a "dereferencing pointer to incomplete type" error. I'm going to go out on a limb here and say that the Fedora Core 4 installation of libquicktime is breaking mjpegtools for whatever reason.

This part, unfortunately, may be beyond my expertise. I could try compiling the newest mjpegtools (1.8), but I'm pretty sure the mplex patch won't work properly on that one. I'm running out of ideas here... is anyone that developed tivoserver in the house?

-- GSL

Jamie
03-08-2006, 02:24 PM
This part, unfortunately, may be beyond my expertise. I could try compiling the newest mjpegtools (1.8), but I'm pretty sure the mplex patch won't work properly on that one. I'm running out of ideas here... is anyone that developed tivoserver in the house?Try ./configure -without-quicktime.

gregly
03-08-2006, 02:58 PM
That fixed that issue, but now I'm getting a different "incomplete type" error trying to compile liblavrec.c:

gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I/usr/local/include -DG_LOG_DOMAIN=\"lavtools\" -DLAVPLAY_VERSION=\"1.6.2\" -I/usr/local/include -I/usr/X11R6/include -I /usr/X11R6/include -I../utils -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -mcpu=i686 -march=i686 -g -O2 -Wall -Wunused -MT liblavrec_la-liblavrec.lo -MD -MP -MF .deps/liblavrec_la-liblavrec.Tpo -c liblavrec.c -fPIC -DPIC -o .libs/liblavrec_la-liblavrec.o
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
In file included from liblavrec.h:33,
from liblavrec.c:76:
frequencies.h:107: error: array type has incomplete element type
liblavrec.c: In function 'lavrec_hardware_init':
liblavrec.c:1234: warning: comparisons like X<=Y<=Z do not have their mathematical meaning
make[2]: *** [liblavrec_la-liblavrec.lo] Error 1
make[2]: Leaving directory `/home/gsl/tivoserver/mjpegtools/lavtools'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/gsl/tivoserver/mjpegtools'
make: *** [all] Error 2

Incidentally, the Linux binary seems to run just fine (although I haven't tested it with any video files); I was just hoping to compile it myself to squeeze some more optimization out of it. I think, though, I'm going to give up on compiling it; it's just not worth the effort. Thanks for your help, though!

-- GSL

Vegas
03-08-2006, 03:11 PM
That fixed that issue, but now I'm getting a different "incomplete type" error trying to compile liblavrec.c:
-- GSL

A complete build of mjpegtools isn't needed for tivoserver. After the error, just cd into the mplex dir and run make from there. Mplex is all you need. It will build ok.

Are you running gcc4.? Mjpegtools and ffmpeg have problems with it.
If you get mplex to build with the above method, move on to building ffmpeg with ./configure --cc=gcc32

Vegas

gregly
03-24-2006, 11:47 AM
Hey, thanks to all for the help. I finally got the thing compiled after starting from scratch, and using gcc 3.2 for mjpegtools as Vegas suggested.

In fact, I even went back and recompiled ffmpeg with additional libraries, and compiled tivoserver again, and in doing so I noted what looks like a problem with the configure script... if I use the "--with-extralibs" option and specify the libraries I used to compile ffmpeg, the script dies while trying to check for pthread_create in -lpthread, saying it can't find libpthread, which is odd because it is right there in /usr/lib. (Plus, ffmpeg compiled just fine with the --enable-pthreads option.)

However, if I do a vanilla ./configure, and then go into the Makefile and edit the FFMPEG_LIBS variable manually to add the additional libraries, the compile works perfectly. Any thoughts why this might be happening? I've developed on Linux systems for a while, but haven't used automake/autoconf in the past, so I don't know the details of their operation.

In any case, it is running, and it is amazing. I hope you folks realize that you have just saved thousands of DirecTiVos from becoming boat anchors when D* drops support from them, as they can now be used as media centers. Keep up the fantastic work!

-- Gregly

lgkahn
03-25-2006, 02:47 PM
can someone post the makefile for mplex I cannot get configure on mjpegtools to complete due to lack of all the required libs this on a pc cygwin in windows I even tried to compile jpeg-mmx .. pain in the ...