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: Thu, 6 May 2010 17:40:25 +0530

Here is the debug log

find_and_set_shell path search set default_shell = C:/cygwin/bin/sh.exe
Reading makefiles...
Reading makefile `makefile'...
Updating makefiles....
 Considering target file `makefile'.
  Looking for an implicit rule for `makefile'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.o'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.c'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.cc'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.C'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.cpp'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.p'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.f'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.C'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.cpp'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.p'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.f'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.F'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.r'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.s'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.S'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.mod'.
   Trying pattern rule with stem `makefile.o'.
   Trying implicit prerequisite `makefile.o,v'.
   Trying pattern rule with stem `makefile.o'.
   Trying implicit prerequisite `RCS/makefile.o,v'.
   Trying pattern rule with stem `makefile.o'.
No implicit rule found for `makefile'.
  Finished prerequisites of target file `makefile'.
 No need to remake target `makefile'.
Considering target file `lec_aes.o'.
      Considering target file `lec_aes.c'.
       Looking for an implicit rule for `lec_aes.c'.
       Trying pattern rule with stem `lec_aes'.
       Trying implicit prerequisite `lec_aes.y'.
       Trying pattern rule with stem `lec_aes'.
       Trying implicit prerequisite `lec_aes.l'.
       Trying pattern rule with stem `lec_aes'.
       Trying implicit prerequisite `lec_aes.w'.
       Trying pattern rule with stem `lec_aes'.
       Trying implicit prerequisite `lec_aes.w'.
       Trying pattern rule with stem `lec_aes.c'.
       Trying implicit prerequisite `lec_aes.c,v'.
       Trying pattern rule with stem `lec_aes.c'.
       Trying implicit prerequisite `RCS/lec_aes.c,v'.
       Trying pattern rule with stem `lec_aes.c'.
       Trying implicit prerequisite `RCS/lec_aes.c'.
       Trying pattern rule with stem `lec_aes.c'.
       Trying implicit prerequisite `s.lec_aes.c'.
       Trying pattern rule with stem `lec_aes.c'.
       Trying implicit prerequisite `SCCS/s.lec_aes.c'.
       Trying pattern rule with stem `lec_aes'.
       Trying implicit prerequisite `lec_aes.y'.
       Looking for a rule with intermediate file `lec_aes.y'.
        Avoiding implicit rule recursion.
        Trying pattern rule with stem `lec_aes.y'.
        Trying implicit prerequisite `lec_aes.y,v'.
        Trying pattern rule with stem `lec_aes.y'.
        Trying implicit prerequisite `RCS/lec_aes.y,v'.
        Trying pattern rule with stem `lec_aes.y'.
        Trying implicit prerequisite `RCS/lec_aes.y'.
        Trying pattern rule with stem `lec_aes.y'.
        Trying implicit prerequisite `s.lec_aes.y'.
        Trying pattern rule with stem `lec_aes.y'.
        Trying implicit prerequisite `SCCS/s.lec_aes.y'.
       Trying pattern rule with stem `lec_aes'.
       Trying implicit prerequisite `lec_aes.l'.
       Looking for a rule with intermediate file `lec_aes.l'.
        Avoiding implicit rule recursion.
        Trying pattern rule with stem `lec_aes.l'.
        Trying implicit prerequisite `lec_aes.l,v'.
        Trying pattern rule with stem `lec_aes.l'.
        Trying implicit prerequisite `RCS/lec_aes.l,v'.
        Trying pattern rule with stem `lec_aes.l'.
        Trying implicit prerequisite `RCS/lec_aes.l'.
        Trying pattern rule with stem `lec_aes.l'.
        Trying implicit prerequisite `s.lec_aes.l'.
        Trying pattern rule with stem `lec_aes.l'.
        Trying implicit prerequisite `SCCS/s.lec_aes.l'.
       Trying pattern rule with stem `lec_aes'.
       Trying implicit prerequisite `lec_aes.w'.
       Looking for a rule with intermediate file `lec_aes.w'.
        Avoiding implicit rule recursion.
        Trying pattern rule with stem `lec_aes.w'.
        Trying implicit prerequisite `lec_aes.w,v'.
        Trying pattern rule with stem `lec_aes.w'.
        Trying implicit prerequisite `RCS/lec_aes.w,v'.
        Trying pattern rule with stem `lec_aes.w'.
        Trying implicit prerequisite `RCS/lec_aes.w'.
        Trying pattern rule with stem `lec_aes.w'.
        Trying implicit prerequisite `s.lec_aes.w'.
        Trying pattern rule with stem `lec_aes.w'.
        Trying implicit prerequisite `SCCS/s.lec_aes.w'.
       Trying pattern rule with stem `lec_aes'.
       Rejecting impossible implicit prerequisite `lec_aes.w'.
       No implicit rule found for `lec_aes.c'.
       Finished prerequisites of target file `lec_aes.c'.
      No need to remake target `lec_aes.c'; using VPATH name `..\..\..\.\platform\bt\lec\src/lec_aes.c'.
     Finished prerequisites of target file `lec_aes.o'.

What i dont understand is, why make is looking for implicit rule for makefile which is a file name
In spite of specifying the prerqusite in make file, why is it looking for other implicit prerequisite?


These things makes build very slow.

Is there anything wrong in my makefile?

CC=armcc
AS=armasm
LD=armlink
AR=armar
FE=fromelf
TCC=tcc
CPP=armcpp
OBJDIR = C:\OBJDIR\bin

#Object files are listed in OBJ_list.txt
include OBJ_list.txt


OBJS := $(OBJ2:.o=.o)
OBJI := $(OBJ2:.o=.is)


OBJDIR = C:\OBJDIR\bin



VPATH = ..\..\..\.inc ..\..\..\.\app\tl\exp ..\..\..\.\platform\os\osal\exp ..\..\..\.\platform\os\osal\src ..\..\..\.\platform\bt\bc_c65\exp \
        ..\..\..\.\platform\bt\bc_c65\src ..\..\..\.\platform\bt\hci\exp ..\..\..\.\platform\bt\hci\src \
        ..\..\..\.\platform\bt\lc\exp ..\..\..\.\platform\bt\lec\exp ..\..\..\.\platform\bt\lec\src ..\..\..\.\platform\bt\llc\exp \
        ..\..\..\.\platform\bt\lm\exp ..\..\..\.\platform\bt\sp\exp ..\..\..\.\platform\bt\tld\exp \
        ..\..\..\.\platform\sc\bm\exp ..\..\..\.\platform\sc\dbg\exp ..\..\..\.\platform\sc\ddc\exp \
        ..\..\..\.\platform\sc\eep\exp ..\..\..\.\platform\sc\err\exp ..\..\..\.\platform\sc\hal\exp \
        ..\..\..\.\platform\sc\i2c\exp ..\..\..\.\platform\sc\init\exp ..\..\..\.\platform\sc\pcm\exp \
        ..\..\..\.\platform\sc\scthrd\exp ..\..\..\.\platform\sc\stc\exp ..\..\..\.\platform\sc\psc\exp \
        ..\..\..\.\platform\sc\misc\exp ..\..\..\.\platform\sc\load\exp ..\..\..\.\platform\bt\sp\src ..\..\..\.\platform\bt\lm\src \
        ..\..\..\.\platform\bt\llc\src ..\..\..\.\platform\sc\bm\src ..\..\..\.\platform\sc\dbg\src ..\..\..\.\platform\sc\ddc\src \
        ..\..\..\.\platform\sc\eep\src ..\..\..\.\platform\sc\err\src ..\..\..\.\platform\sc\hal\src ..\..\..\.\platform\sc\i2c\src \
        ..\..\..\.\platform\sc\init\src ..\..\..\.\platform\sc\pcm\src ..\..\..\.\platform\sc\scthrd\src ..\..\..\.\platform\sc\stc\src \
        ..\..\..\.\platform\sc\hal\src ..\..\..\.\platform\sc\psc\src ..\..\..\.\platform\sc\misc\src ..\..\..\.\platform\sc\load\src \
        ..\..\..\.\platform\bt\lc\src ..\..\..\.\platform\bt\lc\datah\src ..\..\..\.\platform\bt\lc\freqh\src ..\..\..\.\platform\bt\llc\src \
        ..\..\..\platform\bt\lc\proth\src ..\..\..\.\platform\bt\lc\sched\src ..\..\..\.\platform\bt\lc\testm\src ..\..\..\.\platform\bt\lc\scath\src \
        ..\..\..\.\platform\bt\lec\src ..\..\..\.\platform\os\threadx\exp ..\..\..\.\app\tl\ah\loc_exp ..\..\..\.\app\tl\ah\src ..\..\..\.\app\tl\h2\loc_exp \
        ..\..\..\.\app\tl\h4n\loc_exp ..\..\..\.\app\tl\h5\loc_exp ..\..\..\.\app\tl\tlc\loc_exp ..\..\..\.\app\tl\uart\loc_exp \
        ..\..\..\.\app\tl\usb\loc_exp ..\..\..\.\platform\sc\misc\exp ..\..\..\.\platform\sc\load\exp ..\..\..\.\platform\os\threadx\exp \
         ..\..\..\.\app\tl\h2\loc_exp ..\..\..\.\app\tl\h4n\loc_exp ..\..\..\.\app\tl\h5\loc_exp ..\..\..\.\app\tl\h2\src \
        ..\..\..\.\app\tl\tlc\loc_exp ..\..\..\.\app\tl\uart\loc_exp ..\..\..\.\app\tl\usb\loc_exp ..\..\..\.\app\tl\h4n\src ..\..\..\.\app\tl\h5\src \
        ..\..\..\.\app\tl\tlc\src ..\..\..\.\app\tl\uart\src ..\..\..\.\app\tl\usb\src ..\..\..\.\platform\sc\misc\exp \
        ..\..\..\.\platform\bt\tld\src ..\..\..\.\platform\bt\tld\exp ..\..\..\.\platform\bt\llc\exp \
        ..\..\..\.\platform\bt\lm\exp
           
all: ROM_RELEASE.axf


rebuild: clean all

clean:

# for Windows
    if exist $(OBJDIR)\*.txt del $(OBJDIR)\*.txt
    if exist $(OBJDIR)\*.o del $(OBJDIR)\*.o
    if exist $(OBJDIR)\*.is del $(OBJDIR)\*.is
    if exist *.axf del *.axf
   

dependencies = $(subst .o,.d, $(OBJ))

-include $(dependencies)

ROM_RELEASE.axf : $(OBJ1) $(OBJ2)
    @echo "Linking - generating AXF file"
   
    $(LD) $^ -o $@

$(OBJ1):%.o:%.c
    @echo "Compling $<"
    $(CC) -c $< -o $@ -via b.txt
   
$(OBJ2):$(OBJI) $(OBJS)
$(OBJI):%.is:%.s
    @echo "Compling $<"
    $(CPP) -E $< >$(<D)/$@ -via b.txt

$(OBJS):%.o:%.is
    @echo "Compling $<"
    $(AS) -MD $< -o $@ -via b1.txt


On Thu, May 6, 2010 at 5:00 PM, Greg Chicares <address@hidden> wrote:
On 2010-05-06 09:02Z, nature 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.

Output of 'make -d' is usually lengthy. If this is the first time you've
used 'make -d', that may seem surprising to you. Or is there anything in
particular about it that's surprisingly different from the usual 'make -d'
output?

> 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 .

I think you're saying that you specified VPATH in your makefile, then
used 'gcc -MD', and gcc looks for headers in its own header directories
first. That's normal; VPATH doesn't affect it.

When 'gcc -MD' takes more time than desired, one common recommendation
is to use 'gcc -MMD' instead.


reply via email to

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