[GRASS-dev] Mac OS X frameworks beta 2

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 :slight_smile: 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

I've been using a new Macbook to test this out - so unfortunately everything's new, complicating troubleshooting, but I'm catching up.

I downloaded the frameworks, and installed. Tried your GRASS.app, and it's working well, at least in light testing. Then tried compiling against your frameworks, and that worked once I got the hang of the flags. Finding this updated post of yours was a big help. Did my own compile of 6.1-RC1, and it went cleanly. Starting up the program, after choosing the mapset, two of the gis.m windows briefly appear (I think it's the credits screen and the command history window), then all disappears, and I'm left with only the GRASS prompt. Finally noticed that this was using the Aqua wish - so setting env vbls to use X11 wish, and it seems to be working fine.

Will keep playing, just wanted to send some feedback.

Cheers,
Scott

On 29-Jul-06, at 2:11 PM, William Kyngesburye wrote:

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 :slight_smile: 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

_______________________________________________
grass-dev mailing list
grass-dev@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass-dev

Good to hear the feedback. I'm not sure what's up with the Aqua Wish - did you use Apple's or the ActiveTcl? Apple's might have issues since it's a bit old. Has the same Aqua wish worked before? But, probably not anything to do with the frameworks.

The Aqua TclTk (IMHO) is not really usable anyways - for a "Mac" look and feel, it's not complete, there are still many GUI widgets that aren't native for some reason (ie sliders) so it ends up looking strange, and OSX widgets are often larger and mess with layout (or from another perspective, have more fluff around the edges and so cut off text labels, like in buttons).

Note - I've released a few more versions, and I felt it was ready to pull out of beta. Check out the current set of frameworks. I just added GD and PDFlib this weekend so I can work on switching my MapServer package over to the frameworks.

On Aug 6, 2006, at 9:47 AM, Scott Mitchell wrote:

I've been using a new Macbook to test this out - so unfortunately everything's new, complicating troubleshooting, but I'm catching up.

I downloaded the frameworks, and installed. Tried your GRASS.app, and it's working well, at least in light testing. Then tried compiling against your frameworks, and that worked once I got the hang of the flags. Finding this updated post of yours was a big help. Did my own compile of 6.1-RC1, and it went cleanly. Starting up the program, after choosing the mapset, two of the gis.m windows briefly appear (I think it's the credits screen and the command history window), then all disappears, and I'm left with only the GRASS prompt. Finally noticed that this was using the Aqua wish - so setting env vbls to use X11 wish, and it seems to be working fine.

Will keep playing, just wanted to send some feedback.

Cheers,
Scott

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