Hello,

> > > cgdb.1: $(top_srcdir)/cgdb/src/usage.c $(top_srcdir)/configure.in
> > >   $(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/cgdb/src cgdb$(EXEEXT)
> 
> `make -C' is not totally portable; [...]

sorry, thank you for catching this.  But the following is not true:

> If you instead ever go to use a nonrecursive Makefile structure, you
> could just add `../cgdb/src/cgdb$(EXEEXT)' to the prerequisites of this
> rule.  Much nicer.  ;-)

Recall that cgdb.1 was listed in dist_man_MANS, so the file is distributed.
A disctributed file may not depend on a built one.  Thusly, you have to
list the distributed sources as the prerequisities and call $(MAKE) in the
associated commands to ensure that the built files are up-to-date (the
executable in this case).

So even in the non-recursive makefile you'd have

cgdb.1: cgdb/src/usage.c configure.ac
        $(MAKE) $(AM_MAKEFLAGS)cgdb/src/cgdb$(EXEEXT)
        help2man ...

See http://sourceware.org/automake/automake.html#distcleancheck

Have a nice day,
        Stepan



Reply via email to