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
85
0
Share
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
170
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
220
Standalone Python Programs using PyInstaller
jacebrowning
0
130
Juicy Slices of Testing
jacebrowning
0
140
Continuous Deployment: Biography of a Feature Request
jacebrowning
0
130
From Code to Production
jacebrowning
0
110
Other Decks in Programming
See All in Programming
Back to the roots of date
jinroq
0
670
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
470
PHPer、Cloudflare に引っ越す
suguruooki
1
130
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
660
Programming with a DJ Controller — not vibe coding
m_seki
3
770
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
220
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
490
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
150
Road to RubyKaigi: Play Hard(ware)
makicamel
1
530
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
19
10k
【26新卒研修】OpenAPI/Swagger REST API研修
dip_tech
PRO
0
130
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
140
Featured
See All Featured
Leo the Paperboy
mayatellez
7
1.7k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
The Curious Case for Waylosing
cassininazir
0
340
GraphQLとの向き合い方2022年版
quramy
50
15k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
820
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
190
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
240
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
290
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
180
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
100
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