[GRASS-dev] odd configure error on MacOS X

Markus Metz markus.metz.giswork at googlemail.com
Fri Jul 29 08:00:14 EDT 2011


Dylan Beaudette wrote:
> On Fri, Jul 29, 2011 at 8:34 AM, Dylan Beaudette
> <dylan.beaudette at gmail.com> wrote:
>> On Thu, Jul 28, 2011 at 9:00 PM, Glynn Clements
>> <glynn at gclements.plus.com> wrote:
>>>
>>> Dylan Beaudette wrote:
>>>
>>>> With this morning's SVN from GRASS 6.5 and 7, I am getting a strange
>>>> error on the configure step:
>>>
>>>> checking for cairo_create... no
>>>> configure: error: *** Unable to locate .
>>>>                                                   ^^^^^ <- this is a
>>>> strange error!
>>>>
>>>> Any ideas?
>>>
>>> The error message should have been "Unable to locate cairo_create";
>>> this has been fixed for 7.0 with r47301.
>>>
>>> This doesn't affect the fact that you're getting the error, just the
>>> message. Check the bottom of config.log for clues as to why the test
>>> failed.
>>>
>>> --
>>> Glynn Clements <glynn at gclements.plus.com>
>>>
>>
>> Thanks Glynn.
>> Here is the relevant section from config.log:
>>
>> ------------------------------------------------------------------------------------------------
>> configure:12938: checking for cairo_create
>> configure:12964: gcc -o conftest -g -O2   -arch i386    -I/usr/include
>>   -arch i386   -L/usr/lib conftest.c  -L/sw/lib -
>> lcairo   -L/sw/lib -lfontconfig  1>&5
>> ld: library not found for -lfontconfig
>> collect2: ld returned 1 exit status
>> configure: failed program was:
>> #line 12941 "configure"
>> #include "confdefs.h"
>> /* System header to define __stub macros and hopefully few prototypes,
>>    which can conflict with char cairo_create(); below.  */
>> #include <assert.h>
>> /* Override any gcc2 internal prototype to avoid an error.  */
>> /* We use char because int might match the return type of a gcc2
>>    builtin and then its argument prototype would still apply.  */
>> char cairo_create();
>>
>> int main() {
>>
>> /* The GNU C library defines this for functions which it implements
>>    to always fail with ENOSYS.  Some functions are actually named
>>    something starting with __ and the normal name is an alias.  */
>> #if defined (__stub_cairo_create) || defined (__stub___cairo_create)
>> choke me
>> #else
>> cairo_create();
>> #endif
>>
>> ; return 0; }
>> ------------------------------------------------------------------------------------------------
>>
>> ... updated to latest SVN, and now configure outputs a more useful
>> error message:
>>
>> configure: error: *** Unable to locate cairo_create.
>>
>> ... removing '--with-cairo-ldflags=-lfontconfig' allows configure to
>> complete, and running make results in:
>>
>> gcc -I/usr/include -g -O2   -arch i386 -fno-common -I/usr/include
>> -I/Users/dylan/src/grass_trunk/dist.i386-apple-darwin9.8.0/include
>> -I/Users/dylan/src/grass_trunk/dist.i386-apple-darwin9.8.0/include
>> -D_FILE_OFFSET_BITS=64 -I../driver -I/usr/X11/include/libpng12
>> -I/usr/X11/include -I/usr/X11/include/freetype2 -I/sw/include
>> -I/sw/include/cairo   -I/sw/include/cairo  -I/usr/X11/include
>> -DUSE_X11=1 -DPACKAGE=\""grasslibs"\"
>> -I/Users/dylan/src/grass_trunk/dist.i386-apple-darwin9.8.0/include
>> -I/Users/dylan/src/grass_trunk/dist.i386-apple-darwin9.8.0/include -o
>> OBJ.i386-apple-darwin9.8.0/Graph.o -c Graph.c
>> Graph.c:19:23: error: cairo-svg.h: No such file or directory
>>
>> ... look like I need to do some more homework.
>>
>> Thanks,
>> Dylan
>>
>
> It seems more complicated that I thought. After fixing the includes,
> to use the KingChaos Frameworks, recompiling results in:
>
> In file included from Graph.c:19:
> /Library/Frameworks/cairo.framework/unix/include/cairo/cairo-svg.h:79:3:
> error: #error Cairo was not compiled with support for the svg backend
> make: *** [OBJ.i386-apple-darwin9.8.0/Graph.o] Error 1
>
> Can SVG be disabled somehow?

There may be a solution using CAIRO_HAS_SVG_SURFACE from cairo-features.h

#if CAIRO_HAS_SVG_SURFACE
#include <cairo-svg.h>
#endif

CAIRO_HAS_SVG_SURFACE is already used elsewhere in Graph.c

Markus M


More information about the grass-dev mailing list