mk works as expected, but not mk2
Seems like static pattern rule is the difference.
How to make mk2 work similar to mk?
$ cat mk
%.o: ../%.c
@echo R0 $@ $<
all: aa/bb/obj/x.o aa/bb/obj/y.o
aa/bb/x.c aa/bb/y.c:
touch $@
$ make -f mk
R0 aa/bb/obj/x.o aa/bb/obj/../x.c
R0 aa/bb/obj/y.o aa/bb/obj/../y.c
$ cat mk2
%.o: ../%.c
@echo R0 $@ $<
all: aa/bb/obj/x.o aa/bb/obj/y.o
aa/bb/obj/x.o: %.o: ../%.c
@echo R1 $@ $<
aa/bb/x.c aa/bb/y.c:
touch $@
$ make -f mk2
make: *** No rule to make target `../aa/bb/obj/x.c', needed by
`aa/bb/obj/x.o'. Stop.
James
_______________________________________________
help-gnu-utils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gnu-utils