PROJECT = Facharbeit

# commands
PDFLATEX = pdflatex -halt-on-error
BIBTEX = bibtex
RM = rm -f
OPEN = kfmclient exec

# directories
PUBLIC_DIR = /home/lunar/public_html/
PROJECT_DIR = /home/lunar/Dokumente/Schule/Facharbeit
BACKUP_DIR = /home/lunar/backup

# sources 
DOCUMENT_NAME = facharbeit
LATEX_SOURCES = facharbeit.tex
BIBTEX_SOURCES = sources.bib
EXCLUDE_FILE = $(PROJECT_DIR)/src/backup_exclude
ALL_SOURCES = $(LATEX_SOURCES) $(BIBTEX_SOURCES) Makefile

# generated files
BACKUP_FILE = $(PROJECT)_`date --rfc-3339=date`.tar.bz2
BIBTEX_FILES = facharbeit.bbl facharbeit.blg
LATEX_FILES = facharbeit.lof facharbeit.out facharbeit.toc \
	facharbeit.log facharbeit.aux
DOCUMENT = facharbeit.pdf

$(DOCUMENT): $(BIBTEX_FILES)
	# two passes to get cross references right
	$(PDFLATEX) $(LATEX_SOURCES)
	$(PDFLATEX) $(LATEX_SOURCES)

$(BIBTEX_FILES): latex_files.stamp $(BIBTEX_SOURCES)
	$(BIBTEX) $(DOCUMENT_NAME)

# Use stamps here to avoid circular dependencies.

latex_files.stamp: $(LATEX_SOURCES)
	$(PDFLATEX) $(LATEX_SOURCES)
	touch latex_files.stamp

backup backup.stamp: $(ALL_SOURCES) $(EXCLUDE_FILE)
	(cd $(PROJECT_DIR)/.. && tar cjf $(BACKUP_DIR)/$(BACKUP_FILE) -X \
		$(EXCLUDE_FILE) $(PROJECT)/)
	touch backup.stamp

safebackup: backup.stamp
	# copy backup file into a "write-safe" location
	sudo cp $(BACKUP_DIR)/$(BACKUP_FILE) /var/backups/lunar/
	sudo chmod 400 /var/backups/lunar/*
	sudo -K

clean:
	$(RM) $(BIBTEX_FILES) $(LATEX_FILES) *.stamp

clean-all: clean
	$(RM) $(DOCUMENT)

publish: $(DOCUMENT)
	cp $(DOCUMENT) $(PUBLIC_DIR)

show: $(DOCUMENT)
	$(OPEN) $(DOCUMENT)

.PHONY: clean clean-all publish show backup safebackup
