Update Makefile

This commit is contained in:
Yorick Barbanneau 2023-08-30 00:15:07 +02:00
parent e1838960c9
commit 2ac101940a

View file

@ -1,35 +1,42 @@
PDF_APP ?= zathura
OUTPUT ?= output
GEN_DIR ?= images/generated
SVG_DIR ?= images/svg
PIX_DIR ?= images/bitmap
DOCUMENT ?= $(patsubst %.tex,%.pdf,$(wildcard *.tex))
LC = lualatex
LCFLAGS = --interaction=nonstopmode --output-directory $(OUTPUT)
SC = inkscape
SCFLAGS = --export-type=pdf --export-pdf-version=1.4
SVG_FILES = $(wildcard $(SVG_DIR)/*.svg)
GEN_FILES = $(subst $(SVG_DIR), $(GEN_DIR),$(patsubst %.svg,%.pdf,$(SVG_FILES)))
PIX_FILES = $(wildcard $(PIX_DIR)/*.*)
VIEWER = zathura
VIEWER_FLAGS = --fork
default: build
build: $(addprefix $(OUTPUT)/, $(DOCUMENT))
images: $(GEN_FILES)
OUTPUT = build
IMAGES_DIR = images/bitmap
SVG_DIR = images/svg
SVG_EXPORTED_DIR = images/generated
$(OUTPUT)/%.pdf: %.tex $(GEN_FILES) $(PIX_FILES)
@$(shell mkdir -p $(OUTPUT))
lualatex --interaction=nonstopmode --output-directory $(OUTPUT) $<
DOCUMENTS = $(addprefix $(OUTPUT)/, $(patsubst %.tex,%.pdf,$(wildcard *.tex)))
IMAGES = $(wildcard $(IMAGES_DIR)/*.*)
SVG = $(wildcard $(SVG_DIR)/*.svg)
$(GEN_DIR)/%.pdf : $(SVG_DIR)/%.svg
@echo export PDF from $@
@inkscape --export-type=pdf --export-pdf-version=1.4 -o $@ $<
SVG_EXPORTED = $(subst $(SVG_DIR),$(SVG_EXPORTED_DIR),$(patsubst %.svg,%.pdf,$(SVG)))
.PHONY: echo view clean
echo:
@echo "document: $(DOCUMENT)"
@echo "bitmap images: $(PIX_FILES)"
@echo "svg images: $(SVG_FILES)"
@echo "generated images: $(GEN_FILES)"
default: $(DOCUMENTS)
view:
$(PDF_APP) $(addprefix $(OUTPUT)/, $(DOCUMENT))
$(OUTPUT)/%.pdf: %.tex $(IMAGES) $(SVG_EXPORTED)
@mkdir -p $(OUTPUT)
$(LC) $(LCFLAGS) $<
clean:
rm -rf $(GEN_DIR)/* $(OUTPUT)
$(SVG_EXPORTED_DIR)/%.pdf : $(SVG_DIR)/%.svg
$(SC) $(SCFLAGS) -o $@ $<
.PHONY: clean
clean:
@rm -rf $(OUTPUT)
.PHONY: info
info:
@echo "document.............'$(DOCUMENTS)'"
@echo "bitmap images........'$(IMAGES)'"
@echo "SVG images...........'$(SVG)'"
@echo "exported SVG images..'$(SVG_EXPORTED)'"
.PHONY: view
view: default
@$(VIEWER) $(VIEWER_FLAGS) $(DOCUMENTS)