help-make
[Top][All Lists]
Advanced

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

Re: Why make complains though implicit rule is present ..


From: sharan basappa
Subject: Re: Why make complains though implicit rule is present ..
Date: Fri, 08 Jun 2007 13:01:28 +0000

Hi Paul,

Below is what make outputs when I run with -d option.
I am not sure what this really means. But am surprised that at the message
that says "no implicit rule found for dir1/print2dir1.d" since a pattern
rule to generate .d from .c is defined in the make file ..

Am I missing some VPATH definition or position of the implicit rule

Trying implicit prerequisite `dir1/print2dir1.d;.sh'.
 Looking for a rule with intermediate file `dir1/print2dir1.d;.sh'.
  Avoiding implicit rule recursion.
  Trying pattern rule with stem `print2dir1.d;.sh'.
  Trying implicit prerequisite `dir1/print2dir1.d;.sh,v'.
  Trying pattern rule with stem `print2dir1.d;.sh'.
  Trying implicit prerequisite `dir1/RCS/print2dir1.d;.sh,v'.
  Trying pattern rule with stem `print2dir1.d;.sh'.
  Trying implicit prerequisite `dir1/RCS/print2dir1.d;.sh'.
  Trying pattern rule with stem `print2dir1.d;.sh'.
  Trying implicit prerequisite `dir1/s.print2dir1.d;.sh'.
  Trying pattern rule with stem `print2dir1.d;.sh'.
  Trying implicit prerequisite `dir1/SCCS/s.print2dir1.d;.sh'.
 No implicit rule found for `dir1/print2dir1.d;'.
 Finished prerequisites of target file `dir1/print2dir1.d;'.
Must remake target `dir1/print2dir1.d;'.
make: *** No rule to make target `dir1/print2dir1.d;'.  Stop.





From: Paul Smith <address@hidden>
Reply-To: address@hidden
To: sharan basappa <address@hidden>
CC: address@hidden
Subject: Re: Why make complains though implicit rule is present ..
Date: Fri, 08 Jun 2007 08:38:19 -0400

On Fri, 2007-06-08 at 11:10 +0000, sharan basappa wrote:

> ifneq "$(MAKECMDGOALS)" "clean"
>   include $(dependencies)
> endif
>
> %.d: %.c
>         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -M $< | \
>         $(SED) 's,\($(notdir $*)\.o\) *:,$(dir $@)\1 $@: ,' > address@hidden
>         $(MV) address@hidden $@

> Reading makefiles...
> Reading makefile `SmallPrjMain.mk'...
> Reading makefile `dir1/dir1.mk' (search path) (no ~ expansion)...
> Reading makefile `dir1/print1dir1.d' (search path) (no ~ expansion)...
> SmallPrjMain.mk:36: dir1/print1dir1.d: No such file or directory
> Reading makefile `dir1/print2dir1.d;' (search path) (no ~ expansion)...
> SmallPrjMain.mk:36: dir1/print2dir1.d;: No such file or directory
> make: *** No rule to make target `dir1/print2dir1.d;'.  Stop.

Typically you'll get an error like that if you don't have a
dir1/print2dir1.c file, so make can't use the implicit rule you show
above.  However, running make with the -d option will get you more
details about exactly what make is looking for and why it can't rebuild.

--
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          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

_________________________________________________________________
Shaadi.com Matrimonials. Register FREE! http://www.shaadi.com/ptnr.php?ptnr=mhottag





reply via email to

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