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_)
Другие вопросы по тегам