title: Makefile always thinks project is up to date - but files don't even exist
body: <p>I have the following makefile:</p>
  
  <pre>CCC = g++
  CCFLAGS = -ansi
  
  driver: driver.o graph.o
          $(CCC) -o driver driver.o graph.o
  
  graph.o: graph.h
  driver.o: graph.h
  
  adjl:
          rm -f graph.h graph.cc
          ln -s adjl/graph.cc .
          ln -s adjl/graph.h .
          touch graph.cc graph.h
  adjm:
          rm -f graph.h graph.cc
          ln -s adjm/graph.cc .
          ln -s adjm/graph.h .
          touch graph.cc graph.h
  
  clean:
          rm -f *.o
  real_clean: clean
          rm -f graph.cc graph.h
          rm -f driver</pre>
  
  <p>The idea is that I am trying to link two different .cc/.h files depending on which implementation I want to use.  If I make real_clean, none of the .cc/.h files exist, I merely have a driver.cc file and the makefile in the folder.  If I call make, it says they are up to date.  This happens even if I edit the files in adjl/adjm to make them "newer" versions.</p>
  
  <pre> [95]% ls
  adjl/  adjm/  driver.cc  makefile
   [96]% make adjl
  make: `adjl' is up to date.
   [97]% make adjm
  make: `adjm' is up to date.</pre>
  
  <p>I took the template makefile from another project I had done, and they are written the same way but I can repeatedly make the same commands with no "up to date" issues.</p>
  
  <p>I have googled but have not found a problem similar to mine (they generally seem to involve users who aren't cleaning before making).</p>
  
  <p>Thanks to anyone for reading.</p>