🍣でmakeの挙動を雑に説明

Sat Mar 3 11:19:49 JST 2018 (modified: Sat Mar 3 15:30:42 JST 2018)
views: 7497, keywords:頭の中だだ漏らし,どうでもよい,make この記事は最終更新日が6年以上前のものです。

 昨日は、絵文字をmakeMakefileで使えることを発見したので色々遊んでいた。

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に書いてしまうと、おそらくエラーが出てしまう。輪廻を表現できるような拡張が、今後、必要と考えられる。

繰り返しになるが、🍣は💩からできている。大自然に感謝の念しかない。

以上。

ノート   このエントリーをはてなブックマークに追加 
 

prev:雑記(2018年2月22日) next:雑記(2018年3月8日)

やり散らかし一覧

記事いろいろ