help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Performance


From: Paul D. Smith
Subject: Re: Performance
Date: Thu, 12 Jul 2001 16:53:35 -0400

%% Krzysztof Horecki <address@hidden> writes:

  kh> I got rid of pretty much of the time-wasting stuff. Of course I used
  kh> includes, no sub-make invocations, but there were many shell invocations
  kh> inside.

  kh> ... But it still needs about 5s on a PIII 800Mhz for about 500 file
  kh> project to say 'nothing to do'. Of course, executing same make for the
  kh> second time is much faster, because of the cache, I think. 

  kh> One thing could be this:

  kh>        Found an implicit rule for `../pl/pl_binder_man_LINUX_g.o'.
  kh>          Considering target file `../pl/pl_binder_man.c'.
  kh>           Looking for an implicit rule for `../pl/pl_binder_man.c'.
  >>> Trying pattern rule with stem `pl_binder_man'.
  >>> Trying implicit prerequisite `../pl/pl_binder_man.w'.
  >>> Trying pattern rule with stem `pl_binder_man'.
  >>> Trying implicit prerequisite `../pl/pl_binder_man.w'.
  >>> Looking for a rule with intermediate file `../pl/pl_binder_man.w'.
  >>> Avoiding implicit rule recursion.
 
  kh> how can I get rid of it?

It's very hard to know without seeing all your pattern rules.

  kh> % :: %.w  ...doesn't help

No, it wouldn't: the above happens because make is trying to see if it
can build a file ../pl/pl_binder_man.c.  The above only means that make
won't try to build the .w from anything else, and won't match unless the
%.w file exists.

If you don't want make to look for how to build the .c file, you need to
make the rules that list .c files as prerequisites be terminal, like
this:

  %.o :: %.c
        ...

but, of course, you can't do this if your build environment generates .c
files from some other files.


That's why I say it's impossible to give much advice without seeing all
your implicit rules (I don't need to see the contents of the command
scripts, just which patterns are defined and how.

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



reply via email to

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