> Date: Fri, 3 Aug 2012 14:21:06 +0200
> From: Marco Pfatschbacher <[email protected]>
> 
> If you address targets in a mixed form,
> as in: with or without their full path,
> make ignores source dependencies.
> 
> Example
> 
> $ cat Makefile
> all: myprog
> 
> myobj.o: mysource.c
>       date > $@
> 
> #myprog: myobj.o <- this would work
> myprog: ${.CURDIR}/myobj.o
>       date > $@
> 
> 
> [ first run. creates myobj.o and myprog ]
> $ touch mysource.c; make
> date > myobj.o
> date > myprog
> 
> [ this should rebuild everything, but does nothing!]
> $ touch mysource.c; make
> 
> While on OpenBSD 4.4 this used to work:
> $ touch mysource.c; make
> date > /home/marco/myobj.o
> date > myprog
> 
> This has pbbly sth to do with the target name, now
> being normalized to its relative path.
> On 4.4, $@ expands to "/home/marco/myobj.o"
> while post-4.6 it will always be just "myobj.o"

What happens if you use make -j1?

Reply via email to