help-make
[Top][All Lists]
Advanced

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

make: *** No rule to make target `|', needed by `all'. Stop.


From: Perrog
Subject: make: *** No rule to make target `|', needed by `all'. Stop.
Date: Wed, 21 Feb 2007 22:45:45 +0100

Hi!

I have a problem where a macro cause unexpected behaviour. I'm having
a hard time figuring out what is really going on, because "make -w -d"
does not give me any useful information.

Consider this almost canonical makefile describing the problem:

# ------------------------------------------------------------------------
# SampleMakefile
# execute with:
#  touch hello hello.a hello.b
#  module=no make -f SampleMakefile
A = `test .$module = .yes && echo .a || echo .b`

B = hello$(A)
C = hello

all: $(A)

$(A): $(B)
      @echo "Passed"
# ------------------------------------------------------------------------

It results in an error

SampleMakefile:13: target `echo' given more than once in the same rule.
make: *** No rule to make target `hello`test', needed by ``test'.  Stop.

However, in my real project "|" is missing, not "hello`test".

What is wrong with this makefile? Is it malformed? Is this a make bug?

My version of make is:
$make -v
GNU Make 3.80
<copyleft cutted>

Thanks for any help!
Rog




reply via email to

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