[mythtv] [RFC v2] New Win32 build script
Lawrence Rust
lvr at softsystem.co.uk
Thu Jan 20 21:37:10 UTC 2011
On Wed, 2011-01-19 at 22:03 -0800, Dan Wilson wrote:
> Trying again with your newest script on Fedora 14 32-bit. I'm also
> downloading ubuntu 10.10 32-bit. I will install that into another vm and
> try this operation there as a control case.
>
> The script fails to find the float.h file. The reason for that failure
> is the i686-pc-mingw32 case of $xprefix. path2 is incorrect for 32-bit
> Fedora - the path used is for 64-bit Fedora. 32-bit Fedora puts the
> files in /usr/lib/gcc, not /usr/lib64/gcc. Perhaps you should detect 32
> vs. 64-bit hosts by parsing uname output?
Thanks. Fix applied for 64-bit system.
> I manually changed path2 for now, then checked the actual float.h file.
> There was a float.h.orig file there, so I moved it back to float.h to
> ensure that it would actually have to perform the patch. It succeeded.
>
> When I re-execute mythbuild.sh, however, the script complains that
> float.h still needs to be patched. If I allow it to try, it reports
> that the patch has already been applied.
I checked this on a clean Fedora 14,32-bit install on VirtualBox and it
appears that it's down to mingw g++ not being installed. I've now added
an explicit check for that in the script. To clarify, on a clean system
you need these additional packages:
yum install gcc.i686 gcc-c++.i686 mingw32-gcc.i686 mingw32-gcc-g++.i686 wget patch git-core
How times have changed, until now I had assumed that all Linux distros
had a c/c++ compiler by default.
> libxml2 still fails to compile, as expected. I've commented it out and
> am trying again.
Down to missing mingw g++.
> libcdio build failed, unable to find libcdio-0.82/lib/iso9660/.libs/rock.o
> I found that file in the iso9660 directory itself, and copied it to the
> .libs directory. libcdio proceeded to complete it's build.
Works on a clean install. Please re-check with latest script.
> As an aside, it would be great if the script had another command-line
> argument specifying how long the timeout should be on the "do you want
> to build this subsystem" prompt. It is 60 seconds now, and for me, that
> is a needless delay most times - if it needs to build something, I want
> it to build it, so being able to specify a zero or one second timeout
> would be great, and would save at least a few minutes over the course of
> a full build if I happen not to be looking at it each time it hits the
> prompt....
Noted. Have added a -t <seconds> option, -t 0 disables all pauses.
> Also, if you'd like a fedora 14 virtual machine to experiment with, I
> can build you one and put it somewhere that you can download from. You'd
> need vmware player to use it, but that is a free download from vmware.com.
I just installed a Fedora 14 32-bit system on VirtualBox with today's
updates and checked the build.
> QT build fails. It appears it doesn't like the float.h patch:
> i686-pc-mingw32-g++ -c -include .pch/release-shared/qt_pch.h -pipe
> -I/home/dwilson/mythbuildw32/mythinstall/include/mysql -O2 -Wall -W
> -frtti -fexceptions -mthreads -DQT_SHARED -DQT_THREAD_SUPPORT -DUNICODE
> -DQT_LARGEFILE_SUPPORT -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE
> -DQT_MAKEDLL -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT
> -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION
> -D_USE_MATH_DEFINES -DHB_EXPORT=Q_CORE_EXPORT -DQT_HAVE_MMX
> -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_DLL
> -DQT_NO_DEBUG -I'../../include' -I'../../include/QtCore'
> -I'.rcc/release-shared' -I'tmp' -I'global' -I'../3rdparty/harfbuzz/src'
> -I'../3rdparty/md5' -I'../3rdparty/md4' -I'../../include/ActiveQt'
> -I'.moc/release-shared' -I'../../mkspecs/win32-g++linux' -o
> .obj/release-shared/qlocale.o tools/qlocale.cpp
> In file included from
> /usr/lib/gcc/i686-pc-mingw32/4.5.0/include/float.h:27:0,
> from tools/qlocale.cpp:73:
> /usr/i686-pc-mingw32/sys-root/mingw/include/float.h:18:23: error: no
> include path in which to search for float.h
>
> I can see that both float.h files were changed:
> $ pwd
> /usr/i686-pc-mingw32/sys-root/mingw/include
>
> $ diff float.h.orig float.h
> 20c20
> < #include_next<float.h>
> ---
> >
>
> $ cd /usr/lib/gcc/i686-pc-mingw32/4.5.0/include
> $ diff float.h.orig float.h
> 26a27
> > #include_next<float.h>
As expected, the patch failed so this is the anticipated result. I have
added some more tests to the script so that it will die before this if
the required tools are not present.
Thanks for your feedback. I've now included additional tests for the C++
compiler and other tools and added a few tweaks for Fedora 14, 32-bit.
A cross compile of fixes/0/24 to Windows on a clean install of Fedora 14
on VirtualBox built OK for me. The revised script is here:
http://www.softsystem.co.uk/download/mythtv/mythbuild-110120.zip
Comments appreciated.
-- Lawrence
More information about the mythtv-dev
mailing list