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