How can I make a simple makefile to generate the object files and output binary in a bin directory from any number of c source and header files in a src directory?  In this example structure, main includes module_a.h and module_b.h.  module_a.h and module_b.h each only include stdio.h.
I can manage the clean rule, but do not know how to automatically generate the .o files and dependencies.
├── bin
├── makefile
├── README.md
└── src
    ├── main.c
    ├── module_a.c
    ├── module_a.h
    ├── module_b.c
    └── module_b.h