# Makefile for modernclassnotes LaTeX package
# Open Source TeX Package Build Automation

TEX = pdflatex
TEXFLAGS = -interaction=nonstopmode
DOC_DIR = doc
EXAMPLES_DIR = examples
PACKAGE_NAME = modernclassnotes
VERSION = 1.0.0

.PHONY: all doc examples clean ctan help

all: doc examples

doc: $(DOC_DIR)/modernclassnotes-doc.pdf

$(DOC_DIR)/modernclassnotes-doc.pdf: $(DOC_DIR)/modernclassnotes-doc.tex modernclassnotes.cls
	@echo "Compiling documentation..."
	$(TEX) $(TEXFLAGS) -output-directory=$(DOC_DIR) $(DOC_DIR)/modernclassnotes-doc.tex
	$(TEX) $(TEXFLAGS) -output-directory=$(DOC_DIR) $(DOC_DIR)/modernclassnotes-doc.tex

examples: $(EXAMPLES_DIR)/01-complete-course-notes.pdf \
          $(EXAMPLES_DIR)/02-single-lecture-handout.pdf \
          $(EXAMPLES_DIR)/03-homework-worksheet.pdf

$(EXAMPLES_DIR)/%.pdf: $(EXAMPLES_DIR)/%.tex modernclassnotes.cls
	@echo "Compiling example $<..."
	$(TEX) $(TEXFLAGS) -output-directory=$(EXAMPLES_DIR) $<
	$(TEX) $(TEXFLAGS) -output-directory=$(EXAMPLES_DIR) $<

ctan: all
	@echo "Creating CTAN release package..."
	rm -rf $(PACKAGE_NAME)-ctan $(PACKAGE_NAME)-$(VERSION).zip
	mkdir -p $(PACKAGE_NAME)-ctan/$(PACKAGE_NAME)
	cp modernclassnotes.cls modernclassnotes.sty README.md LICENSE Makefile $(PACKAGE_NAME)-ctan/$(PACKAGE_NAME)/
	mkdir -p $(PACKAGE_NAME)-ctan/$(PACKAGE_NAME)/doc
	cp $(DOC_DIR)/modernclassnotes-doc.tex $(DOC_DIR)/modernclassnotes-doc.pdf $(PACKAGE_NAME)-ctan/$(PACKAGE_NAME)/doc/
	mkdir -p $(PACKAGE_NAME)-ctan/$(PACKAGE_NAME)/examples
	cp $(EXAMPLES_DIR)/*.tex $(EXAMPLES_DIR)/*.pdf $(PACKAGE_NAME)-ctan/$(PACKAGE_NAME)/examples/
	cd $(PACKAGE_NAME)-ctan && zip -r ../$(PACKAGE_NAME)-$(VERSION).zip $(PACKAGE_NAME)
	rm -rf $(PACKAGE_NAME)-ctan
	@echo "CTAN release package created: $(PACKAGE_NAME)-$(VERSION).zip"

clean:
	@echo "Cleaning auxiliary build artifacts..."
	rm -f *.aux *.log *.toc *.out *.fls *.fdb_latexmk *.synctex.gz
	rm -f $(DOC_DIR)/*.aux $(DOC_DIR)/*.log $(DOC_DIR)/*.toc $(DOC_DIR)/*.out $(DOC_DIR)/*.fls $(DOC_DIR)/*.fdb_latexmk
	rm -f $(EXAMPLES_DIR)/*.aux $(EXAMPLES_DIR)/*.log $(EXAMPLES_DIR)/*.toc $(EXAMPLES_DIR)/*.out $(EXAMPLES_DIR)/*.fls $(EXAMPLES_DIR)/*.fdb_latexmk

help:
	@echo "modernclassnotes Build Tool"
	@echo "  make all       Compile documentation and all example PDFs"
	@echo "  make doc       Compile user manual documentation"
	@echo "  make examples  Compile example note/handout/worksheet PDFs"
	@echo "  make ctan      Bundle CTAN release zip package"
	@echo "  make clean     Remove temporary TeX build files"
