GNU bug report logs -
#8921
side stepping automake limitations with custom dependencies
Previous Next
Reported by: Mike Frysinger <vapier <at> gentoo.org>
Date: Thu, 23 Jun 2011 00:00:02 UTC
Severity: normal
Done: "Ralf Wildenhues" <Ralf.Wildenhues <at> gmx.de>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#8921: side stepping automake limitations with custom dependencies
which was filed against the automake package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 8921 <at> debbugs.gnu.org.
--
8921: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8921
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hi Mike,
* Mike Frysinger wrote on Thu, Jun 23, 2011 at 02:07:30AM CEST:
> ah blah, i meant automake <at> gnu.org. i dont know how to close bugs with this e-
> mail system, so if someone could do that for me, that'd be cool ...
Write to BUG-done@...
Done.
;-)
Cheers,
Ralf
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
i'm working on a project (urjtag) that has yacc/lex files in it. and other
files in the directory depend on the generated output from yacc/lex. so the
automake file looks something like:
libbsdl_la_SOURCES = \
vhdl_bison.y \
bsdl_bison.y \
bsdl.c \
bsdl_sem.c
libbsdl_flex_la_SOURCES = \
vhdl_flex.l \
bsdl_flex.l
since the bison(yacc) files depend on the output of the flex(lex) files, we
want to express the dependency:
libbsdl_flex_la-vhdl_flex.o: vhdl_bison.h
libbsdl_flex_la-bsdl_flex.o: bsdl_bison.h
but with this, we hit an ugly limitation in automake itself. FTFM:
http://sources.redhat.com/automake/automake.html#Extending
[quote]
Note that Automake does not make any distinction between rules with
commands and rules that only specify dependencies. So it is not possible
to append new dependencies to an automake-defined target without
redefining the entire rule.
[/quote]
i happened to notice though that automake only parses exact semantic matches.
it cannot handle going through variables. so i tried out:
$(libbsdl_la_OBJECTS): bsdl_bison.h vhdl_bison.h
ignoring the minor fact that a few extra objects depend on the headers than
necessary, i get nice behavior: automake generates the compile rules for me,
and i get to express the dependency to make so parallel builds dont fail.
is this an undocumented feature ? or a bug that'll get fixed at some point ?
we've been using this for a few years now without problems, but past behavior
does not guarantee future behavior ...
-mike
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 13 years and 323 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.