[mythtv] Cross-compiling on Mac OS X 10.6 to 10.4 (tiger)

Nigel Pearson nigel at ind.tansu.com.au
Mon Feb 7 12:29:03 UTC 2011


> So, in a plea to all those out there with Macs, are any of you running tiger or leopard, prior to 10.5.6 and can build either of the fixes/0.23 and fixes/0.24 natively, it would be great to have those images up on the the sourceforge site!
> 
> If there's interest for cross-compiling for 10.4, I'm very much eager to help in this regard but I'd probably want to to that for head.


Well, I haven't cracked X-compiling yet,
but 9 hours hacking yesterday, and 3 today,
let me build HEAD on 10.4 using these changes


diff -ru GIT/myth/mythtv/configure src/mythtv/configure
--- GIT/myth/mythtv/configure	2011-01-11 23:05:28.000000000 +1100
+++ src/mythtv/configure	2011-02-07 21:59:21.000000000 +1100
@@ -3095,13 +3095,14 @@
             disable mmx
             enable disable_mmx_for_debugging   # prevent later call to die
         fi
+        disable ffmpeg
         disable opengl_vsync
         disable v4l
         disable x11
         # Workaround compile errors from missing gmtime_r/localtime_r/uint def
         CFLAGS=`echo $CFLAGS | sed 's/-D_POSIX_C_SOURCE=200112//'`
         ###### Standard ffmpeg configure stuff follows:
-        SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress'
+        SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,99 -Wl,-read_only_relocs,suppress'
         strip="${strip} -x"
         add_ldflags -Wl,-dynamic,-search_paths_first
         SLIBSUF=".dylib"
@@ -4621,7 +4622,7 @@
 
 if test $target_os = darwin; then
   # Qt, by default builds .app bundles everywhere. Prevent this.
-  enabled mac_bundle || echo "CONFIG -= app_bundle" >> $MYTH_CONFIG_MAK
+  enabled mac_bundle || echo "CONFIG-=app_bundle" >> $MYTH_CONFIG_MAK
 fi
 
 cat > $TMPH <<EOF
diff -ru GIT/myth/mythtv/libs/libmythtv/darwinfirewiredevice.cpp src/mythtv/libs/libmythtv/darwinfirewiredevice.cpp
--- GIT/myth/mythtv/libs/libmythtv/darwinfirewiredevice.cpp	2010-12-29 22:59:07.000000000 +1100
+++ src/mythtv/libs/libmythtv/darwinfirewiredevice.cpp	2011-02-07 08:35:54.000000000 +1100
@@ -30,7 +30,6 @@
 
 // Apple Firewire example headers
 #include <AVCVideoServices/StringLogger.h>
-#include <AVCVideoServices/AVSShared.h>
 #include <AVCVideoServices/MPEG2Receiver.h>
 
 // header not used because it also requires MPEG2Transmitter.h
diff -ru GIT/myth/mythtv/libs/libmythtv/privatedecoder_vda.cpp src/mythtv/libs/libmythtv/privatedecoder_vda.cpp
--- GIT/myth/mythtv/libs/libmythtv/privatedecoder_vda.cpp	2010-12-29 22:59:10.000000000 +1100
+++ src/mythtv/libs/libmythtv/privatedecoder_vda.cpp	2011-02-07 08:24:45.000000000 +1100
@@ -191,7 +191,7 @@
         CFDictionaryCreateMutable(kCFAllocatorDefault, 1,
                                   &kCFTypeDictionaryKeyCallBacks,
                                   &kCFTypeDictionaryValueCallBacks);
-    OSType cvPixelFormatType = kCVPixelFormatType_422YpCbCr8;
+    OSType cvPixelFormatType = '2vuy';
     CFNumberRef pixelFormat  = CFNumberCreate(kCFAllocatorDefault,
                                               kCFNumberSInt32Type,
                                               &cvPixelFormatType);
