OBJS = foo.o bar.o
CC = gcc
CFLAGS = -Wall -O -g
myprog : $(OBJS)
$(CC) $^ -o $@
foo.o : foo.c foo.h bar.h
$(CC) $(CFLAGS) -c $ < -o $@
bar.o : bar.c bar.h
$(CC) $(CFLAGS) -c $ < -o $@