[GRASS-dev] build fails on mac osx

Hi All

tring to build on osx on a fresh svn checkout :

export CXXFLAGS="-arch ppc -arch i386"
export CFLAGS="-arch ppc -arch i386"
export GDAL_BIN=/Library/Frameworks/GDAL.framework/unix/bin/
export NAD2BIN=/Library/Frameworks/PROJ.framework/Programs/nad2bin

../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-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-cxx
--with-opengl=aqua --with-x --without-motif --without-glw
--with-tcltk-includes="/Library/Frameworks/Tcl.framework/Headers /Library/Frameworks/Tk.framework/Headers /Library/Frameworks/Tk.framework/PrivateHeaders"
--with-python=/usr/bin/python-config --with-wxwidgets=/usr/bin/wx-config
--with-postgres --with-postgres-includes=/usr/local/pgsql/include/
--with-postgres-libs=/usr/local/pgsql/lib/ --enable-macosx-app
--prefix=/Applications/grass64svn

then :

open -a textmate include/make/platform.make
BEFORE RUNNNING MAKE i changed the TCLTKLIBS line to: -framework Tcl -framework Tk
and i removed render.c

make

--
Errors in:
/opt/gis/grass6_devel/lib/form
/opt/gis/grass6_devel/lib/vector/diglib
/opt/gis/grass6_devel/vector/v.digit
/opt/gis/grass6_devel/visualization/nviz
/opt/gis/grass6_devel/visualization/nviz2/cmd
--
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: Sab 17 Gen 2009 12:42:54 CET
make: *** [default] Error 1
macbook-pro-15-di-sasha:grass6_devel sasha$ cd /opt/gis/grass6_devel/lib/form
macbook-pro-15-di-sasha:form sasha$ make
gcc -I/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/include -arch ppc -arch i386 -fno-common -DPACKAGE=\""grasslibs"\" -I/usr/X11/include -I/Library/Frameworks/Tcl.framework/Headers -I/Library/Frameworks/Tk.framework/Headers -I/Library/Frameworks/Tk.framework/PrivateHeaders -I/Library/Frameworks/Tcl.framework/Headers -I/Library/Frameworks/Tk.framework/Headers -I/Library/Frameworks/Tk.framework/PrivateHeaders -DPACKAGE=\""grasslibs"\" -I/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/include -o OBJ.i386-apple-darwin9.6.0/form.o -c form.c
form.c: In function ‘submit’:
form.c:195: error: ‘struct Tcl_Interp’ has no member named ‘result’
form.c: In function ‘submit’:
form.c:195: error: ‘struct Tcl_Interp’ has no member named ‘result’
lipo: can't figure out the architecture type of: /var/folders/15/15zQj3qeHemLNapL-foqC++++TI/-Tmp-//ccuoxUul.out
make: *** [OBJ.i386-apple-darwin9.6.0/form.o] Error 1
macbook-pro-15-di-sasha:form sasha$ cd /opt/gis/grass6_devel/lib/vector/diglib
macbook-pro-15-di-sasha:diglib sasha$ make
make OBJ.i386-apple-darwin9.6.0/test
echo "==============TEST============="
==============TEST=============
gcc -L/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib -L/usr/local/pgsql/lib/ -arch ppc -arch i386 -I/Library/Frameworks/GDAL.framework/Versions/1.6/Headers -I/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/include -o OBJ.i386-apple-darwin9.6.0/test test.c -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz -lgrass_rtree -lgrass_rtree \
        -lgrass_gis -lgrass_datetime -lz -lgrass_datetime -lz
