2012-02-06 4 views
0

私はmakeファイルで行われている正確な動作を理解しようとしています(初めてmakeを使ってビルドを操作する)。メイクファイルの意図したターゲットシステムの把握

makeファイルがBSD make、GNU make、またはWindows nmakeで使用されることを意図しているかどうかを知りたい。 1)どのように3つすべての文書を読んで、その違いを理解することなく、これを行うことができますか?

2)いくつかの記事を読んだあと、makeはソースコードを実行可能ファイルやDLLや何らかの出力形式でビルドすることを主目的とするユーティリティであると結論づけました。 。 Makefileは、makeユーティリティに指示を与える手段です。これは正しいですか?

3)コードが作成されるmakeとプラットフォームの関係は何ですか?

4)依存関係行(target:components)で発行されるコマンドはシェルコマンドですか?

ありがとうございます。

答えて

1
  1. どのように私はすべての3つのドキュメントを読むと、その違いを理解せずにこれを行うことができますか?

    GNU Makeを使用する可能性が最も高いです。私はMakeのバージョンによって書かれたMakefileを区別するのは比較的簡単だと思います。

    AFAIK、GNU MakeとBSD Makeは、少なくとも言語の構文において多くの違いがあります。

    ifdef VARIABLE 
    # ... 
    endif 
    

    そしてBSDに(私はよく分からないが)、それはこのようなものであることを確認してください:

    .if 
    # ... 
    .endif 
    

    も参照してください:

    たとえば、GNUに典型的な条件ディレクティブがどのように見えるしてください
  2. Makefileはmakeユーティリティに指示する手段です。これは正しいですか?

    うん、絶対に正しい。

  3. コードが作成されるmakeとプラットフォームの関係は何ですか?

    メイクは、作成する成果物間の依存関係を追跡し、これらの依存関係を満たす適切な順序でコマンドを実行するユーティリティです。 どの正確なコマンドを使用すべきかは、そのユーザーの責任で行ってください。したがって、クロスコンパイルにもMakeを使用することができます。

  4. 依存関係行(target : components)で発行されるコマンドはシェルコマンドですか?

    はい、通常、Makeは指定されたレシピを実行するサブシェルを生成します。

関連する問題