Opened 11 years ago

Last modified 8 years ago

#1970 new defect

cairo config on Mac can't find pkg-config

Reported by: hamish Owned by: grass-dev@…
Priority: normal Milestone: 6.4.6
Component: Packaging Version: svn-trunk
Keywords: configure, cairo Cc: cmbarton, kyngchaos
CPU: All Platform: MacOSX

Description

Hi,

on Mac OSX the ./configure script comes up with a few errors, and possibly doesn't enable all rendering options that could be enabled because it tries to use the pkg-config program.

an example from Michael:

./configure [...] --with-cairo --with-cairo-includes="/Library/Frameworks\
/cairo.framework/unix/include/cairo /Library/Frameworks/cairo.framework\
/unix/include" --with-cairo-libs=/Library/Frameworks/cairo.framework\
/unix/lib --with-cairo-ldflags="-lcairo" [...]
...
checking whether to use Cairo... yes
./configure: line 11623: pkg-config: command not found
./configure: line 11623: pkg-config: command not found
./configure: line 11623: pkg-config: command not found
./configure: line 11623: pkg-config: command not found
./configure: line 11623: pkg-config: command not found
./configure: line 11623: pkg-config: command not found
./configure: line 11630: pkg-config: command not found
checking for location of cairo includes... /Library/Frameworks/cairo.framework/unix/include/cairo /Library/Frameworks/cairo.framework/unix/include
checking for cairo.h... yes
./configure: line 11700: pkg-config: command not found
checking for location of cairo library... /Library/Frameworks/cairo.framework/unix/lib
...

config.log is available upon request, but I think the above says it all.

the relevant part of configure.in is:

# Enable Cairo display driver option

LOC_CHECK_USE(cairo,Cairo,USE_CAIRO)

CAIROINC=
CAIROLIB=

if test -n "$USE_CAIRO"; then

cairo="cairo"
pkgs="cairo-ft cairo-fc cairo-pdf cairo-ps cairo-svg fontconfig"
if test -n "$USE_X11"; then
        pkgs="$pkgs cairo-xlib cairo-xlib-xrender"
fi
for pkg in $pkgs ; do
    if pkg-config --exists $pkg ; then
        cairo="$cairo $pkg"
    fi
done

# With Cairo includes directory
#FIXME: somehow quote dirs with spaces in $cairo ?
CAIROINC=`pkg-config --cflags $cairo`

LOC_CHECK_INC_PATH(cairo,cairo,CAIROINC)

LOC_CHECK_INCLUDES(cairo.h,Cairo,$CAIROINC)

# With Cairo library directory

CAIROLIB=`pkg-config --libs $cairo`

LOC_CHECK_LIB_PATH(cairo,cairo,CAIROLIB)
LOC_CHECK_LDFLAGS(cairo,cairo,CAIROLIB)

LOC_CHECK_FUNC(cairo_create,,,,,$CAIROLIB,[:])
LOC_CHECK_FUNC(cairo_xlib_surface_create_with_xrender_format,,,,,$CAIROLIB,
[CAIRO_HAS_XRENDER=1],[CAIRO_HAS_XRENDER=])
AC_SUBST(CAIRO_HAS_XRENDER)
LOC_CHECK_FUNC(cairo_xlib_surface_get_xrender_format,,,,,$CAIROLIB,
[CAIRO_HAS_XRENDER_SURFACE=1],[CAIRO_HAS_XRENDER_SURFACE=])
AC_SUBST(CAIRO_HAS_XRENDER_SURFACE)

CAIROLIB="$CAIROLIB $CAIROLDFLAGS"

fi # $USE_CAIRO

i.e. it assumes that pkg-config will always be there.

Platform.make ends up with:

#cairo
CAIROINC                  =  -I/Library/Frameworks/cairo.framework/unix/include/cairo -I/Library/Frameworks/cairo.framework/unix/include
CAIROLIB                  =  -L/Library/Frameworks/cairo.framework/unix/lib -lcairo 
USE_CAIRO                 = 1
CAIRO_HAS_XRENDER         = 
CAIRO_HAS_XRENDER_SURFACE = 

?, Hamish

Change History (2)

in reply to:  description comment:1 by glynn, 11 years ago

Replying to hamish:

on Mac OSX the ./configure script comes up with a few errors, and possibly doesn't enable all rendering options that could be enabled because it tries to use the pkg-config program.

AFAICT, there isn't any problem (other than the noise). If you don't have pkg-config, then you need to specify --with-cairo-includes, --with-cairo-libs and --with-cairo-ldflags manually, but the failed attempts to run pkg-config shouldn't affect anything.

XRender support is only meaningful for an X11 version of cairo (and AFAIK, there hasn't been any movement on having the wx GUI make use of it even when it's available).

comment:2 by neteler, 8 years ago

Milestone: 6.4.36.4.6
Note: See TracTickets for help on using tickets.