Makefile to replace both shell scripts
This commit is contained in:
parent
aa411d01dd
commit
61b7e23dab
|
@ -0,0 +1,70 @@
|
|||
SHELL := /bin/bash
|
||||
# Inspired by:
|
||||
# gist by Lincoln Mullen | http://lincolnmullen.com | lincoln@lincolnmullen.com
|
||||
# and https://gist.github.com/elchinot7/67825dae97c3d628181a
|
||||
#
|
||||
#
|
||||
# Main latex document name
|
||||
FILE ?= ebook
|
||||
|
||||
#from https://www.gnu.org/software/make/manual/make.html#Phony-Targets
|
||||
# markdown sources in subdirectory
|
||||
SUBDIRS = inputs
|
||||
|
||||
MDS := ./$(SUBDIRS:%=%/*.md)
|
||||
#MDS := $(filter %/, $(wildcard ./$(SUBDIRS)/*.md)) # I don't think this works
|
||||
# List files to be made by finding all *.md files and appending .tex
|
||||
#TEXS := $(patsubst %.md,%.md.tex,$(wildcard ./$(SUBDIRS)/*.md.tex)) # I don't think this works
|
||||
# List files to be made by finding all *.tex files and appending .pdf
|
||||
#TEXS := ./$(SUBDIRS:%=%/*.md.tex) # This doesn't work
|
||||
TEXS := $(patsubst %.md,%.md.tex,$(wildcard $(MDS)))
|
||||
PDFS := $(wildcard *.pdf)
|
||||
|
||||
# differences in specification between MDS and TEXS. not sure which is best.
|
||||
# previous attempts at specifying TEXS and MDS left in place.
|
||||
|
||||
LATEX = latexmk
|
||||
PANDOC = pandoc
|
||||
LATEXFILE = $(FILE).tex
|
||||
OUTPUTFILE = $(FILE).pdf
|
||||
|
||||
|
||||
# compilation options
|
||||
# panopts - pandoc options, latopts - latexmk options
|
||||
PANOPTS = --biblatex
|
||||
LATOPTS = -pdf -e '$$pdflatex=q/xelatex %O %S/'
|
||||
|
||||
.PHONY: clean default
|
||||
|
||||
# The all rule makes the PDF file
|
||||
all : ebook # $(TEXS) ebook
|
||||
|
||||
# default rule
|
||||
default : clean all
|
||||
|
||||
# This rule accepts ebook.tex target with corresponding latex include
|
||||
# sources and makes it using latexmk
|
||||
ebook : $(LATEXFILE) $(TEXS)
|
||||
$(LATEX) -c
|
||||
$(LATEX) $(LATOPTS) $(LATEXFILE)
|
||||
|
||||
# This rule accepts TEX targets with corresponding Markdown
|
||||
# source, and makes them using pandoc
|
||||
$(TEXS) : $(MDS)
|
||||
$(PANDOC) $(PANOPTS) $< -o $@
|
||||
|
||||
# Remove all PDF outputs and pandoc's .md.tex outputs
|
||||
clean :
|
||||
@rm -f *.aux *.log *.out *.pdfsync *.tdo *.end\
|
||||
*.table *.gnuplot *.gz *.bbl *.dvi *.fls \
|
||||
*.fdb_latexmk *Notes.bib *.blg \
|
||||
*.toc ./inputs/*.aux
|
||||
@rm $(PDFS)
|
||||
@rm $(TEXS)
|
||||
|
||||
# Remove all PDF and intermediate outputs then build them again
|
||||
rebuild : clean all
|
||||
|
||||
test : $(TEXS)
|
||||
echo $(MDS)
|
||||
echo $(TEXS)
|
Loading…
Reference in New Issue