Difference between revisions of "MythTV on Mac x86"

From MythTV Official Wiki
Jump to: navigation, search
(Changes Needed)
(Deleted very, very outdated text in favor of redirect to current info)
(128 intermediate revisions by 41 users not shown)
Line 1: Line 1:
MythTV currently does not build on the new Intel based Apple Macintosh platforms.  This page is intended to share information among the people attempting to get this working.
+
#REDIRECT [[Myth on Mac OS X]]
 
 
In the 'contrib' directory of the MythTV source code, there is a perl script which automates the build process for MythTV on MacOS systems.  The script is called osx-packager.pl.  My descriptions of changes needed assume that script as a starting point.
 
 
 
 
 
==Changes Needed==
 
Here's a brief summary of chages I made to get further into the build process (updated with Brendan White's config info):
 
 
 
* Enable backend, 'osx-packager.pl -enable-backend'.  Otherwise, the frontend fails when necessary components aren't available.
 
 
 
* Update QT version being used.  3.3.4 doesn't compile with gcc 4.0; 3.3.5 compiles but generates a bus error when displaying Myth menus. Using a development snapshot of 3.3.6 seems to work.  Replace the QT url in osx-packager with the following:  ftp://ftp.trolltech.com/qt/snapshots/qt-mac-free-3.3.6-snapshot-20060311.tar.gz
 
 
 
* Override URL for libdvdnav in osx-packager.pl, was not available where the script was looking for it.  I set it to: http://umn.dl.sourceforge.net/sourceforge/dvd/libdvdnav-0.1.10.tar.gz
 
 
 
* libdvdnav:  Endian byte swapping missing from bswap.h.  Probably due to not recognizing the arch.  See bswap changes described below.
 
 
 
* libexif: compile failed.  comment out the 'static' in exif-utils.c line 83.
 
 
 
* libdvdread:  Endian byte swapping missing from bswap.h.  Probably due to not recognizing the arch.  Instead of the generic else case for bswap, you can use the Apple-supplied routines:
 
#elif defined(__APPLE__)
 
#include <libkern/OSByteOrder.h>
 
#define B2N_16(x) x = OSSwapBigToHostConstInt16(x)
 
#define B2N_32(x) x = OSSwapBigToHostConstInt32(x)
 
#define B2N_64(x) x = OSSwapBigToHostConstInt64(x)
 
 
 
MythTV changes: 
 
 
 
* Update osx-packager.pl to add configure parameters used in building MythTV.  In the section "configure mythplugins, and mythtv, etc", the 'mythtv' portion should look something like this:
 
 
 
  'mythtv'
 
  =>  [
 
        '--disable-distcc',
 
        '--disable-mmx',
 
        '--arch=i686',
 
        '--extra-cxxflags=-msse -msse2 -msse3',
 
        '--prefix=' . $PREFIX,
 
      ],
 
 
 
* Fix libs/libavcodec/liba52/resample.c  --  Even though mmx has been disabled, there are some silly assumptions in this file.  remove the ifdef that includes resample_mmx.c.  Also remove the ifdef ARCH_X86 stanzas.
 
 
 
* 3rd bswap.h patch, in file 'libs/libmythdvdnav/bswap.h'.  See bswap changes described above.
 
 
 
* Fix libs/libfreemheg/BaseClasses.h (called from Actions.cpp), #include <malloc.h> to #include <sys/malloc.h>
 
 
 
== Current Status ==
 
 
 
Application successfully compiles.  MythTV menu system displays, and communicates with backend.
 
 
 
Seg Faults when trying to display video.  Doesn't display list of programs from backend.
 
 
 
==Useful Links==
 
[http://mplayerhq.hu/pipermail/ffmpeg-devel/2006-February/007608.html ffmpeg updates for mmx assembly code]
 
 
 
==Other Notes==
 
'/proc/cpuinfo/' is used to determine CPU type in linux builds.  In MacOS, "/usr/sbin/system_profiler SPHardwareDataType" could be used to determine the architecture and CPU type.
 
 
 
[[Category:MacOS]]
 

Revision as of 10:20, 28 August 2012

Redirect to: