[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#18822: Faulty $(address@hidden@bar_la_OBJECTS) substitution
From: |
Jeff Squyres (jsquyres) |
Subject: |
bug#18822: Faulty $(address@hidden@bar_la_OBJECTS) substitution |
Date: |
Fri, 24 Oct 2014 23:18:10 +0000 |
In the Open MPI project, we have found a corner case in Automake 1.14.1 (see
https://github.com/open-mpi/ompi/issues/250).
Here's a simplified reproducer in a Makefile.am:
-----
lib_LTLIBRARIES = address@hidden@a_lib.la
noinst_LTLIBRARIES = address@hidden@a_noinst.la
address@hidden@a_lib_la_SOURCES = a.c
address@hidden@a_noinst_la_SOURCES = $(address@hidden@a_lib_la_SOURCES)
----
Assume that A_PREFIX is AC_SUBST'ed to be the value "AAA". In the resulting
Makefile:
1. The value of $(libAAAa_noinst_la_SOURCES) will be correct -- it gets
assigned from $(libAAAa_lib_la_SOURCES). Meaning: it will be "a.c".
2. The value of $(libAAAa_noinst_la_OBJECTS) will be empty. It *should* be
"a.o".
Trivial reproducer attached. It's essentially a configure.ac and a.c to
support the above Makefile.am rules, and a trivial override of the "all" rule
echoing the 4 Makefile macros so that you can see that
$(libAAAa_noinst_la_OBJECTS) is empty.
Just "./configure && make" and you'll see:
-----
...configure output...
CC a.lo
CCLD liba_lib.la
CCLD liba_noinst.la
liba_lib_la_SOURCES is: a.c
liba_lib_la_OBJECTS is: a.lo
====================
liba_noinst_la_SOURCES is: a.c
liba_noinst_la_OBJECTS is: -- THIS SHOULD NOT BE BLANK
-----
--
Jeff Squyres
address@hidden
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/
fo-0.0.tar.bz2
Description: fo-0.0.tar.bz2
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#18822: Faulty $(address@hidden@bar_la_OBJECTS) substitution,
Jeff Squyres (jsquyres) <=