[GRASS-dev] Mac OS X Xcode project available

William Kyngesburye woklist at kyngchaos.com
Sat Dec 16 18:45:06 EST 2006


Available on my GRASS download page.

http://www.kyngchaos.com/software/unixport/grass

Please test it.  Currently works with today's 6.3 CVS snapshot.  I'll  
work on adapting it for 6.2.

It was quite an adventure, and I thought GRASS was too complex at  
first (mostly just shear volume of targets, not code).  But I got  
config file hint from the OSSIM folks that really helped out, so I  
could split it into sub-projects.  Unfortunately, there is no  
automation in Xcode for generating projects, just controlling them  
for various build tasks, so it was a bit tedious (130+ raster targets  
and 75 vector targets for the big ones!).  I was able to hack the  
project files a little to speed up the process some.

There still isn't much I can do to automate conditional targets for  
optional modules, so those must be selected manually and built  
separately.

I plan on either sub-projects, or separate projects (more likely),  
for a few dependencies that currently have no universal binaries  
available or easy universal builds from source.  Gpsbabel, ffmpeg,  
and an X11 TclTk are a few.  MySQL is a possibility - there are  
official binaries for PPC and Intel, but they are separate and don't  
include the server library needed for the mesql driver.


Cut-n-paste from my web blurb:

The Xcode project is an alternative method for building GRASS and the  
GRASS.app wrapper from source. Build GRASS and the Mac OS X  
application all at once, no need for configure-make-install in the  
Terminal. It easily builds a Universal binary for PPC and Intel Macs.  
And with the right configuration, it can build a Panther-compatible  
application.



The app startup wrapper does not use Python, like previous startups,  
since that was causing trouble. Instead, a simple AppleScript starts  
GRASS. This also has a smaller binary overhead ( <100KB, vs. the many  
MBs of the Python startup).



Configuration for dependencies is done with a xcconfig text file.  
There are options for using unix-style libraries or my frameworks.  
There are also options for automatically bundling some libraries in  
the application package, for a more portable GRASS.app.




-----
William Kyngesburye <kyngchaos at kyngchaos.com>
http://www.kyngchaos.com/

First Pogril: Why is life like sticking your head in a bucket filled  
with hyena offal?
Second Pogril: I don't know.  Why IS life like sticking your head in  
a bucket filled with hyena offal?
First Pogril: I don't know either.  Wretched, isn't it?

-HitchHiker's Guide to the Galaxy





More information about the grass-dev mailing list