CC = g++
CFLAGS := -Wall -Wfatal-errors -c
BIN = rpncalc
OBJ = main.o repl.o stack.o expression.o

$(BIN): $(OBJ)
	$(CC) $^ -o $@

%.o: %.cpp
	$(CC) $(CFLAGS) $< -o $@

main.o: main.cpp repl.hpp stack.hpp expression.hpp
repl.o: repl.cpp stack.hpp expression.hpp exceptions.hpp repl.hpp
stack.o: stack.cpp exceptions.hpp stack.hpp
expression.o: expression.cpp exceptions.hpp expression.hpp

clean::
	rm -f $(OBJ) $(BIN)
