mk works as expected, but not mk2
Seems like static pattern rule is the differentce.
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
help-gnu-utils@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-utils

Reply via email to