title: Nonrecursive Multilevel makefile
body: <p>I am starting to work on a project that I would like to grow to be fairly large. I Want to create a makefile that will grow with the project without much maintenance. Here is the directory structure that I have right now.</p>
  
  <pre><code>.
  +--src
  |  +--part1
  |  |  +--part1.c
  |  |  +--part1.h
  |  +--part2
  |  |  +--part2.c
  |  |  +--part2.h
  .  .
  .  .
  .  .
  |  +--partN
  |  |  +--partN.c
  |  |  +--partN.h
  +--test
  |  +--part1_tests
  |  |  +--part1_testX.c
  |  |  +--part1_testY.c
  .  .
  .  .
  .  .
  +--obj
  |  +--part1.o
  |  +--part2.o
  .  .
  .  .
  .  .
  |  +--partN.o
  +--a.out
  </code></pre>
  
  <p>I have never had a project of this scale and never needed to make a make file for such a project.  How would I design a makefile for this? Thanks!</p>