When I enable DVB I get a compile error on mythcdrom-linux.cpp, this is because the DVB settings.pro includes files from /usr/src/linux/includes
Including files directly from the kernel in Linux user space programs is no longer supported by the kernel developers.
I've attached a patch that copies the three dvb files from the kernel we use into myth. These are dvb/dmx.h, dvb/frontend.h, and dvb/version.h, these are renamed dvbdmx_myth.h, dvbfrontend_myth.h, dvbversion_myth.h and should be put in the libs/libmythtv directory with videodev_myth.h and videodev2_myth.h which serve a simlar purpose. The patch itself changes the files that include the kernel files to use the myth copies, and removes the INCLUDE line from settings.pro that causes the compile problem.
The copies of the dvb kernel includes is from 2.6.9, which may be too recent, but I'll leave it to the dvb people to amend this patch if it needs amending. We need fairly recent kernel for our DVB support, but I'm not sure exactly which kernel is the target.
-- Daniel
Below is the compile error I get without the patch, when enabling DVB:
cd libmyth && make -f Makefile make[2]: Entering directory `/cvs/myth/mythtv-pure/libs/libmyth' g++ -c -pipe -Wall -W -O3 -march=pentiumpro -fomit-frame-pointer -D_REENTRANT -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\" -DMMX -DCONFIG_VIDEO4LINUX -DUSING_IVTV -DUSING_OSS -DUSING_DVB -DUSING_DVB_EIT -DUSE_JOYSTICK_MENU -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I/usr/local/include -I/usr/src/linux-2.6.9/include -I../libmythsamplerate -I../libmythsoundtouch -I../.. -I/usr/qt/3/include -o mythcdrom-linux.o mythcdrom-linux.cpp In file included from /usr/src/linux-2.6.9/include/asm/byteorder.h:57, from /usr/src/linux-2.6.9/include/linux/cdrom.h:14, from mythcdrom-linux.cpp:3: /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:43: error: syntax error before `(' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:47: error: parse error before `*' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h: In function ` __u64 __le64_to_cpup(...)': /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:49: error: `p' undeclared (first use this function) /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:49: error: (Each undeclared identifier is reported only once for each function it appears in.) /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h: At global scope: /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:51: error: syntax error before `(' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:55: error: parse error before `*' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:59: error: syntax error before `(' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:63: error: parse error before `*' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:67: error: syntax error before `(' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:71: error: parse error before `*' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:75: error: syntax error before `(' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:79: error: parse error before `*' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:83: error: syntax error before `(' token /usr/src/linux-2.6.9/include/linux/byteorder/little_endian.h:87: error: parse error before `*' token make[2]: *** [mythcdrom-linux.o] Error 1 make[2]: Leaving directory `/cvs/myth/mythtv-pure/libs/libmyth' make[1]: *** [sub-libmyth] Error 2 make[1]: Leaving directory `/cvs/myth/mythtv-pure/libs' make: *** [sub-libs] Error 2
dvb-local-includes.tbz
Description: Binary data
_______________________________________________ mythtv-dev mailing list mythtv-dev@mythtv.org http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev