[Gc]: Dependency tracking for configuration macros

Andreas Tobler andreast-list at fgznet.ch
Thu Oct 8 12:33:24 PDT 2009

Ivan Maidanski wrote:
> Hi!
> Petter Urkedal <urkedal at nbi.dk> wrote:
>> On 2009-09-29, Petter Urkedal wrote:
>>> On 2009-09-29, Ivan Maidanski wrote:
>>>> Could you re-post the patch in this ML (if you think it should be applied to bdwgc)?
>>> Attached is the patch, excluding generated files.  Log:
>>> 	* configure.ac: Rewrite the tests for external or internal
>>> 	libatomic_ops.
>>> 	* configure.ac: In particular, drop the symbolic links. Add option
>>> 	--with-libatomic-ops for forced selection.
>>> 	* Makefile.am: Adjust the path of source files from libatomic_ops to
>>> 	not use the links.
>>> 	* Makefile.am (libgc_la_LIBADD): Add $(ATOMIC_OPS_LIBS). This will be
>>> 	empty if we use the bundled AO sources.
>> I broke the distcheck target with this; good thing there were no need to
>> release yet.  I was thinking about ways to fix it, like copying instead
>> of linking, but I think the cleanest solution is to disable the
>> compilation of object files into subdirectories:
>> * configure.ac: Drop the subdir-objects Automake option, since it's
>> incompatible with picking source files from libatomic_ops.
>> This option is nice, but not really important for libgc, since most of
>> the sources are in the same directory.  Hopefully the last build fix for
>> now...
>> diff --git a/configure.ac b/configure.ac
>> index f1dcd65..ff400f3 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -24,7 +24,7 @@ AC_CANONICAL_TARGET
>>  AC_PREREQ(2.53)
>>  AC_REVISION($Revision: 1.51 $)
>> -AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects nostdinc])
>> +AM_INIT_AUTOMAKE([foreign dist-bzip2 nostdinc])
>>  AM_CONFIG_HEADER([include/private/config.h])
> I've checked it in (and regenerated).

This patch breaks builds outside the source directory. When you have the 
build inside a separate objdir which is on the same level as the src 
directory the build breaks with the following message:

make[1]: *** No rule to make target `atomic_ops.c', needed by 
`atomic_ops.lo'.  Stop.
make: *** [all-recursive] Error 1

Just a fyi.

More information about the Gc mailing list