On Sun, Oct 28, 2012 at 11:57 AM, Stefano Lattarini
<stefano.lattar...@gmail.com> wrote:
> On 10/28/2012 11:34 AM, Vincent Torri wrote:
>> Hey
>>
>> Our project build some modules as shared lib. We added the possibility
>> to statically link them to the library with autoconf. We then define
>> BUILD_STATIC automake conditionnal to select what we want. The tree
>> directories are:
>>
>> src/lib <--- where the lib is
>> src/module  <-- where the module is.
>>
>>  * in src/module/Makefile.am:
>>
>> if ! BUILD_STATIC
>>
>> pkg_LTLIBRARIES = module.la
>> module_la_SOURCES = foo.c
>>
>> else
>>
>> noinst_LTLIBRARIES = mylib_module.la
>> mylib_module_la_SOURCES = foo.c
>>
>> endif
>>
>>  * and in src/lib/Makefile.am
>>
>> if BUILD_STATIC
>>
>> SUBDIRS += ../module
>>
> Yikes!  Recursing into a sibling directory, rather than just children
> ones, is asking for problems IMO.
>
>> mylib_la_LIBADD += ../module/mylib_module.la
>>
>> endif
>>
>> It works well, until I use the maintainer-clean rule. Indeed, because
>> of the SUBDIRS in src/lib/Makefile.am, maintainer-clean is launched
>> twice, hence an error as there is no Makefile anymore in src/module
>> when the 2nd maintainer-clean rule is executed.
>>
>> I also tried this in src/lib/Makefile.am:
>>
>> if BUILD_STATIC
>>
>> mylib_la_SOURCES += ../module/foo.c
>>
>> endif
>>
>> but then same kind of error, with foo.Plo in src/module/.deps when the
>> 2nd maintainer-clean rule is launched : that file does not exist
>> anymore
>>
>> Does someone know what I have to do ?
>>
> My advice: re-organize your build system to avoid recursive make
> invocations where not actually necessary.

that's the second version above in  src/lib/Makefile.am : I add to
mylib_la_SOURCES the file that is in another directory, so no
SUBDIRS,right ?

Vincent Torri

Reply via email to