title: Using GNU Make with subdirectories
body: <p>I was wondering what different approaches of using Make in a project with subdirectories exist, and what are their advantages/drawbacks, but could never see a good summary or cookbook.</p>
  
  <p>I have seen in my researches mainly the "recursive" and "single makefile" approaches, but are there others ?</p>
  
  <p>I also assume that there is not only one "recursive" or "single makefile" approaches but several, so could somebody sum it up ?</p>
  
  <p>For my particular case, I would like a directory architecture looking like this:</p>
  
  <pre><code>.
  ├── build
  │   ├── *.d
  │   ├── *.o
  |   ├── subdir1
  |   │   ├── *.d
  |   │   └── *.o
  |   └── subdir2
  |       ├── *.d
  |       ├── *.o
  |       └── subdir3
  |           ├── *.d
  |           └── *.o
  ├── include
  │   ├── *.h
  │   └── *.h
  ├── Makefile
  └── src
      ├── *.c
      ├── *.h
      ├── subdir1
      │   ├── *.c
      │   └── *.h
      └── subdir2
          ├── *.c
          ├── *.h
          └── subdir3
              ├── *.c
              └── *.h
  </code></pre>
  
  <p>Which solution should I choose ? Possibly one which would allow source files with the same name ?</p>