# Two implementation files, one header, one executable.
#   make          build ./stackdemo
#   make clean    remove what was built
CXX = g++
CXXFLAGS = -std=c++17 -Wall -Wextra -g

stackdemo: main.o stack.o
	$(CXX) $(CXXFLAGS) -o stackdemo main.o stack.o

# Each object file depends on the header: touching stack.h rebuilds both
main.o: main.cpp stack.h
	$(CXX) $(CXXFLAGS) -c main.cpp

stack.o: stack.cpp stack.h
	$(CXX) $(CXXFLAGS) -c stack.cpp

clean:
	rm -f stackdemo main.o stack.o

.PHONY: clean
