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
0
81
Intro to Make
An introduction to Makefiles given at BarCamp GR.
Jace Browning
August 26, 2016
Tweet
Share
More Decks by Jace Browning
See All by Jace Browning
HTMX + Django
jacebrowning
0
170
Python Packaging and Distribution
jacebrowning
0
98
Best Practices for Automated Regression Testing
jacebrowning
0
160
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
120
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
Python’s True Superpower
hynek
0
190
Rails Girls Tokyo 18th GMO Pepabo Sponsor Talk
yutokyokutyo
0
190
CSC307 Lecture 12
javiergs
PRO
0
450
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
240
Premier Disciplin for Micro Frontends Multi Version/ Framework Scenarios @OOP 2026, Munic
manfredsteyer
PRO
0
200
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
230
AI巻き込み型コードレビューのススメ
nealle
2
2.5k
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
130
NOT A HOTEL - 建築や人と融合し、自由を創り出すソフトウェア
not_a_hokuts
2
530
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
510
CopilotKit + AG-UIを学ぶ
nearme_tech
PRO
1
120
Event Storming
hschwentner
3
1.3k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Building AI with AI
inesmontani
PRO
1
760
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
130
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
190
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
620
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
BBQ
matthewcrist
89
10k
Marketing to machines
jonoalderson
1
5k
Abbi's Birthday
coloredviolet
2
5.1k
Design in an AI World
tapps
0
160
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