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
92
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
74
Parallelism and Symmetry
alextercete
0
250
Porting to .NET Standard
alextercete
0
80
Prepping Commits
alextercete
1
150
The end of your line-endings nightmare
alextercete
0
200
I love sushi, therefore I love rebase
alextercete
0
120
ReadyRoll for DotNet developers
alextercete
0
100
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
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
220
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
620
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
270
モダンOBSプラグイン開発
umireon
0
190
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.2k
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
330
OTP を自動で入力する裏技
megabitsenmzq
0
130
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
380
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
280
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
160
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
190
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
210
Featured
See All Featured
Crafting Experiences
bethany
1
100
Marketing to machines
jonoalderson
1
5.1k
SEO for Brand Visibility & Recognition
aleyda
0
4.4k
Facilitating Awesome Meetings
lara
57
6.8k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
300
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
160
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.5k
Ruling the World: When Life Gets Gamed
codingconduct
0
190
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
GitHub's CSS Performance
jonrohan
1032
470k
The untapped power of vector embeddings
frankvandijk
2
1.6k
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!