A Solaris 8 make bug

; cat Makefile
foo : /tmp/bar
	touch foo
; mkdir /tmp/bar
; make
touch foo
; make
`foo' is up to date.
; touch /tmp/bar/t
; make
`foo' is up to date.
; gmake
touch foo

As ' make -ndd ' shows, for some reason Solaris 8's version of make decides that directories always have a timestamp of 0. It knows that they exist, because if you remove /tmp/bar it complains about it. This behavior is the same for both /usr/ccs/bin/make and /usr/xpg4/bin/make .

On a quick test, this bug appears to be gone in Solaris 9. There's a Solaris 8 make patch not applied to our systems, but the README doesn't mention anything like this bug.

(Depending on a directory is the kind of thing you do if you're building something from a bunch of files dropped into a directory, and you need to do something every time a file is added or removed.)

I note in passing that make problems that cause things to not get rebuilt are much more annoying than make problems that cause things to get rebuilt all the time.