Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
149 views
ubuntu2404
# Makefile for CoCalc Machine Learning Template
# Optimized for PythonTeX compilation with ML frameworks

# Document settings
MAIN = main
TEXFILE = $(MAIN).tex
PDFFILE = $(MAIN).pdf

# LaTeX compilation settings
LATEX = pdflatex
LATEXFLAGS = -shell-escape -interaction=nonstopmode -file-line-error

# PythonTeX settings
PYTHONTEX = pythontex
PYTHONTEXFLAGS = --verbose

# BibTeX settings
BIBTEX = bibtex

# Default target
all: $(PDFFILE)

# Full compilation with PythonTeX
$(PDFFILE): $(TEXFILE)
	@echo "Starting machine learning template compilation..."
	@mkdir -p figures
	@echo "Step 1: Initial LaTeX compilation"
	$(LATEX) $(LATEXFLAGS) $(MAIN)
	@echo "Step 2: Running PythonTeX for ML analysis"
	$(PYTHONTEX) $(PYTHONTEXFLAGS) $(MAIN)
	@echo "Step 3: Running BibTeX for bibliography"
	$(BIBTEX) $(MAIN)
	@echo "Step 4: Second LaTeX compilation"
	$(LATEX) $(LATEXFLAGS) $(MAIN)
	@echo "Step 5: Final LaTeX compilation"
	$(LATEX) $(LATEXFLAGS) $(MAIN)
	@echo "Machine learning template compilation complete: $(PDFFILE)"

# Quick draft compilation
draft: $(TEXFILE)
	@echo "Quick draft compilation (no PythonTeX)..."
	$(LATEX) -interaction=nonstopmode $(MAIN)
	@echo "Draft compilation complete: $(PDFFILE)"

# Generate figures only
figures: $(TEXFILE)
	@echo "Generating ML figures with PythonTeX..."
	@mkdir -p figures
	$(LATEX) $(LATEXFLAGS) $(MAIN)
	$(PYTHONTEX) $(PYTHONTEXFLAGS) $(MAIN)
	@echo "Figures generated"

# Clean generated files
clean:
	@echo "Cleaning generated files..."
	rm -f *.aux *.log *.out *.toc *.lof *.lot *.bbl *.blg
	rm -f *.fdb_latexmk *.fls *.synctex.gz
	rm -f *.pytxcode *.makefile *.fdb *.figlist *.makefile
	rm -f $(MAIN).run.xml $(MAIN)-blx.bib
	rm -rf pythontex-files-$(MAIN)/
	rm -rf figures/
	@echo "Clean complete."

# Force recompilation
force:
	$(MAKE) clean
	$(MAKE) all

# Test ML dependencies
test-deps:
	@echo "Testing machine learning dependencies..."
	python3 -c "import numpy; print(f'NumPy: {numpy.__version__}')"
	python3 -c "import matplotlib; print(f'Matplotlib: {matplotlib.__version__}')"
	python3 -c "import sklearn; print(f'Scikit-learn: {sklearn.__version__}')"
	@echo "Dependencies checked."

# Help
help:
	@echo "CoCalc Machine Learning Template"
	@echo ""
	@echo "Available targets:"
	@echo "  all       - Full compilation with PythonTeX (default)"
	@echo "  draft     - Quick compilation without PythonTeX"
	@echo "  figures   - Generate ML figures only"
	@echo "  clean     - Remove all generated files"
	@echo "  force     - Clean and recompile"
	@echo "  test-deps - Test ML dependencies"
	@echo "  help      - Show this help message"
	@echo ""
	@echo "Dependencies:"
	@echo "  - Python packages: numpy, matplotlib, scikit-learn, pandas"
	@echo "  - LaTeX packages: pythontex, amsmath, tikz, pgfplots"

.PHONY: all draft figures clean force test-deps help