CFLAGS=-g -pedantic PROGS=my_program my_other_program my_better_program my_other_better_program my_better_program_done_right my_other_better_program_done_right all: $(PROGS) my_program: my_program.c gcc $(CFLAGS) -o $@ $^ my_other_program: my_other_program.c gcc $(CFLAGS) -o $@ $^ %.o: %.c gcc $(CFLAGS) -c -o $@ $^ my_better_program: my_better_program.c my_super_duper_library.c gcc $(CFLAGS) -o $@ $^ my_other_better_program: my_other_better_program.c my_super_duper_library.c gcc $(CFLAGS) -o $@ $^ my_better_program_done_right: my_better_program.o my_super_duper_library.o gcc -o $@ $^ my_other_better_program_done_right: my_other_better_program.o my_super_duper_library.o gcc -o $@ $^ .PHONY: clean clean: rm -f *.o $(PROGS)