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@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