ld warning: in /opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib/libgrass_dig2.dylib, file is not of required architecture
ld warning: in /opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib/libgrass_gis.dylib, file is not of required architecture
ld warning: in /opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib/libgrass_datetime.dylib, file is not of required architecture
ld warning: in /opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib/libgrass_rtree.dylib, file is not of required architecture
Undefined symbols for architecture ppc:
   "_dig_fflush", referenced from:
       _main in ccyZnD8i.o
   "_dig_set_cur_port", referenced from:
       _main in ccyZnD8i.o
   "_dig__fread_port_C", referenced from:
       _main in ccyZnD8i.o
   "_dig__fread_port_D", referenced from:
       _main in ccyZnD8i.o
   "_dig__fread_port_F", referenced from:
       _main in ccyZnD8i.o
   "_dig__fread_port_I", referenced from:
       _main in ccyZnD8i.o
   "_dig__fread_port_L", referenced from:
       _main in ccyZnD8i.o
   "_dig__fread_port_S", referenced from:
       _main in ccyZnD8i.o
   "_dig_fseek", referenced from:
       _main in ccyZnD8i.o
   "_dig__fwrite_port_C", referenced from:
       _main in ccyZnD8i.o
   "_dig__fwrite_port_D", referenced from:
       _main in ccyZnD8i.o
   "_dig__fwrite_port_F", referenced from:
       _main in ccyZnD8i.o
   "_dig__fwrite_port_I", referenced from:
       _main in ccyZnD8i.o
   "_dig__fwrite_port_L", referenced from:
       _main in ccyZnD8i.o
   "_dig__fwrite_port_S", referenced from:
       _main in ccyZnD8i.o
   "_dig_init_portable", referenced from:
       _main in ccyZnD8i.o
ld: symbol(s) not found for architecture ppc
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/15/15zQj3qeHemLNapL-foqC++++TI/-Tmp-//cch4lDVi.out (No such file or directory)
make[1]: *** [OBJ.i386-apple-darwin9.6.0/test] Error 1
make: *** [default] Error 2
macbook-pro-15-di-sasha:diglib sasha$ cd /opt/gis/grass6_devel/vector/v.digit
macbook-pro-15-di-sasha:v.digit sasha$ make
Makefile:20: warning: overriding commands for target `/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/etc/v.digit'
.../../include/Make/Module.make:20: warning: ignoring old commands for target `/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/etc/v.digit'
gcc -I/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/include -arch ppc -arch i386 -I/usr/X11/include -I/Library/Frameworks/Tcl.framework/Headers -I/Library/Frameworks/Tk.framework/Headers -I/Library/Frameworks/Tk.framework/PrivateHeaders -I/Library/Frameworks/Tcl.framework/Headers -I/Library/Frameworks/Tk.framework/Headers -I/Library/Frameworks/Tk.framework/PrivateHeaders -I/Library/Frameworks/GDAL.framework/Versions/1.6/Headers -DPACKAGE=\""grassmods"\" -I/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/include -o OBJ.i386-apple-darwin9.6.0/driver.o -c driver.c
driver.c: In function ‘driver_plot_icon’:
driver.c:54: error: ‘struct Tcl_Interp’ has no member named ‘result’
driver.c: In function ‘driver_plot_icon’:
driver.c:54: error: ‘struct Tcl_Interp’ has no member named ‘result’
driver.c: In function ‘get_window’:
driver.c:61: error: ‘struct Tcl_Interp’ has no member named ‘result’
driver.c:68: error: ‘struct Tcl_Interp’ has no member named ‘result’
driver.c: In function ‘driver_open’:
driver.c:101: error: ‘struct Tcl_Interp’ has no member named ‘result’
driver.c: In function ‘get_window’:
driver.c:61: error: ‘struct Tcl_Interp’ has no member named ‘result’
driver.c:68: error: ‘struct Tcl_Interp’ has no member named ‘result’
driver.c: In function ‘driver_open’:
driver.c:101: error: ‘struct Tcl_Interp’ has no member named ‘result’
lipo: can't figure out the architecture type of: /var/folders/15/15zQj3qeHemLNapL-foqC++++TI/-Tmp-//ccYjxRYV.out
make: *** [OBJ.i386-apple-darwin9.6.0/driver.o] Error 1
macbook-pro-15-di-sasha:v.digit sasha$Chiacchiera con i tuoi amici in tempo reale! http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com

I don't know about the tcltk errors, but for the rest...

On Jan 17, 2009, at 6:20 AM, massimo di stefano wrote:

