Broken makefile dependencies?

I am seeing a very strange situation where doing:

   make -C dir all

does not rebuild anything in dir, even though stuff is stale. This command is what the recursive makefile uses to walk the directory structure.

The really strange thing is that:

   cd dir; make all

does rebuild stuff.

Does anyone have any idea what is going on here? I thought they were identical.


   make -d -C dir all >run1
   cd dir; make -d all >../run2

cd ..
diff -udb run1 run2 | less

But maybe you don't have GNU make, but some Apple (BSD-derived)
make which doesn't have the "-d" switch ...

An even better way to track down these kinds of problem is to use remake:


$ make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.

:slight_smile: At least it claims to be a GNU make...