在Makefile循环中使用新变量

时间:2015-11-02 11:49:14

标签: loops variables foreach makefile

在弄乱了foreach循环,eval以及美元符号,括号,分号和诸如此类的各种组合后,我终于在Makefile中获得了一堆shell命令所需的结果。

我有一个目录结构:

  

> 。
> ./Makefile
> 。/资源   
> ./source/a
> ./ource / b
> ./source/c

和Makefile:

WORKDIR?=$(shell pwd)/builddir_$(SRCDIR)

all: copy_sources test_var

copy_sources:
    mkdir $(WORKDIR)
    mkdir $(WORKDIR)/logs
    @rsync -paqhC $(SRCDIR) $(WORKDIR)/

test_var:
    cd $(WORKDIR)
    for TESTDIR in $(wildcard $(WORKDIR)/$(SRCDIR)/*); do \
        cd $$TESTDIR ; \
        TESTNAME=`basename $$TESTDIR`; \
        touch file_$${TESTNAME}_out.txt; \
        echo "done $${TESTNAME}" > $(WORKDIR)/logs/$${TESTNAME}.log; \
        cd $(WORKDIR); \
    done
我调用的

  

使所有SRCDIR =来源

这看起来有点令人费解,所以我想知道是否有办法使用Makefile语法而不是将它全部传递给shell。我特别难以将basename分配给变量然后使用该变量。

0 个答案:

没有答案