Makefileを作成する一般的な要点を覚えていますが、CMake、autotools、その他のMakefileジェネレーターのために、多くの詳細を忘れてしまったので、複雑なプロジェクトのMakefileを最初から作成するように依頼された場合は、少なくとも数時間はかかります。
そこにはたくさんの意見があるに違いありません、私は最も有益な答えを探しています。忍者(手書きを意図していないMakefile)とすべての自動ジェネレーターを考えると、レガシーコードのメンテナンスを除いて、Makefile構文を任意にブラッシュアップすることは意味がありますか?
最近、プロジェクトを「手動でビルド」できることには多くの用途があります。
それがメイクファイル、シェルスクリプト、または古き良きMsDosベースのバッチファイルの使用によるものであるかどうかは、実際には問題ではありません。
ご指摘のとおり、レガシーコードのメンテナンスだけでなく、システムを復旧して実行するための緊急パッチやバグ修正についてはどうでしょうか。
何年にもわたって、私はフィールドエンジニアとして多くの仕事をしてきましたが、接続したラップトップにSSH端末しかなかったデータセンターで立ち往生した回数のカウントを失いました。奇抜で素晴らしいカスタムサーバーシステムに。
特に現在統合テストを受けているカスタムプロジェクトで作業している場合は特に、通常のツールの贅沢を常に備えているとは限りません。
その理由とその理由だけで、最も少ない開発環境を使用して作業できることは常に良い考えです。それがGCCのコピーを意味する場合、非常に基本的な* nixを含む8GBの起動可能なキーチェーンで実行されるMakeとVimディストリビューションなら、練習を続ける価値があります。
ソフトウェア開発者は、現在のプロジェクトで使用されるツールチェーンに精通している必要があります。チームにはそのプロセスを所有する1人の開発者がいて、すべての詳細に精通している必要があるため、すべての専門家である必要はありませんが、ビルドスクリプトを見て、その機能を理解できる必要があります。
特にMakefileを使用すると、とにかくそれらを生成するために Automake などのツールを使用する可能性が高くなります。したがって、Makefileを手動で作成することはあまり役に立ちませんが、何かが正しく機能しない場合に備えて、Makefileを読み取ることができるはずです。
Makefileを手動で変更した場合でも、次にそれを生成するときに変更が無効になるので、なぜわざわざするのですか?最初にMakefileの生成に使用されるアップストリーム構成の更新に注力してください。