Я пытаюсь объединить некоторую информацию о сборке, используя общий make-файл. Моя проблема в том, что я хочу использовать этот make-файл из разных уровней подкаталогов, что делает значение рабочего каталога (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
?