############################################### # makefile5: Pattern Rules ############################################### RELEASE_OPTIONS = DEBUG_OPTIONS = -g RELEASE_OBJS = teststack.o stack.o DEBUG_OBJS = teststack.do stack.do RELEASE_EXEC = teststack DEBUG_EXEC = teststackgdb %.o: %.c gcc $(RELEASE_OPTIONS) -c -o $@ $< %.do: %.c gcc $(DEBUG_OPTIONS) -c -o $@ $< all: debug release release: $(RELEASE_EXEC) debug: $(DEBUG_EXEC) clobber: clean rm -f *~ \#*\# core clean: rm -f $(RELEASE_OBJS) $(DEBUG_OBJS) $(RELEASE_EXEC) $(DEBUG_EXEC) $(RELEASE_EXEC): $(RELEASE_OBJS) gcc -o $(RELEASE_EXEC) $(RELEASE_OBJS) $(DEBUG_EXEC): $(DEBUG_OBJS) gcc -o $(DEBUG_EXEC) $(DEBUG_OBJS) teststack.o: teststack.c stack.h teststack.do: teststack.c stack.h stack.o: stack.c stack.h stack.do: stack.c stack.h