1 | patches for mingw |
---|
2 | |
---|
3 | From: Mark Spieth <mspieth@digivation.com.au> |
---|
4 | |
---|
5 | |
---|
6 | --- |
---|
7 | Win32/mythbuild.sh | 77 +++++++++++++++++++++++++++++++++++++++------------- |
---|
8 | 1 file changed, 58 insertions(+), 19 deletions(-) |
---|
9 | |
---|
10 | diff --git a/Win32/mythbuild.sh b/Win32/mythbuild.sh |
---|
11 | index 4fb21c6..1787cd4 100755 |
---|
12 | --- a/Win32/mythbuild.sh |
---|
13 | +++ b/Win32/mythbuild.sh |
---|
14 | @@ -105,7 +105,7 @@ readonly myargs="$*" |
---|
15 | : ${GETTEXT_URL:="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/$GETTEXT.zip"} |
---|
16 | : ${PTHREADS:="pthreads-w32-2-8-0-release"} |
---|
17 | : ${PTHREADS_URL:="ftp://sourceware.org/pub/pthreads-win32/$PTHREADS.tar.gz"} |
---|
18 | -: ${ZLIB:="zlib-1.2.5"} |
---|
19 | +: ${ZLIB:="zlib-1.2.8"} |
---|
20 | : ${ZLIB_URL:="http://$SOURCEFORGE/project/libpng/zlib/${ZLIB/zlib-/}/$ZLIB.tar.gz"} |
---|
21 | : ${FREETYPE:="freetype-2.4.3"} |
---|
22 | : ${FREETYPE_URL:="http://download.savannah.gnu.org/releases/freetype/$FREETYPE.tar.gz"} |
---|
23 | @@ -139,14 +139,16 @@ readonly myargs="$*" |
---|
24 | : ${LIBXSLT:="libxslt-1.1.26"} |
---|
25 | : ${LIBXSLT_URL:="ftp://xmlsoft.org/libxslt/${LIBXSLT}.tar.gz"} |
---|
26 | # 16-Sep-2011 latest: mysql-5.5.16 |
---|
27 | -: ${MYSQL:="mysql-5.1.58"} |
---|
28 | +#: ${MYSQL:="mysql-5.1.58"} |
---|
29 | +: ${MYSQL:="mysql-5.1.65"} |
---|
30 | : ${MYSQL_URL:="http://mirrors.ircam.fr/pub/mysql/Downloads/MySQL-${MYSQL:6:3}/$MYSQL.tar.gz"} |
---|
31 | # Pre-built win32 install. NB mysql-5.1 requires winXP-SP2, 5.0 works on win2k |
---|
32 | # 5.0.89 unavailable 11-feb-11 |
---|
33 | #: ${MYSQLW:="mysql-5.0.89-win32"} |
---|
34 | # 5.1.55 unavailable 15-sep-11 |
---|
35 | #: ${MYSQLW:="mysql-5.1.55-win32"} |
---|
36 | -: ${MYSQLW:="mysql-5.1.58-win32"} |
---|
37 | +#: ${MYSQLW:="mysql-5.1.58-win32"} |
---|
38 | +: ${MYSQLW:="mysql-5.1.65-win32"} |
---|
39 | : ${MYSQLW_URL:="ftp://mirrors.ircam.fr/pub/mysql/Downloads/MySQL-${MYSQLW:6:3}/${MYSQLW/mysql-/mysql-noinstall-}.zip"} |
---|
40 | #: ${MYSQLW_URL:="ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-${MYSQLW:6:3}/${MYSQLW/mysql-/mysql-noinstall-}.zip"} |
---|
41 | # Pre-built MacOSX install |
---|
42 | @@ -156,8 +158,10 @@ readonly myargs="$*" |
---|
43 | : ${MYSQLX:="mysql-standard-4.1.22-apple-darwin7.9.0-powerpc"} |
---|
44 | : ${MYSQLX_URL:="ftp://mirrors.ircam.fr/pub/mysql/Downloads/MySQL-${MYSQLX:15:3}/$MYSQLX.tar.gz"} |
---|
45 | #: ${QT:="qt-everywhere-opensource-src-4.7.4"} # Builds for host OK but win32 & mac need updated patches |
---|
46 | -: ${QT:="qt-everywhere-opensource-src-4.7.0"} |
---|
47 | -: ${QT_URL:="http://get.qt.nokia.com/qt/source/$QT.tar.gz"} |
---|
48 | +#: ${QT:="qt-everywhere-opensource-src-4.7.0"} |
---|
49 | +: ${QT:="qt-everywhere-opensource-src-4.8.4"} |
---|
50 | +#: ${QT_URL:="http://get.qt.nokia.com/qt/source/$QT.tar.gz"} |
---|
51 | +: ${QT_URL:="http://releases.qt-project.org/qt4/source/$QT.tar.gz"} |
---|
52 | # Configurable libraries |
---|
53 | readonly packages1="MYTHTV MYTHPLUGINS QT MYSQL FREETYPE LAME LIBEXIF LIBXML2" |
---|
54 | readonly packages2="LIBXSLT LIBOGG LIBVORBIS FLAC LIBCDIO TAGLIB FFTW LIBSDL" |
---|
55 | @@ -233,6 +237,8 @@ fi |
---|
56 | verbose="no" |
---|
57 | unset dosudo |
---|
58 | unset patchmaster |
---|
59 | +noask="no" |
---|
60 | +qtbuildloop="no" |
---|
61 | : ${DXVA2:="no"} |
---|
62 | |
---|
63 | |
---|
64 | @@ -268,6 +274,8 @@ function myhelp() { |
---|
65 | echo " -j n Number of parallel make jobs [$makejobs]" |
---|
66 | echo " -t <n> Timeout after configure [$readtimeout Seconds]" |
---|
67 | echo " -v Verbose build messages [$verbose]" |
---|
68 | + echo " -q dont ask questions and wait" |
---|
69 | + echo " -Q loop QT build on failure due to VM alloc issues" |
---|
70 | echo " -C Force a clean re-build" |
---|
71 | echo " -E Force a clean re-install" |
---|
72 | echo " -F Enable mythtv and mythplugins master patches [${patchmaster:-no}]" |
---|
73 | @@ -308,13 +316,14 @@ function die() { |
---|
74 | } |
---|
75 | |
---|
76 | # Options |
---|
77 | -while getopts ":b:c:dj:lprt:vhVCEFHI:MPRSTWX" opt |
---|
78 | +while getopts ":b:c:dj:lpqrt:vhVCEFHI:MPQRSTWX" opt |
---|
79 | do |
---|
80 | case "$opt" in |
---|
81 | b) [ "${OPTARG:0:1}" != "-" ] && MYTHBRANCH=$OPTARG || die "Invalid branch tag: $OPTARG" ;; |
---|
82 | c) [ "${OPTARG:0:1}" != "-" ] && cpu=$OPTARG || die "Invalid CPU: $OPTARG" ;; |
---|
83 | d) MYTHBUILD="debug" ;; |
---|
84 | p) MYTHBUILD="profile" ;; |
---|
85 | + q) noask="yes" ;; |
---|
86 | r) MYTHBUILD="release" ;; |
---|
87 | j) [ $OPTARG -lt 0 -o $OPTARG -gt 99 ] && die "Invalid number of jobs: $OPTARG" |
---|
88 | [ $OPTARG -lt 1 ] && die "Invalid make jobs: $OPTARG" |
---|
89 | @@ -332,6 +341,7 @@ do |
---|
90 | W) MYTHTARGET="Windows" ;; |
---|
91 | I) MYTHINSTALL=`readlink -f "$OPTARG" 2>/dev/null` || die "Invalid path: $OPTARG" ;; |
---|
92 | P) patches="apply" ;; |
---|
93 | + Q) qtbuildloop="yes" ;; |
---|
94 | R) patches="reverse" ;; |
---|
95 | S) dosudo="sudo" ;; |
---|
96 | T) [ "$themes" = "no" ] && themes="yes" || themes="no" ;; |
---|
97 | @@ -812,7 +822,9 @@ esac |
---|
98 | # Display Myth branch & build type and wait for OK |
---|
99 | banner "Building MythTV${branch:+ branch '$branch'} ($MYTHBUILD) for $MYTHTARGET" >&2 |
---|
100 | [ "$cleanbuild" = "yes" ] && echo "WARNING: All packages will be rebuilt from scratch." >&2 |
---|
101 | -read -p "Press [Return] to continue or [Control-C] to abort: " |
---|
102 | +if [ "$noask" = "no" ] ; then |
---|
103 | + read -p "Press [Return] to continue or [Control-C] to abort: " |
---|
104 | +fi |
---|
105 | echo "" |
---|
106 | |
---|
107 | # Change to the working dir |
---|
108 | @@ -985,8 +997,8 @@ if ! git --version >/dev/null 2>&1 ; then |
---|
109 | if [ "$MSYSTEM" != "MINGW32" ]; then |
---|
110 | install_pkg git-core |
---|
111 | else |
---|
112 | - gitexe="c:\Program Files\Git\bin\git.exe" |
---|
113 | - gitexe32="C:\Program Files (x86)\Git\bin\git.exe" |
---|
114 | + gitexe="$PROGRAMFILES\Git\bin\git.exe" |
---|
115 | + gitexe32="$SYSTEMDRIVE\Program Files (x86)\Git\bin\git.exe" |
---|
116 | if [ ! -e "$gitexe" -a ! -e "$gitexe32" ]; then |
---|
117 | name=$WINGIT; url=$WINGIT_URL; arc=`basename "$url"` |
---|
118 | [ ! -e "$arc" ] && download "$url" |
---|
119 | @@ -1089,6 +1101,7 @@ function patchmingw() { |
---|
120 | function patchmingw32() { |
---|
121 | local gccversion=$(gcc -dumpversion) |
---|
122 | local path="/mingw/lib/gcc/mingw32/$gccversion/include" |
---|
123 | + shift |
---|
124 | |
---|
125 | $dosudo patch -p0 "$@" <<-EOF |
---|
126 | --- $path/float.h 2012-03-10 17:43:36 +0100 |
---|
127 | @@ -1877,6 +1890,7 @@ if [ ! -e "$stampconfig.$debug" -o -n "${!compcfg}" -o ! -e Makefile ]; then |
---|
128 | |
---|
129 | if [ "$MSYSTEM" = "MINGW32" ]; then |
---|
130 | args="$args -I $incdir/mysql -L `pwd -W`/../$MYSQLW/lib/opt -l mysql" |
---|
131 | + export QMAKESPEC=win32-g++ |
---|
132 | set -x |
---|
133 | cmd /c "configure.exe $args ${!compcfg}" |
---|
134 | set +x |
---|
135 | @@ -1952,7 +1966,13 @@ function helpQt() { |
---|
136 | exit 1 |
---|
137 | } |
---|
138 | if [ ! -e "$stampbuild" ] ; then |
---|
139 | - $make || helpQt |
---|
140 | + if [ "$qtbuildloop" = "yes" ]; then |
---|
141 | + while ! $make ; do |
---|
142 | + sleep 60 |
---|
143 | + done |
---|
144 | + else |
---|
145 | + $make || helpQt |
---|
146 | + fi |
---|
147 | touch "$stampbuild" |
---|
148 | rm -f "$stampinstall" |
---|
149 | fi |
---|
150 | @@ -2011,6 +2031,11 @@ elif [ "$clean" = "yes" ]; then |
---|
151 | fi |
---|
152 | |
---|
153 | mythtag=$( git describe) |
---|
154 | +case "$MYTHVER" in |
---|
155 | + master) |
---|
156 | + mythtag="master-`date +%F`" |
---|
157 | + ;; |
---|
158 | +esac |
---|
159 | banner "Building $name branch $branch ($MYTHBUILD)" |
---|
160 | |
---|
161 | # Apply patches |
---|
162 | @@ -2079,7 +2104,7 @@ if [ ! -e "$stampconfig${MYTHBUILD:+.$MYTHBUILD}" -o -n "$MYTHTV_CFG" \ |
---|
163 | case "$MYTHVER" in |
---|
164 | 0.23*) args="$args --disable-directfb" ;; |
---|
165 | 0.24*) args="$args --disable-directfb --enable-vaapi" ;; |
---|
166 | - ""|0.25*|master) args="$args --enable-vaapi" ;; |
---|
167 | + ""|0.25*|0.26*|0.27*|master) args="$args --enable-vaapi" ;; |
---|
168 | esac |
---|
169 | rprefix=".." |
---|
170 | case "$MYTHTARGET" in |
---|
171 | @@ -2102,6 +2127,8 @@ if [ ! -e "$stampconfig${MYTHBUILD:+.$MYTHBUILD}" -o -n "$MYTHTV_CFG" \ |
---|
172 | # Disable symbol-visibility or build problems on 0.24 & 0.23 |
---|
173 | # Also disabled on master to quieten warnings which otherwise hide real probs |
---|
174 | args="$args --disable-symbol-visibility" |
---|
175 | + args="$args --disable-w32threads" |
---|
176 | + args="$args --disable-vaapi" |
---|
177 | ;; |
---|
178 | MacOSX*) |
---|
179 | targetos="darwin" |
---|
180 | @@ -2189,7 +2216,7 @@ if [ ! -e "$stampconfig${MYTHBUILD:+.$MYTHBUILD}" -o -n "$MYTHPLUGINS_CFG" \ |
---|
181 | [ "$MYTHNETVISION" = "yes" ] || plugins="$plugins --disable-mythnetvision" |
---|
182 | case "$MYTHVER" in |
---|
183 | ""|0.23*|0.24*) [ "$MYTHWEATHER" = "yes" ] || plugins="$plugins --disable-mythweather" ;; |
---|
184 | - 0.25*|master) ;; |
---|
185 | + 0.25*|0.26*|master) ;; |
---|
186 | esac |
---|
187 | fi |
---|
188 | |
---|
189 | @@ -2280,30 +2307,35 @@ fi |
---|
190 | ############################################################################### |
---|
191 | # Create the installation |
---|
192 | ############################################################################### |
---|
193 | -mythlibs="myth mythfreemheg mythtv mythui mythupnp mythlivemedia" |
---|
194 | +#mythlibs="myth mythfreemheg mythtv mythui mythupnp mythlivemedia" |
---|
195 | +mythlibs="myth mythfreemheg mythtv mythui mythupnp" |
---|
196 | +mythextlibs="" |
---|
197 | if [ -z "$MYTHVER" ]; then |
---|
198 | case "$branch" in |
---|
199 | *-master) MYTHVER="master" ;; |
---|
200 | *-0*24) MYTHVER="0.24" ;; |
---|
201 | *-0*25) MYTHVER="0.25" ;; |
---|
202 | + *-0*26) MYTHVER="0.26" ;; |
---|
203 | esac |
---|
204 | fi |
---|
205 | case "$MYTHVER" in |
---|
206 | - 0.23*) mythlibs="$mythlibs mythdb" ;; |
---|
207 | - 0.24*) mythlibs="$mythlibs mythdb mythmetadata" ;; |
---|
208 | - 0.25*|master) mythlibs="$mythlibs mythbase mythmetadata mythservicecontracts mythprotoserver" ;; |
---|
209 | + 0.23*) mythlibs="$mythlibs mythdb mythlivemedia" ;; |
---|
210 | + 0.24*) mythlibs="$mythlibs mythdb mythmetadata mythlivemedia" ;; |
---|
211 | + 0.25*|0.26*) mythlibs="$mythlibs mythbase mythmetadata mythservicecontracts mythprotoserver mythlivemedia" ;; |
---|
212 | + master) mythlibs="$mythlibs mythbase mythmetadata mythservicecontracts mythprotoserver" |
---|
213 | + mythextlibs="$mythextlibs mythnzmqt mythqjson mythzmq" ;; |
---|
214 | *) mythlibs="$mythlibs mythbase mythmetadata mythservicecontracts mythprotoserver" |
---|
215 | echo "WARNING Installation untested with this version." ;; |
---|
216 | esac |
---|
217 | -ffmpeglibs="mythavcodec mythavformat mythavutil mythswscale" |
---|
218 | +ffmpeglibs="mythavcodec mythavformat mythavutil mythswscale mythswresample" |
---|
219 | case "$MYTHVER" in |
---|
220 | 0.24*|0.23*) ffmpeglibs="$ffmpeglibs mythavcore mythpostproc" ;; |
---|
221 | - 0.25*|master|"") ffmpeglibs="$ffmpeglibs mythpostproc" ;; |
---|
222 | + 0.25*|0.26*|master|"") ffmpeglibs="$ffmpeglibs mythpostproc" ;; |
---|
223 | esac |
---|
224 | xtralibs="xml2 xslt freetype mp3lame dvdcss exif ogg vorbis vorbisenc tag cdio cdio_cdda cdio_paranoia udf visual-0.4" |
---|
225 | QTDLLS="QtCore QtGui QtNetwork QtOpenGL QtSql QtSvg QtWebKit QtXml Qt3Support" |
---|
226 | case "$MYTHVER" in |
---|
227 | - ""|0.25*|master) QTDLLS="$QTDLLS QtScript" ;; |
---|
228 | + ""|0.25*|0.26*|master) QTDLLS="$QTDLLS QtScript" ;; |
---|
229 | esac |
---|
230 | |
---|
231 | if isWinTarget ; then |
---|
232 | @@ -2344,6 +2376,13 @@ if isWinTarget ; then |
---|
233 | done |
---|
234 | done |
---|
235 | |
---|
236 | + # mythextlibs |
---|
237 | + for lib in $mythextlibs ; do |
---|
238 | + for file in {$bindir,$libdir}/{lib,}$lib.dll ; do |
---|
239 | + [ -e "$file" ] && ln -s "$file" . |
---|
240 | + done |
---|
241 | + done |
---|
242 | + |
---|
243 | # External libs |
---|
244 | for lib in $xtralibs ; do |
---|
245 | for file in $bindir/lib$lib-*.dll ; do |
---|