[GRASS-dev] GRASS Mac compiling - cairo problems

I’m trying to do a basic compilation of GRASS 7.2 on my Mac to get started in a new binary packaging attempt. I’m hitting new issues with cairo and wonder if anyone can shed some light on this.

This is the first time I’ve tried compiling on my current machine. It is up to date with the newest version of OS X (Sierra, OS X 10.12.6) and current developer tools.

I have William Kyngesburye’s cairo framework 12.2-1.

First problem is that configure could not find cairo with the path in the configure string I used last October. I tried a couple of other paths and found one that worked.

When I tried to make GRASS, I ran into the following errors, all related to cairo. cairodriver can’t find fonconfig.h, which I think are leading to the rest of the errors.

But fontconfig.h is IN the directory I’ve pointed to in the --with-cairo-includes= statement.

Here is my configure script:

./configure --with-macosx-sdk=/Developer/SDKs/MacOSX10.8.sdk --with-freetype --with-freetype-includes=/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-gdal-libs=/Library/Frameworks/GDAL.framework/Libraries --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-geos=/Library/Frameworks/GEOS.framework/Versions/3/unix/bin/geos-config --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 --with-cairo --with-cairo-includes=/Library/Frameworks/cairo.framework/Headers/ --with-cairo-libs=/Library/Frameworks/cairo.framework/unix/lib --with-cairo-ldflags=“-lcairo” --without-postgres --without-mysql --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 --enable-macosx-app --with-python --with-wxwidgets=/usr/local/lib/wxPython-unicode-2.8.12.1/bin/wx-config --with-macosx-archs=“i386 x86_64” --with-opencl

Here are the errors (I can give a full log dump if it would be helpful):

Errors in:
/Users/cmbarton/grass_source/releasebranch_7_2/lib/cairodriver
/Users/cmbarton/grass_source/releasebranch_7_2/lib/display
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.barscale
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.colortable
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.erase
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.font
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.fontlist
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.geodesic
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.graph
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.grid
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.his
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.histogram
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.info
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.labels
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.legend
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.legend.vect
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.linegraph
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.mon
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.northarrow
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.path
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.profile
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.rast
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.rast.arrow
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.rast.num
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.rgb
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.rhumbline
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.text
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.vect
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.vect.chart
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.vect.thematic
/Users/cmbarton/grass_source/releasebranch_7_2/display/d.where
/Users/cmbarton/grass_source/releasebranch_7_2/vector/v.label
/Users/cmbarton/grass_source/releasebranch_7_2/misc/m.nviz.script

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: Wed Jul 26 17:02:45 MDT 2017
make: *** [default] Error 1
CMB-MacBook-Pro:releasebranch_7_2 cmbarton$ cd /Users/cmbarton/grass_source/releasebranch_7_2/lib/cairodriver
CMB-MacBook-Pro:cairodriver cmbarton$ make
gcc -g -O2 -arch i386 -isysroot /Developer/SDKs/MacOSX10.8.sdk -fno-common -I/Users/cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include -I/Users/cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include -I…/driver -I/Library/Frameworks/cairo.framework/Headers/ -I/Library/Frameworks/FreeType.framework/unix/include/ -DPACKAGE="“grasslibs”" -I/Users/cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include -I/Users/cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include -DRELDIR="lib/cairodriver" -o OBJ.x86_64-apple-darwin16.7.0/text.o -c text.c
text.c:20:10: fatal error: ‘fontconfig/fontconfig.h’ file not found
#include <fontconfig/fontconfig.h>
^
1 error generated.
make: *** [OBJ.x86_64-apple-darwin16.7.0/text.o] Error 1

Thanks
Michael


C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671 (SHESC), 480-727-0709 (CSDC)

www: http://www.public.asu.edu/~cmbarton, http://csdc.asu.edu

On Wed, Jul 26, 2017 at 7:10 PM, Michael Barton <Michael.Barton@asu.edu>
wrote:

But fontconfig.h is IN the directory I've pointed to in the
--with-cairo-includes= statement.

Here is my configure script:

./configure --with-macosx-sdk=/Developer/SDKs/MacOSX10.8.sdk
--with-freetype --with-freetype-includes=/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-gdal-libs=/Library/Frameworks/GDAL.framework/Libraries --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-geos=/Library/Frameworks/GEOS.framework/Versions/3/unix/bin/geos-config
--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
--with-cairo --with-cairo-includes=/Library/Frameworks/cairo.framework/Headers/
--with-cairo-libs=/Library/Frameworks/cairo.framework/unix/lib
--with-cairo-ldflags="-lcairo" --without-postgres --without-mysql
--with-sqlite

