4

別のメイクファイルを呼び出すメイクファイルがある場合、下位のメイクファイルの依存関係が変更されたかどうかをマスターのメイクファイルで正しく確認するにはどうすればよいですか?

たとえば、ルールがある場合

server:
     @cd $(SERVERDIR) && $(MAKE)

これにより、実行可能な「サーバー」を構築するサブディレクトリで make が呼び出されます。しかし、サーバーを構成するファイルの 1 つを変更すると、親の make は変更を認識せず、サーバーの再構築を拒否します - 「make: `server' is up to date.」。

依存ファイルの 1 つ (たとえば、$(SERVERDIR)/server.c のようなもの) に変更があった場合に、マスター makefile が正しく検出できるようにするにはどうすればよいですか?

4

3 に答える 3

1

ターゲット名は、メインMakefileディレクトリ内のいずれかのファイルまたはディレクトリの名前と一致します。

というサブディレクトリにすべてをビルドする必要があると仮定するとserver、このルールは次のようになります。

server:
    $(MAKE) -C server

ターゲットserverはディレクトリであり、ソースファイルがなく、ビルドする必要がないため、機能しません。

これです:

srv:
    $(MAKE) -C server

というファイルまたはディレクトリがない限り、動作しますsrv

于 2009-02-17T14:46:55.160 に答える
1

あなたはそうしない:

しかし、サブ makefile を制御していないなどの理由で選択の余地がない場合、.PHONY探しているのはターゲットです。

于 2009-02-17T16:06:49.927 に答える