Hi Paul, Thanks for your help. Yes, all-recursive: is defined as rule $(RECURSIVE_TARGETS): where it handles the subdirectories.
Cheers, Jan ----- Original Message ----- From: "Paul D. Smith" <[EMAIL PROTECTED]> To: "Jan M" <[EMAIL PROTECTED]> Cc: <[email protected]> Sent: Wednesday, July 20, 2005 3:41 PM Subject: Re: determining targets with recursive makefiles > %% "Jan M" <[EMAIL PROTECTED]> writes: > > jm> The GNU make manual reference to recursion doesnt provide a hint > jm> as to how, with this method of recursion, make is finding the > jm> sub-makefiles > > It uses exactly the same method as the top-level makefile: a -f > argument, or the default names for makefiles, or MAKEFILES variable. > > jm> BUILT_SOURCES = stamp-gc-h #note: not glibconfig.h > jm> RECURSIVE_TARGETS = ... all-recursive ... > jm> all: $(BUILT_SOURCES) config.h > jm> $(MAKE) $(AM_MAKEFLAGS) all-recursive > > jm> Exactly what is happening here? > > I'm not sure what you're question is... this invokes sub-makes, but in > the same directory. So, it reads all the same makefiles as below. > > But, since you explicitly invoked the "all-recursive" target it will run > that target instead of the "all" target. > > jm> By what mechanism is make locating the other makefiles (cd > jm> <subdirectory> appears not to be used as in the example of > jm> recursion in the manual)? > > THIS invocation is NOT locating "the other makefiles"; it's re-reading > the same makefiles. The cd to the subdirectory and the read of those > makefiles will happen in the command script for the -recursive targets. > > jm> What is the significance of all-recursive, which is declared but > jm> appears not to be defined? > > It is defined. Look more closely at your makefile. > > If it weren't defined you'd get an error "don't know how to make target" > or similar. _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
