Hi all,
I am using a yacc/bison source file in a libtool library, but I create
both an installable static/shared version of the library as well as an
internal convenience library (so I can later on link the PIC objects
directly into another shared library). Since I need the header file
with the parser definitions I use the "AM_YFLAGS = -d" option to have
automake do this for me.
The problem is that automake (1.7.7) doesn't see that the .y source
files in the _SOURCES definitions of two libraries (the installable
one and the internal convenience one) are actually the same and thus,
because of the AM_YFLAGS definition, creates two identical rules in
the final Makefile for the .h file. This is something the make program
obviously doesn't like and I therefore receive a 'warning: overriding
commands for target' warning.
A simple Makefile.am example that shows this behavior is:
---
AM_YFLAGS = -d
lib_LTLIBRARIES = libfoo.la
noinst_LTLIBRARIES = libfoo_internal.la
BUILT_SOURCES = foo.h
libfoo_la_SOURCES = foo.y
libfoo_la_LDFLAGS = -version-info 0:0:0
libfoo_internal_la_SOURCES = foo.y
---
Does anybody know how I can get rid of the make warnings (and, just
out of interest, will these warnings stay warnings when I use a
different make program instead of GNU make, or might other make
programs see the double .h rule definition as an error)?
P.S. I also have, for anyone who is interested, a small example
package available with just a single .y file that reproduces the
problem.
Regards,
Sander Niemeijer