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
0
70
Making Makefiles
Makefiles are pretty if you learned to appreciate their beauty.
Alex Tercete
February 21, 2020
Tweet
Share
More Decks by Alex Tercete
See All by Alex Tercete
Shipping containers
alextercete
0
57
Parallelism and Symmetry
alextercete
0
220
Porting to .NET Standard
alextercete
0
61
Prepping Commits
alextercete
1
130
The end of your line-endings nightmare
alextercete
0
190
I love sushi, therefore I love rebase
alextercete
0
110
ReadyRoll for DotNet developers
alextercete
0
90
Coding Dojo: The Randori Kata
alextercete
1
520
How to be a good pair [programmer]
alextercete
0
130
Other Decks in Programming
See All in Programming
AI時代の開発者評価について
ayumuu
0
150
メモリウォールを超えて:キャッシュメモリ技術の進歩
kawayu
0
1.9k
Java 24まとめ / Java 24 summary
kishida
3
500
Agentic Applications with Symfony
el_stoffel
2
300
趣味全開のAITuber開発
kokushin
0
200
Thank you <💅>, What's the Next?
ahoxa
1
140
タイムゾーンの奥地は思ったよりも闇深いかもしれない
suguruooki
1
670
[NG India] Event-Based State Management with NgRx SignalStore
markostanimirovic
1
160
Qiita Bash
mercury_dev0517
2
200
大LLM時代にこの先生きのこるには-ITエンジニア編
fumiyakume
7
3k
SwiftUI API Design Lessons
niw
1
290
RubyKaigi Dev Meeting 2025
tenderlove
1
150
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Building Flexible Design Systems
yeseniaperezcruz
329
38k
Site-Speed That Sticks
csswizardry
5
490
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
GitHub's CSS Performance
jonrohan
1030
460k
Scaling GitHub
holman
459
140k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
We Have a Design System, Now What?
morganepeng
52
7.5k
The Cult of Friendly URLs
andyhume
78
6.3k
Designing for humans not robots
tammielis
252
25k
Done Done
chrislema
183
16k
Adopting Sorbet at Scale
ufuk
76
9.3k
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!