diff -ru GIT/myth/mythtv/libs/libmythui/mythrender_opengl.cpp src/mythtv/libs/libmythui/mythrender_opengl.cpp
--- GIT/myth/mythtv/libs/libmythui/mythrender_opengl.cpp	2011-01-20 13:03:35.000000000 +1100
+++ src/mythtv/libs/libmythui/mythrender_opengl.cpp	2011-02-07 08:05:43.000000000 +1100
@@ -1498,7 +1498,7 @@
 
     GLint maxtexsz = 0;
     glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxtexsz);
-    glGetIntegerv(GL_MAX_TEXTURE_UNITS, &m_max_units);
+    glGetIntegerv(GL_MAX_TEXTURE_UNITS, (GLint*)&m_max_units);
     m_max_tex_size = (maxtexsz) ? maxtexsz : 512;
 
     m_extensions = (const char*) glGetString(GL_EXTENSIONS);
diff -ru GIT/myth/mythtv/libs/libmythui/util-osx-cocoa.mm src/mythtv/libs/libmythui/util-osx-cocoa.mm
--- GIT/myth/mythtv/libs/libmythui/util-osx-cocoa.mm	2010-12-29 22:59:13.000000000 +1100
+++ src/mythtv/libs/libmythui/util-osx-cocoa.mm	2011-02-07 08:02:03.000000000 +1100
@@ -48,5 +48,5 @@
     if (!screen)
         return NULL;
     NSDictionary* desc = [screen deviceDescription];
-    return [[desc objectForKey:@"NSScreenNumber"] intValue];
+    return (CGDirectDisplayID)[[desc objectForKey:@"NSScreenNumber"] intValue];
 }
diff -u GIT/packaging/OSX/build/osx-packager.pl osx-packager.pl
--- GIT/packaging/OSX/build/osx-packager.pl	2011-02-05 21:01:11.000000000 +1100
+++ osx-packager.pl	2011-02-07 23:05:37.000000000 +1100
@@ -68,7 +68,7 @@
         'mysqlclient',
         #'dbus',
         'qt-4.6',
-        'yasm',
+        'make'
       ],
   'mythplugins'
   =>  [
@@ -252,6 +252,11 @@
     'url'  => 'http://samba.org/ftp/ccache/ccache-3.1.4.tar.bz2',
   },
 
+  'make' =>
+  {
+    'url' => 'file://make-3.82.tar.gz',
+  }
+
 );
 
 
@@ -522,7 +527,7 @@
 $ENV{'QTDIR'} = $PREFIX;
 
 # If environment is setup to use distcc, take advantage of it
-our $standard_make = '/usr/bin/make';
+our $standard_make = '/Volumes/MythBuild/.osx-packager/build/bin/make';
 our $parallel_make = $standard_make;
 our $parallel_make_flags = '';
 

(also attached)


So, I have a bare MythFrontend.app (no plugins).
Untested for now (apart from load/run on 10.4 and 10.6).
OpenGL is probably broken. Head hurts. Gotta go to bed.

Could be tarred up for others to test, but might be just
as fast for someone else to build with those changes?


Note 1: My source tree was g8f6f7aa

Note 2: The 'yasm' removal might have been accidental.

Note 3: Git did not build on 10.4. I had to take an already
cloned/checked out tree and use --srcdir --force to build it.

Note 4: Because there was no git available:

% MythFrontend.app/Contents/MacOS/MythFrontend --version
Please attach all output as a file in bug reports.
MythTV Version   : Unknown
...

should be v0.25pre-987-g8f6f7aa


--
Nigel Pearson, nigel at ind.tansu.com.au|Smart mice ... varmints|
Telstra Net. Eng., Sydney, Australia |used vector formulas.  |
Office: 9202 3900    Fax:  9212 6348 |  How'd you catch them?|
Mobile: 0408 664435  Home: 9792 6998 |Smart cheese.          |


-------------- next part --------------
A non-text attachment was scrubbed...
Name: 104diffs.patch
Type: application/octet-stream
Size: 4738 bytes
Desc: not available
URL: <http://mythtv.org/pipermail/mythtv-dev/attachments/20110207/0b5d3ad9/attachment.obj>


More information about the mythtv-dev mailing list