...

Finished compilation: Wed Jul 26 17:02:45 MDT 2017
make: *** [default] Error 1
CMB-MacBook-Pro:releasebranch_7_2 cmbarton$ cd /Users/cmbarton/grass_
source/releasebranch_7_2/lib/cairodriver
CMB-MacBook-Pro:cairodriver cmbarton$ make
gcc -g -O2 -arch i386 -isysroot /Developer/SDKs/MacOSX10.8.sdk
-fno-common -I/Users/cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include
-I/Users/cmbarton/grass_source/releasebranch_7_2/dist.
x86_64-apple-darwin16.7.0/include -I../driver -I/
Library/Frameworks/cairo.framework/Headers/ -I/Library/Frameworks/
FreeType.framework/unix/include/ -DPACKAGE=\""grasslibs"\" -I/Users/
cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include
-I/Users/cmbarton/grass_source/releasebranch_7_2/dist.
x86_64-apple-darwin16.7.0/include -DRELDIR=\"lib/cairodriver\" -o
OBJ.x86_64-apple-darwin16.7.0/text.o -c text.c
text.c:20:10: fatal error: 'fontconfig/fontconfig.h' file not found
#include <fontconfig/fontconfig.h>
         ^
1 error generated.
make: *** [OBJ.x86_64-apple-darwin16.7.0/text.o] Error 1

Hi Michael,

As far as I understand, compiler simply looks at all directories specified
by -I (which are configured by ./configure) and pastes the -I path and the
path in #include together and tests if the file exists. So I would first
double check:

ls /Library/Frameworks/cairo.framework/Headers/
ls /Library/Frameworks/cairo.framework/Headers/fontconfig/fontconfig.h

Vaclav

I solved it. I typo in the configure string. Thanks.

Michael

···

On Wed, Jul 26, 2017 at 7:10 PM, Michael Barton <Michael.Barton@asu.edu> wrote:

But fontconfig.h is IN the directory I’ve pointed to in the --with-cairo-includes= statement.

Here is my configure script:

./configure --with-macosx-sdk=/Developer/SDKs/MacOSX10.8.sdk --with-freetype --with-freetype-includes=/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-gdal-libs=/Library/Frameworks/GDAL.framework/Libraries --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-geos=/Library/Frameworks/GEOS.framework/Versions/3/unix/bin/geos-config --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 --with-cairo --with-cairo-includes=/Library/Frameworks/cairo.framework/Headers/ --with-cairo-libs=/Library/Frameworks/cairo.framework/unix/lib --with-cairo-ldflags=“-lcairo” --without-postgres --without-mysql --with-sqlite

Finished compilation: Wed Jul 26 17:02:45 MDT 2017
make: *** [default] Error 1
CMB-MacBook-Pro:releasebranch_7_2 cmbarton$ cd /Users/cmbarton/grass_source/releasebranch_7_2/lib/cairodriver
CMB-MacBook-Pro:cairodriver cmbarton$ make
gcc -g -O2 -arch i386 -isysroot /Developer/SDKs/MacOSX10.8.sdk -fno-common -I/Users/cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include -I/Users/cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include -I…/driver -I/Library/Frameworks/cairo.framework/Headers/ -I/Library/Frameworks/FreeType.framework/unix/include/ -DPACKAGE="“grasslibs”" -I/Users/cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include -I/Users/cmbarton/grass_source/releasebranch_7_2/dist.x86_64-apple-darwin16.7.0/include -DRELDIR="lib/cairodriver" -o OBJ.x86_64-apple-darwin16.7.0/text.o -c text.c
text.c:20:10: fatal error: ‘fontconfig/fontconfig.h’ file not found
#include <fontconfig/fontconfig.h>
^
1 error generated.
make: *** [OBJ.x86_64-apple-darwin16.7.0/text.o] Error 1

Hi Michael,

As far as I understand, compiler simply looks at all directories specified by -I (which are configured by ./configure) and pastes the -I path and the path in #include together and tests if the file exists. So I would first double check:

ls /Library/Frameworks/cairo.framework/Headers/
ls /Library/Frameworks/cairo.framework/Headers/fontconfig/fontconfig.h

Vaclav