# --- Variables --- CCFLAGS = -Wall -Wextra -std=c++23 -g CC = clang++ .PHONY: all clean run docs run_tests serve all: main build: mkdir -p build main: main.cc build/grim.o build/parser.o ${CC} ${CCFLAGS} main.cc -Iinclude/ build/grim.o build/parser.o -o main build/grim.o: src/grim.cc include/grim.h | build ${CC} ${CCFLAGS} -Iinclude/ -c src/grim.cc -o build/grim.o build/parser.o: src/parser.cc include/parser.h | build ${CC} ${CCFLAGS} -Iinclude/ -c src/parser.cc -o build/parser.o # --- Tests --- build/html_node_test: tests/html_node.cc build/grim.o build/catch.o build/parser.o | build ${CC} ${CCFLAGS} -Iinclude/ tests/html_node.cc build/grim.o build/catch.o build/parser.o -o build/html_node_test build/css_selector_test: tests/css_selector.cc build/grim.o build/catch.o build/parser.o | build ${CC} ${CCFLAGS} -Iinclude/ tests/css_selector.cc build/grim.o build/catch.o build/parser.o -o build/css_selector_test build/html_parser_test: tests/html_parser.cc build/grim.o build/parser.o build/catch.o | build ${CC} ${CCFLAGS} -Iinclude/ tests/html_parser.cc build/grim.o build/parser.o build/catch.o -o build/html_parser_test build/css_parser_test: tests/css_parser.cc build/grim.o build/parser.o build/catch.o | build ${CC} ${CCFLAGS} -Iinclude/ tests/css_parser.cc build/grim.o build/parser.o build/catch.o -o build/css_parser_test build/catch.o: ./include/catch_amalgamated.cpp ./include/catch_amalgamated.hpp | build ${CC} ${CCFLAGS} -Iinclude/ -c include/catch_amalgamated.cpp -o build/catch.o # --- Prebuild --- # use to prebuild the master.css # --- Tools --- clean: rm -f main build/*.o run: clear && ./main docs: cd docs/ && evoke build && cd ../../build && ./tracker.sh serve: cd docs/dist && python3 -m http.server 8000