Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Making Makefiles
Search
Alex Tercete
February 21, 2020
Programming
95
0
Share
Making Makefiles
Makefiles are pretty if you learned to appreciate their beauty.
Alex Tercete
February 21, 2020
More Decks by Alex Tercete
See All by Alex Tercete
Shipping containers
alextercete
0
77
Parallelism and Symmetry
alextercete
0
260
Porting to .NET Standard
alextercete
0
82
Prepping Commits
alextercete
1
160
The end of your line-endings nightmare
alextercete
0
210
I love sushi, therefore I love rebase
alextercete
0
120
ReadyRoll for DotNet developers
alextercete
0
110
Coding Dojo: The Randori Kata
alextercete
1
580
How to be a good pair [programmer]
alextercete
0
150
Other Decks in Programming
See All in Programming
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
530
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
290
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
2.5k
Kingdom of the Machine
yui_knk
2
1.3k
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
120
How Swift's Type System Guides AI Agents
koher
0
320
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
19
9.3k
書き換えて学ぶTemporal #fukts
pirosikick
2
320
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
720
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
170
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
440
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
330
Featured
See All Featured
Building an army of robots
kneath
306
46k
How GitHub (no longer) Works
holman
316
150k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
270
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Mind Mapping
helmedeiros
PRO
1
180
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Marketing to machines
jonoalderson
1
5.2k
Accessibility Awareness
sabderemane
1
110
How to make the Groovebox
asonas
2
2.1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
140
Transcript
Alex Tercete @alextercete $ make Makefile
None
None
run.sh #!/bin/sh docker build -t my_image . docker run -w
/app -v $(pwd):/app my_image
None
run.ps1 docker build -t my_image . docker run -w /app
-v $PWD:/app my_image
None
Makefile build: docker build -t my_image . run: build docker
run -w /app -v $(realpath .):/app my_image
Make is pretty
Make is pretty old
None
Make is pretty popular
None
Make is pretty scary
None
Make is pretty weird
Makefile print_variable: my_variable='blah' echo $my_variable
Makefile print_variable: my_variable='blah' echo $my_variable
Makefile print_variable: @ my_variable='blah'; \ echo $$my_variable
Make is pretty cross-platform
Makefile VALUE = default print_value: @ echo Value is $(VALUE)
Makefile list_all: @ ls -la
Makefile list_all: @ ls -la
Makefile LS = docker run \ --rm -w /app -v
"$(realpath .):/app" bash:5 \ ls list_all: @ $(LS) -la
Makefile ifeq ($(OS), Windows_NT) HOME = $(USERPROFILE) endif home: @
echo There is no place like $(HOME)
Make is pretty powerful
Makefile VALUE ?= default print_value: @ echo Value is $(VALUE)
Makefile release: require_version @ echo "Starting $(VERSION) release..." require_version: ifndef
VERSION $(error You must specify a VERSION variable) endif
Makefile REMOTE_URL = $(shell git remote get-url origin) ifeq ($(subst
git@,,$(REMOTE_URL)), $(REMOTE_URL)) REMOTE_PROTOCOL = HTTPS else REMOTE_PROTOCOL = SSH endif print_remote_protocol: @ echo $(REMOTE_PROTOCOL)
Make is pretty
$ xcode-select --install $ sudo apt install build-essential > choco
install make
None
Alex Tercete @alextercete Thanks!