[MAC] XBMC_HOME / Runtime
#1
The OSX Compilation HOWTO just walks us through building the binary and says "Set the XBMC_HOME environment variable to point to a runtime environment (a good one is the directory inside XBMC.app, namely XBMC.app/Content/Resources/XBMC)"

Where can an up to date runtime environment be obtained or how can it be built?

Yes, I know it's in the 8.10 dmg. I want to know how *THAT* runtime got packaged, since I'd like to replicate it in MacPorts.

Thanks.
Reply
#2
Actually, you can just set it to the SVN working directory and it'll be just fine - that's how I run it.

I'll leave it to d4rk or davilla to answer about the packaging.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#3
jeremyhu Wrote:The OSX Compilation HOWTO just walks us through building the binary and says "Set the XBMC_HOME environment variable to point to a runtime environment (a good one is the directory inside XBMC.app, namely XBMC.app/Content/Resources/XBMC)"

Where can an up to date runtime environment be obtained or how can it be built?

Yes, I know it's in the 8.10 dmg. I want to know how *THAT* runtime got packaged, since I'd like to replicate it in MacPorts.

Thanks.

if you look at the xcode project you will see several targets.

configure
build python
build libraries
build XBMCHelper
build XBMCTex
build skins
XBMC.app

The first two will be built when XBMC is built. The rest will also need to be built. The last "XBMC.app" makes the app.

There are a few things missing as they are post build packaging steps for skins and such. d4rk will have to fill in here.
Reply
#4
(sorry, autoconf is more my forte... I don't use xcode much... I notice that the autoconf approach doesn't work out of the box on OSX though...)

When I build all the projects, xcodebuild constantly increases in memory usage until malloc() fails and it bus errors...

At that time, it had a child process (which was orphaned and still running) for a bourne script that is doing install_name_tool magic on the executables. That script had been running for 4-5 hours... and id did have some 'echo Processing XXXXX' in it, but I didn't see the output. Is there an option for xcodebuild that I need to set to see the output of this script and maybe get a hint as to what's going on?

Code:
building XBMCTex
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o AnimatedGif.o AnimatedGif.cpp
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o Bundler.o Bundler.cpp
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o SurfaceSDL.o SurfaceSDL.cpp
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o XBMCTex.o XBMCTex.cpp
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o xbox.o xbox.cpp
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o xwinapi.o xwinapi.cpp
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o XFileUtils.o XFileUtils.cpp
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o XHandle.o XHandle.cpp
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o XTimeUtils.o XTimeUtils.cpp
gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -DUSE_SDL -D_LINUX -I. -I../../guilib -I../../xbmc -I../../xbmc/linux/ -I../../xbmc/utils -I/opt/local/include -c -o sha.o sha.c
g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 AnimatedGif.o Bundler.o SurfaceSDL.o XBMCTex.o xbox.o xwinapi.o XFileUtils.o XHandle.o XTimeUtils.o sha.o -L/opt/local/lib -lSDLmain -framework Foundation -framework Cocoa -lSDL -lSDL_image -llzo -o XBMCTex

xcodebuild(18875,0xb0196000) malloc: *** mmap(size=2097152) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
xcodebuild(18875,0xb0196000) malloc: *** mmap(size=2097152) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
xcodebuild(18875,0xb0196000) malloc: *** mmap(size=2097152) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
sh: line 1: 18875 Bus error               xcodebuild -project XBMC.xcodeproj -alltargets -configuration Debug build OBJROOT=build/ SYMROOT=build/ -parallelizeTargets
^C
Reply
#5
you are in uncharted territory Smile I build from XCode itself and not from the command-line.

install_name_tool is from the target XBMC.app. Open the XCode project and right-click on the run script for that target. That will show the script.

you might want to build the targets one at a time. There is order dependencies. XBMC.app is the very last thing you want to do.

I'll admit, the XCode project is a real hack, been working on trying to fix it up but it's difficult with all the internal/external libs. This weekend, I'm starting an attempt to get the configure/make command-line working.
Reply
#6
Ok, so it looks like -alltargets isn't good... it ends up trying to build the 'python clean' target after XBMC.app (it seems odd that there is a 'build' target to 'clean' the python build... but I'm guessing there's some reason for it)...

