Difference between revisions of "MythTV on Mac x86"

From MythTV Official Wiki
Jump to: navigation, search
(Changes Needed)
Line 5: Line 5:
  
 
==Changes Needed==
 
==Changes Needed==
Here's a brief summary of chages I made to get further into the build process:
+
Here's a brief summary of chages I made to get further into the build process (updated with Brendan White's config info):
  
* Had to 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
+
* 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.  Added the generic example macro in the 'else' case & it compiled.
 
* libdvdnav:  Endian byte swapping missing from bswap.h.  Probably due to not recognizing the arch.  Added the generic example macro in the 'else' case & it compiled.
  
* libexif: compile failed.  comment out the 'static' that the compiler complained about to make it build.
+
* 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.  Added the generic example macro in the 'else' case & it compiled.
 
* libdvdread:  Endian byte swapping missing from bswap.h.  Probably due to not recognizing the arch.  Added the generic example macro in the 'else' case & it compiled.
Line 18: Line 18:
 
MythTV changes:   
 
MythTV changes:   
  
The things I set as parameters to the MythTV configure script (added in osx-packager.pl) were:
+
* 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:
  
* -march=i386, since it didn't detect the CPU automatically.
+
  'mythtv'
 +
  =>  [
 +
        '--disable-distcc',
 +
        '--disable-mmx',
 +
        '--arch=i686',  
 +
        '--extra-cxxflags=-msse -msse2 -msse3',
 +
        '--prefix=' . $PREFIX,
 +
      ],
  
* --disable-distcc, because it errored out looking for distcc by defaultThis leads to the following build error, in libavcodec, related to mmx:
+
* Fix mythtv/libs/libavcodec/liba52/resample.c  -- Even though mmx has been disabled, there are some silly assumptions in this fileremove the ifdef that includes resample_mmx.c.  Also remove the ifdef ARCH_X86 stanzas.
  
      ld: Undefined symbols:
+
* 3rd bswap.h patch, this time in mythlibdvd
      magicF2W
 
      wm0101
 
      wm1010
 
      wm1100
 
  
* adding  --enable-mmx gives me:
+
* Fix BaseClasses.h (called from Actions.cpp), #include <malloc.h> to #include <sys/malloc.h>
  
      error, no memalign() but sse enabled, either disable it or use --enable-memalign-hack
 
  
* adding --enable-memalign-hack  gives me an error compiling fdct_mmx.c:
+
== Current Status ==
  
      {standard input}:unknown:file contains unmatched .macro and .endmacro for: FDCT_ROW_SSE2_H1it
+
The binary is compiling now. But, when it is executed, the following error is generated:
  
 
+
    dyld: Symbol not found: __ZTV24CaptionServiceDescriptor
And, that's where I'm currently at.. looking into the updates needed to compile the ffmpeg stuff.
+
      Referenced from: /Users/tji/Build/MythTV/MythFrontend.app/Contents/MacOS/./../Frameworks/mythtv.framework/mythtv
 +
      Expected in: flat namespace
 +
    Trace/BPT trap
  
 
==Useful Links==
 
==Useful Links==
 
[http://mplayerhq.hu/pipermail/ffmpeg-devel/2006-February/007608.html ffmpeg updates for mmx assembly code]
 
[http://mplayerhq.hu/pipermail/ffmpeg-devel/2006-February/007608.html ffmpeg updates for mmx assembly code]

Revision as of 01:56, 11 March 2006

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.

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):

  • libdvdnav: Endian byte swapping missing from bswap.h. Probably due to not recognizing the arch. Added the generic example macro in the 'else' case & it compiled.
  • 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. Added the generic example macro in the 'else' case & it compiled.


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 mythtv/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, this time in mythlibdvd
  • Fix BaseClasses.h (called from Actions.cpp), #include <malloc.h> to #include <sys/malloc.h>


Current Status

The binary is compiling now. But, when it is executed, the following error is generated:

   dyld: Symbol not found: __ZTV24CaptionServiceDescriptor
     Referenced from: /Users/tji/Build/MythTV/MythFrontend.app/Contents/MacOS/./../Frameworks/mythtv.framework/mythtv
     Expected in: flat namespace
   Trace/BPT trap

Useful Links

ffmpeg updates for mmx assembly code