mirror of
https://github.com/soconnor0919/honors-thesis.git
synced 2026-02-05 05:56:31 -05:00
42 lines
1.2 KiB
Makefile
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
|