Makefile的配置文件

时间:2016-11-27 22:29:48

标签: makefile

我目前正在尝试使用文件来配置我的makefile。

这就是我所做的

NAME        =   test
OBJS        =   $(SRCS_NAMES:.c=.o)
SRCS_DIR    =   sources/

function = echo main.c test.c
#function where i parse my file
#i use a makefile function cause i need to pass regex as parameters

all : $(NAME)

parse :
    $(eval SRCS_NAMES = $(addprefix $(SRCS_DIR), $(shell $(call function))))

-include parse

%.o : %.c
    gcc -c $< -o $@

$(NAME) : $(OBJS)
    gcc -o $(NAME) $(OBJS)

我不明白为什么.o不构建。

感谢您的时间

1 个答案:

答案 0 :(得分:0)

您的parse规则不会创建实际的makefile,因此make在处理完规则后不会重新启动解析,并且在制作期间OBJS将为空第一阶段。

您可以创建一个makefile

parse:
    @echo SRCS_NAMES = $(addprefix $(SRCS_DIR), $(shell $(call function))) > $@

或者直接在当前makefile的正文中设置SRCS_NAMES

SRCS_NAMES  = $(addprefix $(SRCS_DIR), $(shell $(call function)))