[Top][All Lists]
[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
- make: *** No rule to make target `|', needed by `all'. Stop.,
Perrog <=