共通のメイクファイルを使用して、いくつかのビルド情報を統合しようとしています。私の問題は、さまざまなサブディレクトリ レベルからその makefile を使用したいということです。これにより、作業ディレクトリの値 ( pwd) が予測できなくなります。例えば:
# Makefile.common
TOP := $(shell pwd)
COMPONENT_DIR := $(TOP)/component
COMPONENT_INC := $(COMPONENT_DIR)/include
COMPONENT_LIB := $(COMPONENT_DIR)/libcomponent.a
Makefile.commonこのようにサブディレクトリからインクルードすると、$(TOP)ディレクトリが正しくなく、他のすべてがそれに続きます。
# other_component/Makefile
include ../Makefile.common
# $(COMPONENT_LIB) is incorrectly other_component/component
気まぐれな代わりに、独自のMakefile.commonディレクトリパスを使用するための最良の方法は何ですか?pwd