Makefile CFLAGS и SRCS-y игнорируются в функциональной форме
У меня есть некоторые проблемы с созданием Makefile. Это часть Makefile.
dirs := fwd common bp bp_manager $(XRTE_HASH)
VPATH_ = $(foreach dir,$(dirs),$(SRCDIR)/$(dir))
INC_ = $(foreach dir,$(dirs),$(wildcard $(dir)/*.h))
CFLAGS_ = $(foreach dir,$(dirs),-I$(SRCDIR)/$(dir))
SRCS-y_ = $(foreach dir,$(dirs),$(notdir $(wildcard $(dir)/*.c)))
VPATH += $(VPATH_)
INC += $(INC_)
CFLAGS += $(CFLAGS_)
SRCS-y += $(SRCS-y_)
check:
echo $(CFLAGS)
echo $(SRCS-y)
- VPATH и INC работали как я задумал.
- CFLAGS не содержит CFLAGS_
- SRCS-y был напечатан, как я и предполагал, но это не имеет никакого эффекта, когда "make" - SRCS-y_ был таким же, как и ноль.
- CFLAGS и SRCS-y в порядке, если они установлены вручную (без функции).
Я думал, что Makefile почти такой же, как csh. Можете ли вы объяснить мне, почему "make" игнорирует функции? Благодарю.
1 ответ
Решение
CFLAGS_ это просто строка. $(CFLAGS_) является значением переменной. Итак, вы должны иметь:
CFLAGS += $(CFLAGS_)
SRCS-y += $(SRCS-y_)