PRJSRC=a.c hello.c OPTLEVEL=s CC=gcc REMOVE=rm -f PROJECTNAME=test TRG=$(PROJECTNAME).out CFLAGS=$(CUSTOM_CFLAGS) -I. $(INC) -O$(OPTLEVEL) CFILES=$(filter %.c, $(PRJSRC)) OBJDEPS=$(CFILES:.c=.o) .SUFFIXES : .c .h all: $(TRG) debug: CUSTOM_CFLAGS:=-DTEST debug: $(TRG) clean: $(REMOVE) $(TRG) $(REMOVE) $(OBJDEPS) $(TRG): $(OBJDEPS) $(CC) $(OBJDEPS) $(LDFLAGS) -o $(TRG) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@