I'm trying now with just the XBCM.app target and got rid of all the install_name_tool foo in the XBMC.app target since we don't really need that magic for macports (still, it'd be nice to know why it was blowing up...
Reply
#7
jeremyhu Wrote:Ok, so it looks like -alltargets isn't good... it ends up trying to build the 'python clean' target after XBMC.app (it seems odd that there is a 'build' target to 'clean' the python build... but I'm guessing there's some reason for it)...

run scripts in XCode do not get the clean message Smile bug in XCode so you have to do it manually.

You never answered my previous question. Are you building under MacPorts 1.6.0 or a later version?
Reply
#8
I'm using HEAD (which isn't much different than 1.7.0).
Reply
#9
Here's a list of all files not in XBMC.app after building the XBMC.app target that were found in the XBMC.app off the distributed dmg.

http://people.freedesktop.org/~jeremyhu/...issing.txt
Reply
#10
jeremyhu Wrote:Here's a list of all files not in XBMC.app after building the XBMC.app target that were found in the XBMC.app off the distributed dmg.

http://people.freedesktop.org/~jeremyhu/...issing.txt

Atleast for some of these it looks like:

1) XBMCHelper needs to be added as a dependency to XBMC.app in the xcode project
2) XBMC.app target needs to copy the visualizations but isn't. Where are the rest of those plugins coming from?
Reply
#11
jeremyhu Wrote:Atleast for some of these it looks like:

1) XBMCHelper needs to be added as a dependency to XBMC.app in the xcode project
2) XBMC.app target needs to copy the visualizations but isn't. Where are the rest of those plugins coming from?

They don't live in the XBMC svn but in the plugin svn. They get qualified for release code then merged in the packaging for release builds.

The XCode project was never designed for building a complete packaged version of XBMC. That's its main problem and is due to the legacy developers being extremely slack. You should have seen it before I started making changes Smile
Reply
#12
davilla Wrote:They don't live in the XBMC svn but in the plugin svn. They get qualified for release code then merged in the packaging for release builds.

The XCode project was never designed for building a complete packaged version of XBMC. That's its main problem and is due to the legacy developers being extremely slack. You should have seen it before I started making changes Smile

Well I've got a Portfile that is almost there. There are just a few problems:
1) I'm doing 'svn extract ...' to get the source, but we need a tarball for it to be merged into MacPorts... If necessary, I'll tarball up my own svn snapshot, but I'd prefer something more official.

2) I'm not building anything in 'extras' yet.

3) XBMCHelper is missing. How is this built?
Reply
#13
jeremyhu Wrote:Well I've got a Portfile that is almost there. There are just a few problems:
1) I'm doing 'svn extract ...' to get the source, but we need a tarball for it to be merged into MacPorts... If necessary, I'll tarball up my own svn snapshot, but I'd prefer something more official.


2) I'm not building anything in 'extras' yet.

3) XBMCHelper is missing. How is this built?

1) depends on what you want.

http://downloads.sourceforge.net/xbmc/XB...g_mirror=0

is the official atlantis release but OSX had a bug fix which can be pulled from

http://xbmc.svn.sourceforge.net/viewvc/x...z?view=tar

3) There's a target in the xcode project for XBMCHelper. It does

Quote: export MACOSX_DEPLOYMENT_TARGET=10.4
cd "$SRCROOT"/tools/EventClients/Clients/AppleRemote
make clean
make

cp -f XBMCHelper "$SRCROOT"/
Reply
#14
Thanks, I didn't realize there tarballs from the sf.net site. http://xbmc.org/download just mentions svn for source...

XBMC.tar.gz ugg... tarballs should have versions in the filename. That's not very distributable... =/

I'll just use the official Atlantis release and make a diff between it and the other taball...

as for XBMCHelper:

Code:
Error: Target org.macports.build returned: shell command "cd "/opt/local/var/macports/build/_Users_jeremy_src_macports-trunk_dports_multimedia_xbmc/work/XBMC-16965" && xcodebuild -project XBMC.xcodeproj -target "XBMCHelper" -configuration Release build OBJROOT=build/ SYMROOT=build/ -parallelizeTargets" returned error 1
Command output: xcodebuild: Warning: no valid targets in target list.  Building default target.
Unknown target: XBMCHelper
Reply
#15
Ah nevermind... I should've checked that URL was just to sf's svn tarball generator.

I'm hoping the tags mean what I think they mean, so I just need to:
Code:
svn diff http://xbmc.svn.sourceforge.net/svnroot/xbmc/tags/8.10_Atlantis-linux-osx-win32  http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/8.10_Atlantis-linux-osx-win32

And I'm hoping that the XBMCHelper target is in the 8.10_Atlantis-linux-osx-win32 branch... I've been working off the linuxport branch...
Reply

Logout Mark Read Team Forum Stats Members Help
[MAC] XBMC_HOME / Runtime0