CXXFLAGS := -std=c++17 -Wall -Wno-reorder

run: main
	./main

# Note: Intentionally fails to specify 'main.o'.
partial: shared.o
	g++ $(CXXFLAGS) -o main main.o shared.o
	./main

.PHONY: main clean partial

main: main.o shared.o
	g++ $(CXXFLAGS) -o main main.o shared.o

main.o: main.cpp shared.h
	g++ $(CXXFLAGS) -c -o main.o main.cpp

shared.o: shared.cpp shared.h
	g++ $(CXXFLAGS) -c -o shared.o shared.cpp

clean:
	rm -f ./main ./shared.o ./main.o
