[Cairo] Re: Patch for cairo --without-x

John Ellson ellson at research.att.com
Thu Nov 27 07:31:42 PST 2003


John Ellson wrote:

> James Henstridge wrote:
>
>> On 27/11/03 22:39, John Ellson wrote:
>>
>>> James Henstridge wrote:
>>>
>>>>
>>>> If we decide to require automake >= 1.7 to build Cairo from CVS 
>>>> (which I highly recommend), then it should be pretty easy to 
>>>> conditionally install the cairo-xlib.h with syntax like this:
>>>>
>>>> include_HEADERS = cairo.h
>>>> libcairo_la_SOURCES = ...
>>>> if HAVE_X_BACKEND
>>>> include_HEADERS += cairo-xlib.h
>>>> libcairo_la_SOURCES += cairo_xlib_surface.c
>>>> endif 
>>>
>>>
>>>
>>>
>>> This conditional make feature also works in automake-1.6.   We use 
>>> it in graphviz.
>>>
>>> It solves the problem that you want "make dist" to recurse into all 
>>> directories, but
>>> that you only conditionally want to make the targets in some of them 
>>> based on
>>> a configure switch.
>>
>>
>>
>> Are you sure?  Whenever I tried using the += syntax inside a 
>> conditional with automake 1.6, I ended up with a broken Makefile (the 
>> += got changed to a normal equals, and would override the original 
>> definition of the variable).  It didn't raise an error, but it also 
>> didn't work.
>
>
>
> OK, we use the conditional, but not the += syntax.
>
> A workaround would be to define two separate products, with separate 
> SOURCES and HEADERS, then make
> the products conditional.


Another workaround is to have configure also #define HAVE_X_BACKEND
and then use #ifdef HAVE_X_BACKEND inside both cairo-xlib.h and 
cairo_xlib_surface.c.

One small annoyance with this is that Sun's compiler will complain about 
cairo_xlib_surface.c
being an empty module.

John







More information about the cairo mailing list