Hi Vincent,

* Vincent Torri wrote on Thu, Jul 09, 2009 at 08:28:50AM CEST:
> We have a library that uses modules. These modules can be shared lib
> or can be statically linked to the library. We use that tree
> structure:
> 
> evas
>   src
>     lib
>   modules
>     loaders
>       png
> 
> the library itself is in evas/src/lib
> the modules (here the png loader) is in evas/src/modules/loaders/png
> We first compile the library, then the modules.

> In evas/src/lib/Makefile.am we have added:
> 
> if EVAS_STATIC_BUILD_PNG
> SUBDIRS += ../modules/loaders/png
[...]
> The problem is that, when doing 'make maintainer-clean', the clean
> is done first in evas/src/lib, hence, with the code in
> evas/src/lib/Makefile.am, in evas/src/modules/loaders/png too.

> 1) Is our use for doing static linking correct ?

Seems ok to me.

BTW, whenever you add @substed@ values to *_LIBADD, automake cannot know
whether these substed values will contain references to other
uninstalled libraries or objects, for which it would be nice to add make
dependencies to, so the library is rebuilt when they are updated.  In
that case, what you can do is fill out the corresponding *_DEPENDENCIES
variable yourself, in that case with all library dependencies of course.

> 2) If yes, what should I do to correct the problem above (more
> precisely, I want 'make distcheck' to succeed, but it's the same
> problem than 'make maintainer-clean')

You can override DIST_SUBDIRS to avoid this.  In your particular case,
you should set it in evas/src/lib/Makefile.am, to the empty value.

Hope that helps.

Cheers,
Ralf


Reply via email to