我正在寻找Makefile宏来获取目录中作为rule1处理生成并使用此列表进行规则2处理的所有文件的列表.
这是我想要实现的目标:
.c
文件(使用xml文件)并将它们放在$(MYDIR)
目录中.$(MYDIR)
并创建目标文件并将其放入$(OBJDIR)
.问题是,我想在处理规则1后更新Rule2中的文件列表,否则文件列表$(MYDIR)
将为空.
all : rule_1 rule_2
rule1 : $(MYDIR)/generated_source1.c $(MYDIR)/generated_source2.c
$(MYDIR)/generated_source1.c:
xsltproc generator1.xml style_generator.xsl -o $(MYDIR)/generated_source_1.c
$(MYDIR)/generated_source2.c:
xsltproc generator2.xml style_generator.xsl -o $(MYDIR)generated_source_2.c
#Get list of all $(MYDIR).*c , create corresponding $(OBJDIR)/*.o list.
SOURCES := $(wildcard $(MYDIR)/*.c)
OBJECTS := $(notdir ${SOURCES})
GENERATED_OBJS := $(patsubst %.c,$(OBJDIR)/%.o,$(OBJECTS))
#This rule is compiling of all .c generated in rule1.
rule2 : $(GENERATED_OBJS)
ld -r -o $(OBJDIR)/generated_lib.o $(GENERATED_OBJS)
$(OBJDIR)/%.o: $(MYDIR)/%.c
gcc $(CFLAGS) -c …
Run Code Online (Sandbox Code Playgroud) makefile ×1