Noteビジネスチャット「チャットワーク」のエンジニアとデザイナーのブログです。ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。makeこんにちは、あらいです。年の瀬ですが3月に書いた記事の続きです。前回は基礎として、makeは「作りたいファイル、材料になるファイル、作るコマンド」をルールとして定義できることファイルの更新時間をみてコマンドを実行すること複数のルールを連鎖できることなどを書きました。今回は、web開発の現場でmakeにどのような使い道があるかを書きます。前回の例で、コマンドが最終的に作りたいはずのファイルを作らなかったケースを考えます。コマンドを実行してみます。いう発想が生まれます。いうコマンドでrmコマンドを実行することができます。hello今時のCLIツールっぽくサブコマンドが作れそうですね。Target:偽りのターゲット)と呼ばれます。ここで1つ問題があります。ファイルの更新状態判定が誤作動してしまうのです。ファイルが邪魔をしています。いう特殊なターゲットと仕組みが用意してあります。cleanは実際にファイルがあろうがなかろうが関係ないことを示す。関係だけ記述して、コマンドは省略する。cleanこれによりcleanターゲットが動作するようになります。前置きが長くなりました。私が開発で使っているのはC言語ではなくPHPです。ようなビルドプロセスはもはや当たり前です。自動化してみましょう。想定する状況こんな状況を想定します。コマンドの実行.env.exampleを.envとしてコピーするが必要です。次のことを適宜やる必要があります。再実行する.env.exampleが更新されたら.envにコピーし直すこれをmakeで自動化します。次のようなMakefileを書き、composer.jsonと同じくプロジェクトのルートに置きます。installコマンドが実行されました。しても、何もやることないよ、と判定してくれます。