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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Alex Tercete
February 21, 2020
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
83
Parallelism and Symmetry
alextercete
0
260
Porting to .NET Standard
alextercete
0
84
Prepping Commits
alextercete
1
160
The end of your line-endings nightmare
alextercete
0
220
I love sushi, therefore I love rebase
alextercete
0
120
ReadyRoll for DotNet developers
alextercete
0
110
Coding Dojo: The Randori Kata
alextercete
1
590
How to be a good pair [programmer]
alextercete
0
160
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
200
yield再入門 #phpcon
o0h
PRO
0
950
VibeCodingからAgenticWorkflowへ
starfish719
0
260
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
460
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
570
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
160
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
150
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
110
継続モナドとリアクティブプログラミング
yukikurage
3
690
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
420
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
300
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
530
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
480
The untapped power of vector embeddings
frankvandijk
2
1.8k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
360
Thoughts on Productivity
jonyablonski
76
5.3k
A designer walks into a library…
pauljervisheath
211
24k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
Rebuilding a faster, lazier Slack
samanthasiow
85
9.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!