用For循环填充Makefile变量

Populate Makefile Variable with For Loop

本文关键字:Makefile 变量 填充 循环 For      更新时间:2023-10-16

我有args.cpp/h, output.cpp/hcomputation.cpp/h文件。我想使用他们的目标文件和他们的头文件作为依赖项。

我试图通过创建一个makefile变量来最小化代码重复,然后分别用它们的目标文件名和头文件名填充另外两个makefile变量。

这是我到目前为止所尝试的,没有结果:

BASES = args output computation
OBJS =
CODE =
for base in $(BASES); do 
    OBJS += $$base.o ; 
    CODE += $$base.h ; 
done;

我的方法对吗?如果是这样,我如何修复for循环?如果没有,我应该使用什么makefile方法来消除代码重复?

这是shell和make的混合,不能这样工作。如果你真的想这样做,你可以这样做,但没有理由这样做。

BASES = args output computation
OBJS = $(addsuffix .o,$(BASES))
CODE = $(addsuffix .h,$(BASES))

CODE = args.h output.h computation.h
OBJS = $(CODE:.h=.o)