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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Jace Browning
August 26, 2016
Programming
89
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
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
230
Standalone Python Programs using PyInstaller
jacebrowning
0
130
Juicy Slices of Testing
jacebrowning
0
150
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
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.9k
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.6k
Oxlintのカスタムルールの現況
syumai
6
1.1k
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
230
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
640
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.5k
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
200
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
AI時代のUIはどこへ行く?その2!
yusukebe
21
7.1k
Agentic UI
manfredsteyer
PRO
0
160
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
55k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Everyday Curiosity
cassininazir
0
230
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
210
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
For a Future-Friendly Web
brad_frost
183
10k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
Accessibility Awareness
sabderemane
1
140
Typedesign – Prime Four
hannesfritz
42
3.1k
Bash Introduction
62gerente
615
220k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
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