# --- Variables ---
CCFLAGS = -Wall -Wextra -std=c++2b -g
CC = clang++
.PHONY: all clean run docs 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
MD_FILES := $(shell find docs/content -name "*.md")
HTML_FILES := $(MD_FILES:docs/content/%.md=docs/dist/%.html)
docs: $(HTML_FILES)
@printf "\
\n\
Commit: %H
%b
%N
]]>' --date=iso >> docs/dist/rss.xml @printf "\ \n\ " >> docs/dist/rss.xml # See 080f729 note for the template command docs/dist/%.html: docs/content/%.md docs/components/navbar.html pandoc $< | template docs/components/navbar.html --stdin docs/template.html > $@ serve: cd docs/dist && python3 -m http.server 8000