[mythtv] [RFC] New Win32 build script

Boleslaw Ciesielski bc-mythtv at comcast.net
Sat Dec 11 14:18:21 UTC 2010


On 12/11/2010 04:43 AM, Lawrence Rust wrote:
> On Fri, 2010-12-10 at 16:07 -0500, Boleslaw Ciesielski wrote:
>> Next problem is this:
>>
>> i686-pc-mingw32-g++ -c -pipe -I/scratch/bolek/src/mythbuildw32/mythwork/mysql-5.0.89-win32/include -O2 -frtti -fexceptions -mthreads -Wall -W -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'../../../../include/QtCore' -I'../../../../include/QtNetwork' -I'../../../../include' -I'../../../../include/ActiveQt' -I'.moc/release-shared' -I'../../../../mkspecs/win32-g++linux' -o .obj/release-shared/main.o main.cpp
>> ../../../gui/image/qjpeghandler.cpp:120:8: error: 'boolean' does not name a type
>> ../../../gui/image/qjpeghandler.cpp: In function 'void qt_skip_input_data(jpeg_decompress_struct*, long int)':
>> ../../../gui/image/qjpeghandler.cpp:158:46: error: 'qt_fill_input_buffer' was not declared in this scope
>> ../../../gui/image/qjpeghandler.cpp: In constructor 'my_jpeg_source_mgr::my_jpeg_source_mgr(QIODevice*)':
>> ../../../gui/image/qjpeghandler.cpp:188:42: error: 'qt_fill_input_buffer' was not declared in this scope
>> ../../../gui/image/qjpeghandler.cpp: At global scope:
>> ../../../gui/image/qjpeghandler.cpp:469:8: error: 'boolean' does not name a type
>> ../../../gui/image/qjpeghandler.cpp: In constructor 'my_jpeg_destination_mgr::my_jpeg_destination_mgr(QIODevice*)':
>> ../../../gui/image/qjpeghandler.cpp:504:49: error: 'qt_empty_output_buffer' was not declared in this scope
>> make[4]: *** [.obj/release-shared/qjpeghandler.o] Error 1
>> make[4]: Leaving directory `/scratch/bolek/src/mythbuildw32/mythwork/qt-everywhere-opensource-src-4.7.0/src/plugins/imageformats/jpeg'
>> make[3]: *** [release] Error 2
>> make[3]: Leaving directory `/scratch/bolek/src/mythbuildw32/mythwork/qt-everywhere-opensource-src-4.7.0/src/plugins/imageformats/jpeg'
>> make[2]: *** [sub-jpeg-make_default] Error 2
>> make[2]: Leaving directory `/scratch/bolek/src/mythbuildw32/mythwork/qt-everywhere-opensource-src-4.7.0/src/plugins/imageformats'
>> make[1]: *** [sub-imageformats-make_default] Error 2
>> make[1]: *** Waiting for unfinished jobs....
>> _______________________________________________
>> mythtv-dev mailing list
>> mythtv-dev at mythtv.org
>> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
>
> This looks like a difference in mingw headers that's tickling a bug in
> qt-everywhere-opensource-src-4.7.0/src/gui/image/qjpeghandler.cpp
> I suggest changing line 60:
>
> -#   if defined(__RPCNDR_H__)&&  !defined(boolean)
> +#   if !defined(__RPCNDR_H__) || !defined(boolean)

I did this but I also had to change the next line:

-        typedef unsigned char boolean;
+        typedef int boolean;

With this Qt built.

Next was this (in the script)

-    cp -p "/usr/share/doc/mingw32-runtime/mingwm10.dll.gz" .
-    gunzip "mingwm10.dll.gz"
+    cp -a /usr/i686-pc-mingw32/sys-root/mingw/bin/mingwm10.dll .

After this I got mythtv-w32.zip! However libgcc_s_sjlj-1.dll and 
libstdc++-6.dll were not included either, probably because of different 
locations. On my system they are also in

/usr/i686-pc-mingw32/sys-root/mingw/bin

I just copied them by hand. I don't have a non-remote Windows setup at 
the moment so the only thing I tested was that mythfrontend comes up 
(and it does!).

Thanks for the great work,

Bolek


P.S.

It seems that mingw on Fedora 14 comes prepackaged with Qt 4.7.1 already 
built. Would it make sense to add a switch or something to use it 
instead of building our own? I guess it's not clear if it has all the 
necessary stuff built in. But if it worked we can even repackage it as a 
tarball/zip and then everyone can use it. And the nice folks at Redhat 
will build a new version for us every 6 months :-) I posted it here

http://home.comcast.net/~mythtv/mingw32-qt-4.7.1.zip

if anyone cares to try.


More information about the mythtv-dev mailing list