[GRASS-dev] trying to compile wxPython NVIZ

Michael Barton michael.barton at asu.edu
Wed Jul 16 01:42:42 EDT 2008


I just managed to compile GRASS on the Mac OS X (10.5.4) without x11  
and with aqua tcltk 8.5.1. It actually works and looks pretty good.  
NVIZ does not work. No TclTk error messages (this is a difficulty with  
nviz; it traps all errors so you can't see what is wrong). However,  
because this is native aqua TclTk, it did give an Apple error message  
that I'll copy in below. It may be helpful if someone want's to debug  
it (I've added Paul to the cc list because of this).

You can see some quick screenshots of the GUI here <http://www.public.asu.edu/~cmbarton/files/grass_screenshots/grass_osx_aqua/ 
 >. It looks surprisingly good. To get TclTk 8.5 aqua to compile and  
run, I had to do the following...

make distclean

export TCLTK_INTERNAL=
export TCLTKVER="8.5"

./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 --without- 
x --with-cxx --with-opengl=aqua --without-readline --prefix=/ 
Applications/GRASS --enable-macosx-app --with-python --with-wxwidgets=/ 
usr/local/lib/wxPython-unicode-2.8.7.1/bin/wx-config --with-tcltk- 
includes="/Library/Frameworks/Tcl.framework/Headers /Library/ 
Frameworks/Tk.framework/Headers /Library/Frameworks/Tk.framework/ 
PrivateHeaders"

sudo make install

THEN, I had to find a copy of wish.app, show contents, and extract a  
copy of Wish from inside Wish.app/Contents/MacOS/.

NEXT, I had to rename Wish to wish8.5 and put it into /Applications/ 
Grass/GRASS-7.0.app/Contents/MacOS/bin of the binary GRASS-7.0.ap that  
I'd just made.

After that GRASS launches fine in Mac TclTk aqua

I assume that this last part could go into the build instructions.

Perhaps this will help move all of GRASS Mac to native aqua as the  
wxPython GUI continues to get refined. If the nviz issues with aqua  
TclTk could be solved, the Mac version could dispense with x11  
completely--and would still have a terminal for running bash and other  
command line things.

When I compiled, I got a number of togl warnings, but no obvious  
errors. So perhaps it can be made to run in 8.5.1 where it was  
problematic in 8.4.

Michael

____________________
C. Michael Barton, Professor of Anthropology
Director of Graduate Studies
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>



On Jul 15, 2008, at 8:36 PM, William Kyngesburye wrote:

> On Jul 15, 2008, at 10:21 PM, Michael Barton wrote:
>
>> On Jul 15, 2008, at 2:18 AM, Glynn Clements wrote:
>>
>>> FWIW, I have made some changes to lib/nviz/render.c to get it to
>>> compile on Windows, which may also help on OSX (there were some
>>> X-specific portions which weren't conditionalised).
>>>
>>> It doesn't work on Windows yet (G_malloc() fails), but I don't  
>>> have a
>>> native version of GDB installed, so I haven't looked into it any
>>> further.
>>
>> Glynn and Martin,
>>
>> I tried this out on my Mac. It still doesn't compile, but it gets  
>> different errors this time.
>>
>> Michael
>>
>> cmb-MBP-2:grass7_src cmbarton$ cd ./lib/nviz
>> cmb-MBP-2:nviz cmbarton$ make
>> cc -dynamiclib -compatibility_version 7.0 -current_version 7.0 - 
>> install_name
>
>> L/Library/Frameworks/GDAL.framework/Versions/1.5/unix/lib -lgdal -L/ 
>> usr/X11/lib -L/usr/X11R6/lib  -lGL  -L/usr/X11R6/lib  -lGLU  -
>
>> Undefined symbols:
>> "_XOpenDisplay", referenced from:
>>     _Nviz_create_render_window in render.o
>> "_XFreePixmap", referenced from:
>>     _Nviz_destroy_render_window in render.o
>> "_XCreatePixmap", referenced from:
>>     _Nviz_create_render_window in render.o
>> "_XFree", referenced from:
>>     _Nviz_create_render_window in render.o
>> ld: symbol(s) not found
>> collect2: ld returned 1 exit status
>> make: *** [/Users/cmbarton/grass_dev/grass7_src/dist.i386-apple- 
>> darwin9.4.0/lib/libgrass_nviz.7.0.svn.dylib] Error 1
>>
>
> As I mentionaed a while back, for the nviz library to operate  
> cleanly with wxpython, which is "Aqua", or AGL-based, you should  
> configure OpenGL for Aqua, not X11.  This means you should also  
> disable X11 and TclTk features, or you will get some header  
> confusion for OpenGL.  Something like:
>
> --without-tcltk --without-x --without-motif --without-glw --with- 
> opengl=aqua
>
> But, when I do this I get:
>
> gcc -I/Users/Shared/src/GRASS/svn/trunk/dist.i386-apple-darwin9.3.0/ 
> include  -Os    -fno-common   -DPACKAGE=\""grasslibs"\" -I/Library/ 
> Frameworks/GDAL.framework/Versions/1.5/Headers     -DPACKAGE= 
> \""grasslibs"\"  -I/System/Library/Frameworks/OpenGL.framework/ 
> Headers -I/Library/Frameworks/UnixImageIO.framework/unix/include -I/ 
> Users/Shared/unix/ffmpeg-leo/include/ffmpeg -I/Users/Shared/src/ 
> GRASS/svn/trunk/dist.i386-apple-darwin9.3.0/include -o OBJ.i386- 
> apple-darwin9.3.0/change_view.o -c change_view.c
> In file included from change_view.c:20:
> /Users/Shared/src/GRASS/svn/trunk/dist.i386-apple-darwin9.3.0/ 
> include/grass/nviz.h:120: error: syntax error before ‘AGLPixelFmtID’
> /Users/Shared/src/GRASS/svn/trunk/dist.i386-apple-darwin9.3.0/ 
> include/grass/nviz.h:120: warning: no semicolon at end of struct or  
> union
> /Users/Shared/src/GRASS/svn/trunk/dist.i386-apple-darwin9.3.0/ 
> include/grass/nviz.h:122: error: syntax error before ‘windowId’
> /Users/Shared/src/GRASS/svn/trunk/dist.i386-apple-darwin9.3.0/ 
> include/grass/nviz.h:122: warning: data definition has no type or  
> storage class
> /Users/Shared/src/GRASS/svn/trunk/dist.i386-apple-darwin9.3.0/ 
> include/grass/nviz.h:129: error: syntax error before ‘}’ token
> make[2]: *** [OBJ.i386-apple-darwin9.3.0/change_view.o] Error 1
>
>
> It seems to be some AGL programming issue.
>
> -----
> William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
> http://www.kyngchaos.com/
>
> [Trillian]  What are you supposed to do WITH a maniacally depressed  
> robot?
>
> [Marvin]  You think you have problems?  What are you supposed to do  
> if you ARE a maniacally depressed robot?  No, don't try and answer,  
> I'm 50,000 times more intelligent than you and even I don't know the  
> answer...
>
> - HitchHiker's Guide to the Galaxy
>
>



More information about the grass-dev mailing list