libcdio-devel
[Top][All Lists]
Advanced

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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]