.PHONY: all build json fast clean norm tests help

# Default target: full build with search index
all: clean build json

build:
	@echo "Building project (full rebuild with search index)..."
	emacs -Q --script lisp/build.el

json:
	@echo "Generating the JSON output..."
	python search-index.py

# Fast build without search index
fast:
	@echo "Building project (fast rebuild without search index)..."
	emacs -Q --script lisp/build.el --fast

# Clean output directory
clean:
	@echo "Cleaning output directory..."
	rm -rf output/

norm:
	@echo "sorting out the backups..."
	find . -path ./backups -prune -o -type f -name '*~' -exec mv {} backups/ \;

tests:
	@echo "Running all the tests..."
	emacs -batch -l ert -l tests/macros-tests.el -f ert-run-tests-batch-and-exit

# Show help message
help:
	@echo "Available targets:"
	@echo "  make        - Clean, build, and generate search index (default)"
	@echo "  make build  - Full rebuild (with search index)"
	@echo "  make json   - Generate JSON output for search index"
	@echo "  make fast   - Fast rebuild (without search index)"
	@echo "  make clean  - Remove output directory"
	@echo "  make tests  - Run all of the tests associated with the project"
	@echo "  make norm   - Move all files that end with ~ to the backup folder"
	@echo "  make help   - Show this help message"
