Помимо написания Makefile самостоятельно, вы также можете использовать CMake, который является удобным генератором системы сборки.
Простой пример файла CMakeLists.txt:
cmake_minimum_required(VERSION 2.6)
project(yourproject C)
add_executable(yourexecutable file1.c file1.h file2.c file2.h ...)
Затем вы можете сделать в терминале:
$ cmake .
$ make
и ваш исполняемый файл будет собран.
Однако будьте осторожны, так как сгенерированный make-файл использует cmake и поэтому сам по себе не распространяется.