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
Intro to Make
Search
Jace Browning
August 26, 2016
Programming
94
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Intro to Make
An introduction to Makefiles given at BarCamp GR.
Jace Browning
August 26, 2016
More Decks by Jace Browning
See All by Jace Browning
HTMX + Django
jacebrowning
0
180
Python Packaging and Distribution
jacebrowning
0
110
Best Practices for Automated Regression Testing
jacebrowning
0
170
Skillet pitch at Startup Weekend
jacebrowning
0
210
Continuous Deployment using GitHub, CircleCI, and Heroku
jacebrowning
0
240
Standalone Python Programs using PyInstaller
jacebrowning
0
130
Juicy Slices of Testing
jacebrowning
0
150
Continuous Deployment: Biography of a Feature Request
jacebrowning
0
140
From Code to Production
jacebrowning
0
120
Other Decks in Programming
See All in Programming
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
1
230
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
210
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
410
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
継続モナドとリアクティブプログラミング
yukikurage
3
680
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
130
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
660
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.7k
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
130
Claude Team Plan導入・ガイド
tk3fftk
0
250
AIが無かった頃の素敵な出会いの話
codmoninc
1
380
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Unsuck your backbone
ammeep
672
58k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
New Earth Scene 8
popppiees
3
2.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Building Applications with DynamoDB
mza
96
7.2k
WENDY [Excerpt]
tessaabrams
11
39k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
420
So, you think you're a good person
axbom
PRO
2
2.1k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Transcript
Intro to Make @JaceBrowning
What is Make? • Build automation tool ◦ Builds executable
programs from source code ◦ Update files automatically when related files change • Initial release: 1977 • Filename: Makefile ◦ Targets ◦ Components ◦ Commands
barcamp: barcamp.c gcc -o barcamp barcamp.c $ make barcamp
None
Motivation
Arguments against Grunt, Gulp, etc. • Bootstrapping problem • Limited
dependency tracking • Project switching overhead ◦ How do I install the dependencies? ◦ How do I run the tests?
Arguments for Make • Ubiquitous • Stable • Self-contained •
Established conventions ◦ make ◦ make test ◦ make clean
Advantages of Standardizing • Reduced project switching overhead • Shared
Continuous Integration configuration • Easier build debugging
before_script: - git submodule update --init --recursive - ./set_token.sh -
bundle install script: - bundle exec rake secure_pipeline:network_attack - bundle exec rake secure_pipeline:ssl_attack - bundle exec rake secure_pipeline:xss - bundle exec rake secure_pipeline:information_leakage - bundle exec rake secure_pipeline:sql_injection before_script: - make script: - make ci
Features
Files and Timestamps • Create missing files • Traverse dependency
chains • Update files when dependencies are newer
Variables • CONSTANT := value • LAZY = $(shell ls
*.py) • OPTIONAL ?= value2 ◦ make <target> OPTIONAL=value3
Automatic Variables • $@ • $< • $^ https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html
Demo
Thanks! @JaceBrowning