CXX := g++
CXXFLAGS := -std=c++11
# extra tough checking for syntax error and bad code style
CXXFLAGS := $(CXXFLAGS) -Wall -Wpedantic -Wextra -Werror
# add debugging information to the program
CXXFLAGS := -g -O0

all: brooks

brooks: brooks.o picture_creation.o picture_output.o
	$(CXX) $(CXXFLAGS) -o $@ $^

brooks.o: brooks.cpp ascii_functions.h
	$(CXX) $(CXXFLAGS) -o $@ -c $<

picture_creation.o: picture_creation.cpp ascii_functions.h
	$(CXX) $(CXXFLAGS) -o $@ -c $<

picture_output.o: picture_output.cpp ascii_functions.h
	$(CXX) $(CXXFLAGS) -o $@ -c $<

draw: brooks
	./brooks

# remove any derived files, to prepare for a clean build
clean:
	-rm -f brooks
	-rm -f *.o
	-rm -f *~
