Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Intro to Make
Search
Jace Browning
August 26, 2016
Programming
100
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
190
Python Packaging and Distribution
jacebrowning
0
120
Best Practices for Automated Regression Testing
jacebrowning
0
190
Skillet pitch at Startup Weekend
jacebrowning
0
220
Continuous Deployment using GitHub, CircleCI, and Heroku
jacebrowning
0
250
Standalone Python Programs using PyInstaller
jacebrowning
0
150
Juicy Slices of Testing
jacebrowning
0
160
Continuous Deployment: Biography of a Feature Request
jacebrowning
0
150
From Code to Production
jacebrowning
0
130
Other Decks in Programming
See All in Programming
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
370
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.9k
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
Seven New Principles of Software Engineering
yegor256
0
470
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
GraphQL の onError と Nullability のこれから
quramy
0
210
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
740
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
360
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
3.7k
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
190
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
810
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
200
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
First, design no harm
axbom
PRO
2
1.4k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
650
My Coaching Mixtape
mlcsv
0
380
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
560
ラッコキーワード サービス紹介資料
rakko
5
5.8M
Everyday Curiosity
cassininazir
0
400
30 Presentation Tips
portentint
PRO
1
460
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
3k
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