[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Strange behaviour with make 3.79.1
From: |
thierry |
Subject: |
Strange behaviour with make 3.79.1 |
Date: |
Tue, 20 Nov 2001 12:13:29 +0100 |
Hello!
I've found a strange behaviour of make v3.79.1. A sample of the Makefile is
joined with this mail. The interesting part is the $(BASE) rule:
$(BASE): $(BASE).h $(OBJ2) $(OBJ1).o
@echo "it's okay..."
This rule indicate to generate $(BASE).h if it doesn't exists, a special rule
has been created for that, which looks like after substitution:
$(BASE).h:
touch $(BASE).h foo-def.c foo-ijk.c foo-xyz.c
The second part of the $(BASE) rule, indicate to generate "foo-def.o foo-ijk.o
foo-xyz.o"
(after substitution). For that, another special rule exists:
%.o: %.c
touch %.o
This indicates that starting with a .c file, we can generate a .o file. But here
make complains with:
$ make clean ; make
rm -f foo* abc.o
touch foo.h foo-def.c foo-ijk.c foo-xyz.c
make: *** No rule to make target `foo-def.o', required for `foo'. Stop.
More strange, running make a second time seems to solve the problem...
$ make
touch foo-def.o
touch foo-ijk.o
touch foo-xyz.o
touch abc.o
it's okay...
I presume that make read once directory content and then use this list for
checking file existence. Is this really a conveniant behaviour?
Thierry
make-bugs.tgz
Description: Binary data
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Strange behaviour with make 3.79.1,
thierry <=