[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libcdio-devel] automake not tracking library dependencies correctly
From: |
R. Bernstein |
Subject: |
[Libcdio-devel] automake not tracking library dependencies correctly |
Date: |
Mon, 17 Oct 2005 21:30:09 -0400 |
Peter Creath noted:
. For some reason, cd-paranoia's dependencies seem broken, at least
when configured with --disable-shared. It doesn't recognize when
libparanoia has been updated. So a simple "make test" after updating
with my paranoia.c won't actually rebuild it and test the new version.
...
I'm not positive [if --disable-shared is necessary], but I think
it's likely. I think it's simply that cd-paranoia doesn't consider
libparanoia to be a dependency (since it's normally linked at
run-time). So when it is a real dependency, make doesn't know about
it.
Indeed, the automake-generated Makefile does not show a dependency
on the libraries.
Section 7.4 "Program and Library Variables" of the automake 1.9.5
manual says:
If `_DEPENDENCIES' is not supplied, it is computed by Automake.
The automatically-assigned value is the contents of `_LDADD' or
`_LIBADD', with most configure substitutions, `-l', `-L',
`-dlopen' and `-dlpreopen' options removed. The configure
substitutions that are left in are only `$(LIBOBJS)' and
`$(ALLOCA)'; these are left because it is known that they will not
cause an invalid value for `_DEPENDENCIES' to be generated.
The src/cd-paranoia/Makefile I got was this:
am__DEPENDENCIES_1 =
cd_paranoia_DEPENDENCIES = \
$(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
which is wrong. I just made a commit in CVS to Makefile.am to
basically do what I think automake should have done above:
cd_paranoia_DEPENDENCIES = $(LIBCDIO_LIBS) $(LIBCDIO_CDDA_LIBS)
$(LIBCDIO_PARANOIA_LIBS) @LIBGETOPT_LIB@
This I think works, but it shouldn't be necessary. Anyone care to
comment or give enlightenment?
- [Libcdio-devel] automake not tracking library dependencies correctly,
R. Bernstein <=