在函数形式中忽略Makefile CFLAGS和SRCS-y

时间:2017-08-03 02:14:24

标签: makefile cflags

制作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,但是当做"制作" - SRCS-y_与null相同。
  • 手动设置时CFLAGS和SRCS-y没问题(无功能)。

我认为Makefile与csh几乎相同。 你能解释一下为什么" make"忽略功能? 感谢。

1 个答案:

答案 0 :(得分:0)

CFLAGS_只是一个字符串。 $(CFLAGS_)是变量的值。所以你应该:

CFLAGS += $(CFLAGS_)
SRCS-y += $(SRCS-y_)