Mac OS X frameworks beta 2

William Kyngesburye woklist at KYNGCHAOS.COM
Sat Jul 29 11:11:25 PDT 2006


Fine tuned a few things.  For all frameworks, they should work in  
Panther now (10.3.9).  It was simpler than I made it sound ^_^  I  
also switched to disk images for distribution because I was having  
problems with Apple's zipping.

The GEOS framework includes both normal C++ and C APIs in one.  So,  
saying -framework GEOS is the same as saying -lgeos -lgeos_c, like I  
do with the UnixImageIO framework.

For the UnixImageIO framework, I linked the unix/lib/*.dylib's to the  
framework itself instead of the internal libraries, so no messing  
around with configure scripts should be needed now.  And that  
effectively hides the internal libraries.

Curl was added internally to the GDAL framework for the Panther  
compatibility.

I may have broken something else, and there may still be other issues  
to work out, but it's beta.


To go along with this (sorry for the cross-posting on this), another  
GRASS.app beta.  It now should work in Panther (but I haven't tested  
it much there).  I made it automatically start X11 if not running  
already.  Updated to today's CVS snapshot.


As an example to use the frameworks, here's part of my GRASS  
configure line:

./configure --enable-sysv --with-freetype --with-freetype-includes="/ 
Library/Frameworks/FreeType.framework/Headers/freetype2 \
/Library/Frameworks/FreeType.framework/Headers" \
--with-freetype-libs=/Library/Frameworks/FreeType.framework/unix/lib \
--with-gdal=/Library/Frameworks/GDAL.framework/Programs/gdal-config \
--with-proj --with-proj-includes=/Library/Frameworks/PROJ.framework/ 
Headers \
--with-proj-libs=/Library/Frameworks/PROJ.framework/unix/lib \
--with-proj-share=/Library/Frameworks/PROJ.framework/Resources/proj \
--with-jpeg-includes=/Library/Frameworks/UnixImageIO.framework/Headers \
--with-jpeg-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \
--with-png-includes=/Library/Frameworks/UnixImageIO.framework/Headers \
--with-png-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \
--with-tiff-includes=/Library/Frameworks/UnixImageIO.framework/Headers \
--with-tiff-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \
--with-cxx --with-sqlite \
--with-sqlite-libs=/Library/Frameworks/SQLite3.framework/unix/lib \
--with-sqlite-includes=/Library/Frameworks/SQLite3.framework/Headers \
--with-fftw-includes=/Library/Frameworks/FFTW3.framework/Headers \
--with-fftw-libs=/Library/Frameworks/FFTW3.framework/unix/lib \
--with-tcltk-includes=/usr/local/grasslibs/include \
--with-tcltk-libs=/usr/local/grasslibs/lib \
--with-x --without-motif --without-glw --with-opengl=x11

The Tcl/Tk libs are an X11 build.  I left out the various DB options,  
you would use those as you normally would.

Notice how the includes point to the Headers folder in the  
frameworks, and the libs point to the unix/lib in the frameworks.   
Since the actual binary of the library is the framework name, the  
unix/lib has a normal lib*.dylib symlinked to the framework binary,  
so detecting and using -lfoo works.

If a *-config script is used, like for GDAL, the script will give you  
the correct -framework and include flags to use.

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

"Oh, look, I seem to have fallen down a deep, dark hole.  Now what  
does that remind me of?  Ah, yes - life."

- Marvin



More information about the MapServer-users mailing list