Subject: bug#10128: am_foo_OBJECTS is empty when ...

From: Sebastian Freundt <[email-masked]>
Date: Thu, 24 Nov 2011 12:02:05 +0000

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<--

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:

--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)

Affected automake versions: all, 1.11.1 in particular.

Cheers,
Sebastian