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
82
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
100
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
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
安いハードウェアでVulkan
fadis
1
930
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
270
存在論的プログラミング: 時間と存在を記述する
koriym
5
840
「速くなった気がする」をデータで疑う
senleaf24
0
150
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
550
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
へんな働き方
yusukebe
6
2.9k
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
2
190
Feature Toggle は捨てやすく使おう
gennei
0
450
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
860
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
250
3分でわかるatama plusのQA/about atama plus QA
atamaplus
0
120
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
680
Skip the Path - Find Your Career Trail
mkilby
1
100
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
Tell your own story through comics
letsgokoyo
1
890
Building Adaptive Systems
keathley
44
3k
The Cult of Friendly URLs
andyhume
79
6.8k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
150
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
97
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
500
Crafting Experiences
bethany
1
110
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