all: main

CXX := g++
CXXFLAGS := -std=c++11 -Wall -Wextra -O2
DBGFLAGS := -std=c++11 -Wall -Wextra -g -O0

main: main.C PQ.h Node.h
	$(CXX) $(CXXFLAGS) -o main main.C

# Build a debug version (with symbols, no optimization) suitable for valgrind/asan
debug: CXXFLAGS := $(DBGFLAGS)
debug: clean
debug: main

# Run valgrind (requires valgrind installed on the system).
# This target depends on the debug build so symbols are available.
valgrind: debug
	valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./main

run: main
	./main

clean:
	rm -f main
