Depending on the number of headers and your development habits, you may want to investigate gccmakedep. This program examines your current directory and adds to the end of the makefile the header dependencies for each .c/cpp file. This is overkill when you have 2 headers and one program file. However, if you have 5+ little test programs and you are editing one of 10 headers, you can then trust make to rebuild exactly those programs which were changed by your modifications.
The simplest make file can be
all : test
test : test.o
gcc -o test test.o
test.o : test.c
gcc -c test.c
clean :
rm test *.o
all: program
program.o: program.h headers.h
is enough. the rest is implicit
For example this simple Makefile should be sufficient:
CC=gcc CFLAGS=-Wall all: program program: program.o program.o: program.c program.h headers.h clean: rm -f program program.o run: program ./program
Note there must be <tab>
on the next line after clean and run, not spaces.
UPDATE Comments below applied
Source: Stackoverflow.com