|
|
(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]]
| |