我目前正在尝试使用文件来配置我的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不构建。
感谢您的时间
答案 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)))