[GRASS-user] Problems with OpenGL when compiling grass-6.4.0 on Mac OS X 10.5.4

John C. Tull john.tull at wildnevada.org
Sun Sep 21 11:21:18 EDT 2008


On Sep 20, 2008, at 1:15 PM, Michael Barton wrote:

> Elvis,
>
> You can compile GRASS 6.4 with TclTk for X11 for Mac with a bit of  
> tweaking, but I now recommend that you compile it for TclTk 8.5  
> aqua. You can still have X11 if you need it (e.g., for old GRASS  
> display commands). TclTk 8.5 has finally solved the issues that  
> earlier versions of aqua TclTk had, and both works well and looks  
> nice. All of GRASS, including NVIZ will now run in aqua this way. It  
> uses the native Mac OpenGL instead of the X11 OpenGL. I've worked  
> with William Kyngesbury over the past month or so to work out a  
> formula for doing this. Here is the information.
>
> First, you need TclTk 8.5 aqua. You can compile it from source, but  
> I recently found out that the Active States TclTk binaries will work  
> fine. If you want to compile it from source, however, here are  
> abbreviated instructions.
>
> 1) download TclTk 8.5.3 source (or a later version if available)
> 2) cd into ../tcl8.5.3/unix
> 3) ./configure --enable-framework --enable-threads
> 4) make
> 5) sudo make install
> 6) cd into ../tk8.5.3/unix
> 7) ./configure --enable-framework --enable-threads --enable-aqua
> 8) make
> 9) sudo make install
>
> Next set up your Mac environment (I'm assuming an intel chip)
> 1) open a terminal
> 2) set the following environmental variables (you can leave out -g  
> if you don't want debug enabled)
>
> export CFLAGS="-arch i386 -Os -g"
> export CFLAGS="-arch i386 -Os -g"
> export LDFLAGS="-arch i386 -Os -g"
> export NAD2BIN=/Library/Frameworks/PROJ.framework/Programs/nad2bin
>
> Next, configure and make
> 1) cd into your GRASS source tree folder
> 2) Here is my configure string. Note: my configure string puts GRASS  
> into /Applications/GRASS; you can change that with the --prefix  
> setting. It also assumes that you have a current installation of  
> MacPython from the python.org site and the most current version of  
> wxPython installed. This is for the new GUI. If you don't want this,  
> leave out the --with-python and --with-wxwidgets flags. Also note  
> that with OS X 10.5 and wxPython 2.8.0 and above, you no longer need  
> to install Python from the python.org site. You can just install  
> wxPython and it will work fine (but you'll have to change the  
> configure flags to reflect this; stuff will be in /usr/bin and /usr/ 
> lib instead of /usr/local/bin and /usr/local/lib).
>
> ./configure --with-freetype --with-freetype-includes="/Library/ 
> Frameworks/FreeType.framework/unix/include/freetype2 /Library/ 
> Frameworks/FreeType.framework/unix/include" --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/unix/include --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/unix/include -- 
> with-jpeg-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib -- 
> with-png-includes=/Library/Frameworks/UnixImageIO.framework/unix/ 
> include --with-png-libs=/Library/Frameworks/UnixImageIO.framework/ 
> unix/lib --with-tiff-includes=/Library/Frameworks/ 
> UnixImageIO.framework/unix/include --with-tiff-libs=/Library/ 
> Frameworks/UnixImageIO.framework/unix/lib --without-postgres -- 
> without-mysql --with-odbc --with-sqlite --with-sqlite-libs=/Library/ 
> Frameworks/SQLite3.framework/unix/lib --with-sqlite-includes=/ 
> Library/Frameworks/SQLite3.framework/unix/include --with-fftw- 
> includes=/Library/Frameworks/FFTW3.framework/unix/include --with- 
> fftw-libs=/Library/Frameworks/FFTW3.framework/unix/lib --with-x -- 
> with-cxx --with-opengl=aqua --without-readline --prefix=/ 
> Applications/GRASS --enable-macosx-app --with-python=/usr/local/bin/ 
> python-config --with-wxwidgets=/usr/local/lib/wxPython- 
> unicode-2.8.8.1/bin/wx-config --with-tcltk-includes="/Library/ 
> Frameworks/Tcl.framework/Headers /Library/Frameworks/Tk.framework/ 
> Headers /Library/Frameworks/Tk.framework/PrivateHeaders"
>
> 3) run make
>
>
> Finally, make some final adjustments for aqua and install GRASS. Do  
> this AFTER running make
>
> 1) In the GRASS source tree, edit the tcltklibs line in ../include/ 
> make/platform.make
>
> It will read...
>
> TCLTKLIBS = -Tcl -Tk
>
> Change it to read...
>
> TCLTKLIBS = -framework Tcl -framework Tk
>
> 2) run sudo make install
>
>
> Let us know how it goes
> Michael

