* Ryan McDougall wrote on Fri, Sep 22, 2006 at 04:10:40AM CEST: > > The problem with this is that with this method that I have to manually > specify the dependencies, right? > > A: foo > cd src/A && $(MAKE) $(AM_MAKEFLAGS) libA.la > .PHONY: A > > foo: > cd src/foo && $(MAKE) $(AM_MAKEFLAGS) libfoo.la > .PHONY: foo
Yes, that would be a bit ugly (as you'd be specifying the same information in more than one place). You could put the dependency in the makefile in src/A though: ../foo/libfoo.la: cd ../foo && $(MAKE) $(AM_MAKEFLAGS) libfoo.la .PHONY: ../foo/libfoo.la (The phony qualifier is because the rule does not list the real dependencies of libfoo.la). Mind you though that this approach will cause more `make' instances to be invoked than necessary; depending on the size of the foo/Makefile this may be slowing down the build a bit. Generally, there are always trade-offs between recursive and nonrecursive make setups. Both have their merits and their backdraws, there's Peter Miller's classic paper "Recursive Make Considered Harmful" and also some arguments for the other side in this thread http://thread.gmane.org/gmane.comp.sysutils.automake.general/7250 (some of the arguments there are specific to Automake-generated portable makefiles, as opposed to, say, hand-written makefiles for GNU make). Cheers, Ralf