FreeBSD初心者運用日記 このページをアンテナに追加

 | 

2008-04-09

[]メモ 07:49 メモ - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - メモ - FreeBSD初心者運用日記 メモ - FreeBSD初心者運用日記 のブックマークコメント

  • 単にmakeと入力して実行した場合、makeMakefileの一番最初に書かれたターゲットがそれを作成するために必要なコンポーネントとともに作成されます。
  • ルール行とコマンド行は同じ行にかくことができます。
    • program : program.o; cc -o program program.o
  • 同じターゲットが複数のルール行に存在することもできます。
    • 例:ターゲットhogeのコンポーネントが、Cのソースとヘッダーファイルとある場合、ソースとヘッダファイルで別の依存関係行を作成することができる。
  • ルール行で、コンポーネントを書かないこともあります。たとえば、↓。
clean:
    /bin/rm -f core *.o
  • make cleanで上記のエントリが実行されます。
  • makeで使用する定数ともいうべきものに、マクロがあります。マクロは文字列を展開します。
  • マクロにはあらかじめ定義されているものがあります。${CC}や${LD}です。それぞれCコンパイラ、リンカとしてmakeに認識されます。-pオプションで内部定義されたマクロを表示してくれるらしい!?
  • シェル変数はメイクファイルの中からマクロとして参照することができます。
  • マクロ参照の優先順位について
    • メイクファイルから参照できるマクロとして4つものがあります。シェル変数、コマンドライン上で設定したマクロ、内部定義されたマクロ、そしてメイクファイルの中で定義したマクロです。これらのマクロはmakeから参照される優先順位があります。シェル変数を優先的に使いたい場合は、make -e testという感じで実行するとよい。
 |