nightshade

The nightshade programming language, compiler and tools (WIP)
Log | Files | Refs | README

makefile (1350B)



.SILENT:

EXPLAIN_MODEL ?= openai/gpt-5.4-mini-fast
EXPLAIN_CMD ?= opencode run --model "$(EXPLAIN_MODEL)"
EXPLAIN_PROMPT ?= Explain (do not edit code) this Ada compiler error in concise English. Files are in src/. Include the likely cause and a concise fix. Error:
EXPLAIN_TITLE ?= AI explanation for Ada error:
EXPLAIN_MARKER ?= : error:
EXPLAIN_TMP ?= $${TMPDIR:-/tmp}/nightshade-explain.XXXXXX

BUILD_COMMAND ?= gnatmake -gnat2022 -o bin/nightshade src/nightshade.adb && ./bin/nightshade test.mty

define run_with_explain
@tmp="$$(mktemp "$(EXPLAIN_TMP)")"; \
{ $(1); } >"$$tmp" 2>&1; \
status=$$?; \
cat "$$tmp"; \
if [ $$status -ne 0 ]; then \
	line=$$(grep -m 1 -F "$(EXPLAIN_MARKER)" "$$tmp" 2>/dev/null || true); \
	if [ -n "$$line" ]; then \
		printf '\n%s\n' "$(EXPLAIN_TITLE)"; \
		$(EXPLAIN_CMD) "$(EXPLAIN_PROMPT) $$line" || true; \
	fi; \
fi; \
rm -f "$$tmp"; \
exit $$status
endef

default:
	$(BUILD_COMMAND)

clean:
	rm -rf ./bin/*
	rm -rf *.o *.ali b~*
	mkdir -p ./bin/
	rm -rf ./tmp/*

pedantic: clean
	gnatmake -gnat2022 -gnatwa -o bin/nightshade src/nightshade.adb

fmt:
	# 90
	gnatformat -w 110 src/*.adb src/*.ads

err: clean
	make 2>&1 | grep -w --color=always 'error'

release: clean
	gnatmake -gnat2022 -O2 -gnatp -gnatn -q -o bin/nightshade_release src/nightshade.adb

huh: clean
	$(call run_with_explain,$(BUILD_COMMAND))