aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Makefile
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2021-04-07 03:16:04 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2021-04-07 03:16:04 +0300
commit0ccff951e58fdf1a71b474eb5ecbe2d1c2030fce (patch)
treed16c39f43c70528e6e7f30973d0afceb0a7fd596 /Makefile
parentworkflows/build: tweak step names (diff)
downloadcv-0ccff951e58fdf1a71b474eb5ecbe2d1c2030fce.tar.gz
cv-0ccff951e58fdf1a71b474eb5ecbe2d1c2030fce.zip
Makefile: best practices
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile31
1 files changed, 23 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 8fa8373..d6ec2d1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,32 +1,47 @@
MAKEFLAGS += --no-builtin-rules --no-builtin-variables --warn-undefined-variables
+unexport MAKEFLAGS
.DEFAULT_GOAL := all
.DELETE_ON_ERROR:
.SUFFIXES:
SHELL := bash
.SHELLFLAGS := -eu -o pipefail -c
+.PHONY: DO
+DO:
+
+escape = $(subst ','\'',$(1))
+
+define noexpand
+ifeq ($$(origin $(1)),environment)
+ $(1) := $$(value $(1))
+endif
+ifeq ($$(origin $(1)),environment override)
+ $(1) := $$(value $(1))
+endif
+ifeq ($$(origin $(1)),command line)
+ override $(1) := $$(value $(1))
+endif
+endef
+
MKDIR := mkdir -p --
-RMDIR := $(RM) -r --
+RMDIR := rm -r --
name := cv
pdf := $(name)/$(name).pdf
-.PHONY: DO
-DO:
-
.PHONY: all
all: $(pdf)
$(pdf): $(name).tex img/selfie_face.jpg | $(name)/
- pdflatex -interaction=nonstopmode -halt-on-error -output-directory=$(name)/ $<
+ pdflatex -interaction=nonstopmode -halt-on-error '-output-directory=$(call escape,$(name))/' '$(call escape,$<)'
%/:
- $(MKDIR) $@
+ $(MKDIR) '$(call escape,$@)'
.PHONY: clean
clean:
- find $(name) '!' -name cv.pdf -type f -delete
+ find '$(call escape,$(name))' '!' -name cv.pdf -type f -delete
.PHONY: clean-all
clean-all:
- $(RMDIR) $(name)/
+ $(RMDIR) '$(call escape,$(name))/'