Files
honors-thesis/thesis/Makefile
Sean O'Connor 205bfa9eb3 Initial commit
2026-02-03 10:58:04 -05:00

42 lines
1.2 KiB
Makefile

# Makefile for Honors Thesis
BUILD_DIR = build
OUT_DIR = out
TEX_FILE = thesis.tex
FINAL_PDF = $(OUT_DIR)/thesis.pdf
# Detect all chapter files so make rebuilds if they change
CHAPTERS = $(wildcard chapters/*.tex)
all: $(FINAL_PDF)
$(FINAL_PDF): $(TEX_FILE) buthesis.cls refs.bib $(CHAPTERS)
# Ensure directories exist
mkdir -p $(BUILD_DIR)
mkdir -p $(BUILD_DIR)/chapters
mkdir -p $(OUT_DIR)
# --- Build Cycle ---
# LaTeX requires multiple passes to resolve cross-references and bibliography.
# 1. First Pass: Compile text, generate .aux files in build dir
pdflatex -output-directory=$(BUILD_DIR) -interaction=nonstopmode $(TEX_FILE)
# 2. BibTeX: Process .aux files to generate bibliography (.bbl)
# ( using || true to allow build to succeed even if no citations exist yet )
bibtex $(BUILD_DIR)/thesis || true
# 3. Second Pass: Read .bbl and incorporate bibliography into text
pdflatex -output-directory=$(BUILD_DIR) -interaction=nonstopmode $(TEX_FILE)
# 4. Third Pass: Finalize layout and resolve all label/ref links
pdflatex -output-directory=$(BUILD_DIR) -interaction=nonstopmode $(TEX_FILE)
# Copy final PDF to output directory
cp $(BUILD_DIR)/thesis.pdf $(FINAL_PDF)
clean:
rm -rf $(BUILD_DIR)
rm -rf $(OUT_DIR)
.PHONY: all clean