On Wed, 2007-01-31 at 10:22 +0000, sharan basappa wrote:

> >Make has an implicit "%.o : %.c" rule.  Look in the make info file, 
> >section 10.2 "Catalogue of Implicit Rules".
> 
> The question I was asking how make decides to compile even though I
> dont have a rule of the form
> *.o : *.c
> The only rule I have is
> a : a.o
> I believe this rule should force make to invoke linker but make also invokes 
> compiler (cc -c -o b.o b.c)

Sure it invokes the compiler: how else can you get the .o you need to
link?

Dave already gave you the answer: make has a number of built-in implicit
rules that tell it how to do various things: building a .o from a .c is
of course one of those built-in rules.  So, you don't need to provide an
explicit rule for this (unless you don't like the built-in rule and want
to change it to something else).

As Dave says, the GNU make manual has a list of many of the built-in
rules.  Use "make -p -f /dev/null" to see an entire list.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[EMAIL PROTECTED]>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist


_______________________________________________
Help-make mailing list
Help-make@gnu.org
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to