🍣でmakeの挙動を雑に説明
昨日は、絵文字をmakeとMakefileで使えることを発見したので色々遊んでいた。
makeはCやC++のソースの処理に使うものというのが一般的な認識なのだが、シェルスクリプトのように使うこともできる。例えば、
sushi: 🐟
echo 寿司が作れる
🐟:
echo 魚を仕入れる
というmakeファイルをMakefileという名前で作り、そのディレクトリでmakeと打つと
$ make sushi
echo 魚を仕入れる
魚を仕入れる
echo 寿司が作れる
寿司が作れる
というような出力が得られる。Makefileの1行目のsushi: 🐟は、
- 右下に記述された処理(ここでは1行だがタブでインデントして何行でも書ける)にsushiという名前がついていること
- sushiの実行には🐟が必要であること
を意味している。「🐟」という処理は🐟:以下に書いてある。sushiには🐟が必要なので、makeは🐟以下の処理から先に始め、その次にsushiの処理を実行するので上のような出力が得られる。
ということで、Makefileに「xの処理にはyが必要」というルールを記述すると、それにしたがって動くコマンド操作を記述することができる。これが、「xxx.oを作るにはxxx.cが必要」というようなルールを記述する時に便利なので、makeがビルドに使われる。
ちなみに、上記の例では「寿司を作るのにご飯がない」という致命的な間違いを犯している。正しくは、次のツイートのようにご飯を作るためのルール、そして魚がどのように育つかというルールを追加する必要がある。
すると、makeは次のように、寿司が💩から作られることを、なんのためらいもなく理路整然と説明する。ここで-sは処理の手順の出力を省き、結果だけを出力するためのオプションである。
なお、🍣から💩を作るプロセスをMakefileに書いてしまうと、おそらくエラーが出てしまう。輪廻を表現できるような拡張が、今後、必要と考えられる。
繰り返しになるが、🍣は💩からできている。大自然に感謝の念しかない。
以上。
Article Info
created: 2018年 3月 3日 土曜日 11:19:49 JST
modified: 2018年 3月 3日 土曜日 15:30:42 JST
views: 918
keywords: 頭の中だだ漏らし
どうでもよい
make
prev:雑記(2018年2月22日) next:🍣でmakeの挙動を雑に説明