# Makefile for thucoursework

# Compiling method: xelatex/pdflatex
PACKAGE = thucoursework
INSTALL_PACKAGE = install-tl-unx.tar.gz
INSTALL_DIR = ./install-texlive
# automatic configuration of mirror
REMOTE_INSTALLER_URL = http://mirror.ctan.org/systems/texlive/tlnet
# Set opts for latexmk if you use it
LATEXMKOPTS = -xelatex -halt-on-error -interaction=nonstopmode


.PHONY: doc all archive pre_install_dep install_dep after_install_dep clean test

all: after_install_dep iihw.pdf ithw.pdf

pre_install_dep: $(INSTALL_PACKAGE)

after_install_dep: install_dep
	# tricky, to make variable assignment in recipe, and to execute shell command and assign the print result to a variable.
	$(eval PLATFORM1=`$(INSTALL_DIR)/install-tl --print-platform`)
	$(eval PLATFORM2=$(shell echo $(PLATFORM1)))
	$(eval PLATFORM3=$(shell pwd))
	$(eval export PATH :=$(PLATFORM3)/texlive/bin/$(PLATFORM2):$(PATH))
	echo $$PATH	
	# to make tlmgr work, we need perl
	tlmgr install xkeyval matlab-prettifier caption doublestroke xcolor listings l3kernel l3packages ms ulem fontspec environ trimspaces booktabs moreenum mathtools oberdiek enumitem fmtcount etoolbox latex-bin alphalph
install_dep: pre_install_dep
	mkdir -p $(INSTALL_DIR)
	tar -zxvf $(INSTALL_PACKAGE) -C $(INSTALL_DIR) --strip-components 1 
	$(INSTALL_DIR)/install-tl -profile tl.profile

$(INSTALL_PACKAGE): 
	wget $(REMOTE_INSTALLER_URL)/$(INSTALL_PACKAGE)

clean: 
	rm -fr $(INSTALL_DIR)
	rm -f *.idx *.ilg *.glo *.gls *.hd *.ind *.log *.out *.synctex.gz *.toc *.aux

iihw.pdf: iihw.tex after_install_dep
	pdflatex iihw.tex

ithw.pdf: ithw.tex after_install_dep
	xelatex ithw.tex

archive:
	# make tar.gz which is submitted to ctan.org
	# first copy the necessary files to the dist dir
	cp README.md iihw.pdf ithw.pdf iihw.tex ithw.tex matlabscript.m pdf_normal.pdf thucoursework.dtx thucoursework.pdf Makefile thucoursework/
	# then tar it
	COPYFILE_DISABLE=1 tar -zcvf thucoursework.tar.gz thucoursework/
doc : $(PACKAGE).pdf

$(PACKAGE).pdf : $(PACKAGE).dtx
	#latexmk $(LATEXXMKOPTS) $(PACKAGE).dtx
	xelatex $(PACKAGE).dtx
	makeindex -s gind.ist -o $(PACKAGE).ind $(PACKAGE).idx
	makeindex -s gglo.ist -o $(PACKAGE).gls $(PACKAGE).glo
	xelatex $(PACKAGE).dtx
	xelatex -synctex=1 $(PACKAGE).dtx

test:
	# first clear out root texlive bin dir
	$(eval export PATH := /bin:/usr/bin)
	echo $$PATH
	$(eval PLATFORM1=`$(INSTALL_DIR)/install-tl --print-platform`)
	$(eval PLATFORM2=$(shell echo $(PLATFORM1)))
	$(eval PLATFORM3=$(shell pwd))
	$(eval export PATH := $(PLATFORM3)/texlive/bin/$(PLATFORM2):$(PATH))
	echo $$PATH
	tlmgr --version