help-make
[Top][All Lists]
Advanced

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

Re: Problem generating dependency files


From: arvind raju
Subject: Re: Problem generating dependency files
Date: Sat, 8 May 2010 11:30:29 +0530

Hi Philip,

Adding makefile and %.d rules did not help.

What i am wondering here is, if make finds the target "tld2lec_msg.o (see debug log below) and if it doesn't exist, it should search for the prerequisite i.e tld2lec_msg.c and search the same in the path given in VPATH. Why does it use implicit rule for ld2lec_msg.c then pattern rule
ld2lec_msg? If make does this for each and every file, then to build around 500 files will be very slow.

Is there a way to avoid make to look for implicit rule ?
Considering target file `tld2lec_msg.o'.
       File `tld2lec_msg.o' does not exist.
        Considering target file `tld2lec_msg.c'.
         Looking for an implicit rule for `tld2lec_msg.c'.
         Trying pattern rule with stem `tld2lec_msg'.
         Trying implicit prerequisite `tld2lec_msg.y'.
         Trying pattern rule with stem `tld2lec_msg'.
         Trying implicit prerequisite `tld2lec_msg.l'.
         Trying pattern rule with stem `tld2lec_msg'.
         Trying implicit prerequisite `tld2lec_msg.w'.
         Trying pattern rule with stem `tld2lec_msg'.
         Trying implicit prerequisite `tld2lec_msg.w'.
         Trying pattern rule with stem `tld2lec_msg.c'.
         Trying implicit prerequisite `tld2lec_msg.c,v'.
         Trying pattern rule with stem `tld2lec_msg.c'.
         Trying implicit prerequisite `RCS/tld2lec_msg.c,v'.
         Trying pattern rule with stem `tld2lec_msg.c'.
         Trying implicit prerequisite `RCS/tld2lec_msg.c'.
         Trying pattern rule with stem `tld2lec_msg.c'.
         Trying implicit prerequisite `s.tld2lec_msg.c'.
         Trying pattern rule with stem `tld2lec_msg.c'.
         Trying implicit prerequisite `SCCS/s.tld2lec_msg.c'.
         Trying pattern rule with stem `tld2lec_msg'.
         Trying implicit prerequisite `tld2lec_msg.y'.
         Looking for a rule with intermediate file `tld2lec_msg.y'.
          Avoiding implicit rule recursion.
          Trying pattern rule with stem `tld2lec_msg.y'.
          Trying implicit prerequisite `tld2lec_msg.y,v'.
          Trying pattern rule with stem `tld2lec_msg.y'.
          Trying implicit prerequisite `RCS/tld2lec_msg.y,v'.
          Trying pattern rule with stem `tld2lec_msg.y'.
          Trying implicit prerequisite `RCS/tld2lec_msg.y'.
          Trying pattern rule with stem `tld2lec_msg.y'.
          Trying implicit prerequisite `s.tld2lec_msg.y'.
          Trying pattern rule with stem `tld2lec_msg.y'.
          Trying implicit prerequisite `SCCS/s.tld2lec_msg.y'.
         Trying pattern rule with stem `tld2lec_msg'.
         Trying implicit prerequisite `tld2lec_msg.l'.
         Looking for a rule with intermediate file `tld2lec_msg.l'.
          Avoiding implicit rule recursion.
          Trying pattern rule with stem `tld2lec_msg.l'.
          Trying implicit prerequisite `tld2lec_msg.l,v'.
          Trying pattern rule with stem `tld2lec_msg.l'.
          Trying implicit prerequisite `RCS/tld2lec_msg.l,v'.
          Trying pattern rule with stem `tld2lec_msg.l'.
          Trying implicit prerequisite `RCS/tld2lec_msg.l'.
          Trying pattern rule with stem `tld2lec_msg.l'.
          Trying implicit prerequisite `s.tld2lec_msg.l'.
          Trying pattern rule with stem `tld2lec_msg.l'.
          Trying implicit prerequisite `SCCS/s.tld2lec_msg.l'.
         Trying pattern rule with stem `tld2lec_msg'.
         Trying implicit prerequisite `tld2lec_msg.w'.
         Looking for a rule with intermediate file `tld2lec_msg.w'.
          Avoiding implicit rule recursion.
          Trying pattern rule with stem `tld2lec_msg.w'.
          Trying implicit prerequisite `tld2lec_msg.w,v'.
          Trying pattern rule with stem `tld2lec_msg.w'.
          Trying implicit prerequisite `RCS/tld2lec_msg.w,v'.
          Trying pattern rule with stem `tld2lec_msg.w'.
          Trying implicit prerequisite `RCS/tld2lec_msg.w'.
          Trying pattern rule with stem `tld2lec_msg.w'.
          Trying implicit prerequisite `s.tld2lec_msg.w'.
          Trying pattern rule with stem `tld2lec_msg.w'.
          Trying implicit prerequisite `SCCS/s.tld2lec_msg.w'.
         Trying pattern rule with stem `tld2lec_msg'.
         Rejecting impossible implicit prerequisite `tld2lec_msg.w'.
         No implicit rule found for `tld2lec_msg.c'.
         Finished prerequisites of target file `tld2lec_msg.c'.
        No need to remake target `tld2lec_msg.c'; using VPATH name `..\..\..\.\platform\bt\lec\src/tld2lec_msg.c'.
       Finished prerequisites of target file `tld2lec_msg.o'.
      Must remake target `tld2lec_msg.o'.
Creating temporary batch file c:\tmp\make29283.sh
CreateProcess(C:\cygwin\bin\sh.exe,C:/cygwin/bin/sh.exe c:\tmp\make29283.sh,...)
Putting child 0x009643e0 (tld2lec_msg.o) PID 9857296 on the chain.
Live child 0x009643e0 (tld2lec_msg.o) PID 9857296
Compling ..\..\..\.\platform\bt\lec\src/tld2lec_msg.c
Reaping winning child 0x009643e0 PID 9857296
Cleaning up temp batch file c:\tmp\make29283.sh
armcc -MD -c ..\..\..\.\platform\bt\lec\src/tld2lec_msg.c -via b.txt
CreateProcess(c:\Program Files\ARM\ADSv1_2\12_EL\bin\armcc.exe,armcc -MD -c ..\..\..\.\platform\bt\lec\src/tld2lec_msg.c -via b.txt,...)
Live child 0x009643e0 (tld2lec_msg.o) PID 9857296
Reaping winning child 0x009643e0 PID 9857296
Removing child 0x009643e0 PID 9857296  from chain.
      Successfully remade target file `tld2lec_msg.o'.

Thanks in Advance!


On Thu, May 6, 2010 at 9:43 PM, Philip Guenther <address@hidden> wrote:
On Thu, May 6, 2010 at 2:02 AM, nature <address@hidden> wrote:
> I got away with the problem by making use of the compiler switch "-MD" to
> get the dependency files during compilation itself .
> When i included this .d files, make takes lot of time to build (its almost
> hung).
> Even before this change ,build was slow, but after this change its worst.
> I run make in the debug mode to find out where the problem is and was
> surprised to see the log message.
> Inspite of using VPATH to find for the source files, make searches it
> elsewhere and at the end it looks into the path specified in the VPATH .
>
> What is going wrong here? any suggestions please??

Try adding rules for the Makefile and dependency files that do nothing, ala:

Makefile:
%.d:

Those will short-circuit make's "how do I build this make file?" search.

(If you actually build your Makefile, perhaps from RCS or similar,
then you should obviously not use an empty rule for it.)


Philip Guenther


reply via email to

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