GNU bug report logs -
#10128
am_foo_OBJECTS is empty when ...
Previous Next
Full log
Message #8 received at 10128 <at> debbugs.gnu.org (full text, mbox):
Hi Sebastian, sorry for the terrible delay.
On 11/24/2011 01:02 PM, Sebastian Freundt wrote:
> The (internal) variable am_foo_OBJECTS is empty when OBJEXT has been
> redefined *and* no .SOURCE_EXT.o rule is present.
>
> Example:
>
> --8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--
>
> AM_DEFAULT_SOURCE_EXT = .lisp
> OBJEXT = fasl
>
> noinst_PROGRAMS = foo
> foo_SOURCES = bar.lisp
>
> .lisp.fasl:
> touch $@
>
> --8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--
>
This does really seem like an abuse of already corner-case Automake features ...
What are you trying to obtain actually? Perhaps it can be done with less poking
of Automake's dark corners ...
> Now the generated Makefile lists:
>
> am_foo_OBJECTS =
> foo_OBJECTS = $(am_foo_OBJECTS)
>
> However, adding a .lisp.o (the old OBJEXT) magically makes it all work:
>
Well, actually it doesn't, because ...
> --8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--
>
> AM_DEFAULT_SOURCE_EXT = .lisp
> OBJEXT = fasl
>
> noinst_PROGRAMS = foo
> foo_SOURCES = bar.lisp
>
> .lisp.o: ## just be
>
> .lisp.fasl:
> touch $@
>
> --8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--
>
> am_foo_OBJECTS = bar.$(OBJEXT)
> foo_OBJECTS = $(am_foo_OBJECTS)
>
... if you try to run the generated Makefile you will obtain some error
like:
make: *** No rule to make target `bar.fasl', needed by `foo'.
make: Target `all' not remade because of errors.
In fact, I'm not sure the Automake APIs are designed to allow a redefinition
of `OBJEXT' at all; but I can't find anything explicit about this in the manual.
I'll need to investigate on this.
Thanks,
Stefano
This bug report was last modified 13 years and 162 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.