This is a great set of instructions. Nonetheless, an opengl error does  
arise for me:

Started compilation: Sun Sep 21 08:04:55 PDT 2008
--
Errors in:
/Users/jctull/sources/grass6.4.0/lib/ogsf
/Users/jctull/sources/grass6.4.0/lib/nviz
/Users/jctull/sources/grass6.4.0/gui/wxpython/nviz
/Users/jctull/sources/grass6.4.0/imagery/i.atcorr
/Users/jctull/sources/grass6.4.0/visualization/nviz2/cmd
/Users/jctull/sources/grass6.4.0/visualization/nviz
--
In case of errors please change into the directory with error and run  
'make'.
If you get multiple errors, you need to deal with them in the order they
appear in the error log. If you get an error building a library, you  
will
also get errors from anything which uses the library.
--
Finished compilation: Sun Sep 21 08:12:37 PDT 2008
make: *** [default] Error 1


And from the ogsf lib directory, running make shows:

cc -dynamiclib -compatibility_version 6.4 -current_version 6.4 - 
install_name /Applications/GRASS-6.4.app/Contents/MacOS/lib/ 
libgrass_ogsf.dylib -o /Users/jctull/sources/grass6.4.0/dist.i386- 
apple-darwin9.5.0/lib/libgrass_ogsf.6.4.svn.dylib -L/Users/jctull/ 
sources/grass6.4.0/dist.i386-apple-darwin9.5.0/lib -arch i386 -Os -g - 
arch i386 -Os -g  -L/usr/local/pgsql/lib   OBJ.i386-apple-darwin9.5.0/ 
GK2.o OBJ.i386-apple-darwin9.5.0/GP2.o OBJ.i386-apple-darwin9.5.0/ 
GS2.o OBJ.i386-apple-darwin9.5.0/GSX.o OBJ.i386-apple-darwin9.5.0/ 
GS_util.o OBJ.i386-apple-darwin9.5.0/GV2.o OBJ.i386-apple-darwin9.5.0/ 
GVL2.o OBJ.i386-apple-darwin9.5.0/Gp3.o OBJ.i386-apple-darwin9.5.0/ 
Gs3.o OBJ.i386-apple-darwin9.5.0/Gv3.o OBJ.i386-apple-darwin9.5.0/ 
Gvl3.o OBJ.i386-apple-darwin9.5.0/gk.o OBJ.i386-apple-darwin9.5.0/gp.o  
OBJ.i386-apple-darwin9.5.0/gpd.o OBJ.i386-apple-darwin9.5.0/gs.o  
OBJ.i386-apple-darwin9.5.0/gs_bm.o OBJ.i386-apple-darwin9.5.0/ 
gs_norms.o OBJ.i386-apple-darwin9.5.0/gs_query.o OBJ.i386-apple- 
darwin9.5.0/gsd_cplane.o OBJ.i386-apple-darwin9.5.0/gsd_fonts.o  
OBJ.i386-apple-darwin9.5.0/gsd_fringe.o OBJ.i386-apple-darwin9.5.0/ 
gsd_img_mpeg.o OBJ.i386-apple-darwin9.5.0/gsd_img_ppm.o OBJ.i386-apple- 
darwin9.5.0/gsd_img_tif.o OBJ.i386-apple-darwin9.5.0/gsd_label.o  
OBJ.i386-apple-darwin9.5.0/gsd_legend.o OBJ.i386-apple-darwin9.5.0/ 
gsd_objs.o OBJ.i386-apple-darwin9.5.0/gsd_prim.o OBJ.i386-apple- 
darwin9.5.0/gsd_surf.o OBJ.i386-apple-darwin9.5.0/gsd_views.o OBJ.i386- 
apple-darwin9.5.0/gsd_wire.o OBJ.i386-apple-darwin9.5.0/gsdiff.o  
OBJ.i386-apple-darwin9.5.0/gsdrape.o OBJ.i386-apple-darwin9.5.0/gsds.o  
OBJ.i386-apple-darwin9.5.0/gsget.o OBJ.i386-apple-darwin9.5.0/gv.o  
OBJ.i386-apple-darwin9.5.0/gv_quick.o OBJ.i386-apple-darwin9.5.0/gvd.o  
OBJ.i386-apple-darwin9.5.0/gvl.o OBJ.i386-apple-darwin9.5.0/gvl_calc.o  
OBJ.i386-apple-darwin9.5.0/gvl_calc2.o OBJ.i386-apple-darwin9.5.0/ 
gvl_file.o OBJ.i386-apple-darwin9.5.0/gvld.o OBJ.i386-apple- 
darwin9.5.0/trans.o -lgrass_gis -lgrass_datetime -lz     - 
lgrass_bitmap -lgrass_linkm  -lgrass_vect -lgrass_dbmibase -lgrass_gis  
-lgrass_datetime -lz      -lgrass_dbmiclient -lgrass_dbmibase - 
lgrass_gis -lgrass_datetime -lz      -lgrass_gis -lgrass_datetime - 
lz      -lgrass_dgl -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz     - 
lgrass_rtree  -lgrass_gis -lgrass_datetime -lz     -lgrass_linkm - 
lgrass_rtree  -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz     - 
lgrass_rtree  -lgrass_dgl -lgrass_rtree -lgrass_linkm - 
lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime - 
lz      -lgrass_gis -lgrass_datetime -lz      -lgrass_dbmibase - 
lgrass_gis -lgrass_datetime -lz       -L/Library/Frameworks/ 
GDAL.framework/Versions/1.5/unix/lib -lgdal -L/usr/X11/lib -framework  
OpenGL -framework AGL -framework ApplicationServices  -L/Library/ 
Frameworks/UnixImageIO.framework/unix/lib -ltiff    -lgrass_sites - 
lgrass_datetime -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz       
-lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime - 
lz      -lgrass_gis -lgrass_datetime -lz      -lgrass_gis - 
lgrass_datetime -lz     -lgrass_vect -lgrass_dbmibase -lgrass_gis - 
lgrass_datetime -lz      -lgrass_dbmiclient -lgrass_dbmibase - 
lgrass_gis -lgrass_datetime -lz      -lgrass_gis -lgrass_datetime - 
lz      -lgrass_dgl -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz     - 
lgrass_rtree  -lgrass_gis -lgrass_datetime -lz     -lgrass_linkm - 
lgrass_rtree   -lgrass_g3d -lgrass_gis -lgrass_datetime -lz      && \
	(cd /Users/jctull/sources/grass6.4.0/dist.i386-apple-darwin9.5.0/lib;  
ln -f -s libgrass_ogsf.6.4.svn.dylib /Users/jctull/sources/grass6.4.0/ 
dist.i386-apple-darwin9.5.0/lib/libgrass_ogsf.dylib)
ld: cycle in dylib re-exports with /usr/X11/lib/libGL.dylib
collect2: ld returned 1 exit status
make: *** [/Users/jctull/sources/grass6.4.0/dist.i386-apple- 
darwin9.5.0/lib/libgrass_ogsf.6.4.svn.dylib] Error 1


Thanks,
John


More information about the grass-user mailing list