Hi All

tring to build on osx on a fresh svn checkout :

export CXXFLAGS="-arch ppc -arch i386"
export CFLAGS="-arch ppc -arch i386"

Note: when setting CFLAGS and CXXFLAGS, it overrides the default optimization in configure, so you should add optimization to these. I suggest -Os for OSX, or that default which is -O2.

see below for missing LDFLAGS note...

then :

open -a textmate include/make/platform.make
BEFORE RUNNNING MAKE i changed the TCLTKLIBS line to: -framework Tcl -framework Tk
and i removed render.c

render.c should compile now, though nviz_cmd won't work. No need to delete render.c.

macbook-pro-15-di-sasha:form sasha$ cd /opt/gis/grass6_devel/lib/vector/diglib
macbook-pro-15-di-sasha:diglib sasha$ make
make OBJ.i386-apple-darwin9.6.0/test
echo "==============TEST============="
==============TEST=============
gcc -L/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib -L/usr/local/pgsql/lib/ -arch ppc -arch i386 -I/Library/Frameworks/GDAL.framework/Versions/1.6/Headers -I/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/include -o OBJ.i386-apple-darwin9.6.0/test test.c -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz -lgrass_rtree -lgrass_rtree \
        -lgrass_gis -lgrass_datetime -lz -lgrass_datetime -lz
ld warning: in /opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib/libgrass_dig2.dylib, file is not of required architecture
ld warning: in /opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib/libgrass_gis.dylib, file is not of required architecture
ld warning: in /opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib/libgrass_datetime.dylib, file is not of required architecture
ld warning: in /opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/lib/libgrass_rtree.dylib, file is not of required architecture

When compiling as a universal binary (ppc + i386) you must also set LDFLAGS. The libraries need that for linking. Only source compile and program linking use C/CXX-FLAGS.

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

Theory of the Universe

There is a theory which states that if ever anyone discovers exactly what the universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarrely inexplicable. There is another theory which states that this has already happened.

-Hitchhiker's Guide to the Galaxy 2nd season intro

On Sat, Jan 17, 2009 at 1:20 PM, massimo di stefano
<massimodisasha@yahoo.it> wrote:

Hi All

tring to build on osx on a fresh svn checkout :

...

Errors in:
/opt/gis/grass6_devel/lib/form
/opt/gis/grass6_devel/lib/vector/diglib
/opt/gis/grass6_devel/vector/v.digit
/opt/gis/grass6_devel/visualization/nviz
/opt/gis/grass6_devel/visualization/nviz2/cmd
--
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: Sab 17 Gen 2009 12:42:54 CET
make: *** [default] Error 1
macbook-pro-15-di-sasha:grass6_devel sasha$ cd /opt/gis/grass6_devel/lib/form
macbook-pro-15-di-sasha:form sasha$ make
gcc -I/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/include -arch ppc
-arch i386 -fno-common -DPACKAGE=\""grasslibs"\" -I/usr/X11/include
-I/Library/Frameworks/Tcl.framework/Headers
-I/Library/Frameworks/Tk.framework/Headers
-I/Library/Frameworks/Tk.framework/PrivateHeaders
-I/Library/Frameworks/Tcl.framework/Headers
-I/Library/Frameworks/Tk.framework/Headers
-I/Library/Frameworks/Tk.framework/PrivateHeaders
-DPACKAGE=\""grasslibs"\"
-I/opt/gis/grass6_devel/dist.i386-apple-darwin9.6.0/include -o
OBJ.i386-apple-darwin9.6.0/form.o -c form.c
form.c: In function 'submit':
form.c:195: error: 'struct Tcl_Interp' has no member named 'result'
form.c: In function 'submit':
form.c:195: error: 'struct Tcl_Interp' has no member named 'result'

New Tcl versions have removed the long term deprecated "result".
A patch is provided now in
http://trac.osgeo.org/grass/ticket/462
can you please test it? Then we can fix it for 6.4.0RC3 and newer
versions of GRASS.

Markus