6

(g)make に、メインの Makefile に対するインクルード ファイルの相対位置を知っている別のファイルからいくつかの一般的な初期化をインクルードするように指示したいと思います。

ただし、マニュアルには、たとえば現在の Makefile の名前を与える組み込み変数が見つかりません。

たとえば、インクルードの場所を配線するのではなく、現在のメイク ファイルと同じディレクトリにファイルの内容を含めたい場合:

# MAIN Makefile : ./scripts/make/TaskA.mk

include ./scripts/make/Common.inc
...

_MAKEFILE_TaskA.mk の場所が含まれていると仮定して、次のようなものを書きたいと思います。

# MAIN Makefile : ./scripts/make/TaskA.mk

MAKEFILE_DIR=$(dirname $(_MAKE_FILE_))

include $(MAKEFILE_DIR)/Common.inc
4

2 に答える 2

7

マニュアルには に基づいたレシピがMAKEFILE_LIST記載されていませんか?

基本的

this_makefile := $(lastword $(MAKEFILE_LIST))

includeディレクティブがトリックを実行する前に。

于 2012-10-12T15:19:24.453 に答える
5

GNUmake-その他の特殊変数を見てください。MAKEFILE_LIST読み取られたすべてのMakefileが含まれます。したがって、最初のディレクトリを取得してディレクトリを抽出すると、完了です。

MAKEFILE_DIR=$(dir $(firstword $(MAKEFILE_LIST)))

include $(MAKEFILE_DIR)Common.inc
于 2012-10-12T15:42:18.590 に答える