带循环和几个条件的Makefile

时间:2018-07-19 16:22:43

标签: makefile gnu-make

我正在尝试创建一个Makefile,这是我到目前为止所拥有的:

all : 
    for var in 1 2 3 4 5 6 7 8; do \
        ifneq ("$(wildcard user0$(var).Z)","") \
            //need to add something 
            echo "GNU sort does not exist! Exiting..."; \
        else \
            //some command \
        endif \
    done

目录中的所有文件都命名为user01.x,user01.Y等。 我希望“全部制作”具有这样的功能:首先,如果当前目录中不存在这样的user0 $(var).Z)文件,则打印错误消息,但它给出了这样的错误:

for var in 1 2 3 4 5 6 7 8; do \
        ifneq ("","") \
            echo "GNU sort does not exist! Exiting..."; \
        else \
            //some command \
        endif \
    done
/bin/sh: 2: Syntax error: word unexpected (expecting ")")
make: *** [all] Error 2

我不知道为什么通配符不起作用。此外,我想添加另一个条件,以便如果.Z文件早于.X和.Y文件,则(某些命令)运行。 (所有文件都在当前目录中)如果我事先知道所有文件名,我知道这很简单,我可以将所有文件名硬编码在Makefile中,但是我想怎么在一个循环中这样做(已经是否存在.Z文件的条件)?

2 个答案:

答案 0 :(得分:1)

您可以使用执行测试并在其中执行所需操作的函数:

<File Name=""><ResourcePath></ResourcePath></File> 

答案 1 :(得分:0)

到目前为止,您所描述的可以这样完成:

loopingFunction.runThis