2016-11-27 59 views
1

我目前正在嘗試使用文件來配置我的生成文件。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 [email protected] 

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

我不明白爲什麼的.o沒有建立。

感謝您的時間

回答

0

parse規則不創建一個實際的makefile文件,所以要不會重新啓動解析它處理完規則後,和OBJS將是在化妝的第一個階段是空的。

您可以創建一個makefile

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

或者只是在當前的makefile定身SRCS_NAMES直接

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