For simple projects that distributes all files in the same directory it is enough to have a single Makefile.am that builds everything in place.
In larger projects it is common to organize files in different directories, in a tree. For instance one directory per program, per library or per module. The traditional approach is to build these subdirectory recursively: each directory contains its Makefile (generated from Makefile.am), and when make is run from the top level directory it enters each subdirectory in turn to build its contents.