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
65
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
150
Python Packaging and Distribution
jacebrowning
0
82
Best Practices for Automated Regression Testing
jacebrowning
0
150
Skillet pitch at Startup Weekend
jacebrowning
0
200
Continuous Deployment using GitHub, CircleCI, and Heroku
jacebrowning
0
180
Standalone Python Programs using PyInstaller
jacebrowning
0
96
Juicy Slices of Testing
jacebrowning
0
120
Continuous Deployment: Biography of a Feature Request
jacebrowning
0
110
From Code to Production
jacebrowning
0
100
Other Decks in Programming
See All in Programming
Ruby's Line Breaks
yui_knk
2
1.1k
AIコーディングの理想と現実
tomohisa
22
30k
AWSで雰囲気でつくる! VRChatの写真変換ピタゴラスイッチ
anatofuz
0
160
Building Scalable Mobile Projects: Fast Builds, High Reusability and Clear Ownership
cyrilmottier
2
290
State of Namespace
tagomoris
4
1.7k
監視 やばい
syossan27
8
6.9k
リストビュー画面UX改善の振り返り
splcywolf
0
140
「”誤った使い方をすることが困難”な設計」で良いコードの基礎を固めよう / phpcon-odawara-2025
taniguhey
0
160
生成AIを使ったQAアプリケーションの作成 - ハンズオン補足資料
oracle4engineer
PRO
3
230
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
1
2.3k
AIコードエディタの基盤となるLLMのFlutter性能評価
alquist4121
0
210
Contribute to Comunities | React Tokyo Meetup #4 LT
sasagar
0
340
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
29
5.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
13
1.4k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
550
Code Review Best Practice
trishagee
67
18k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Docker and Python
trallard
44
3.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
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