如何使用 makefile 检查具有特定扩展名的文件是否存在
How to check if a file with a certain extension exists using a makefile
我想检查makefile中是否存在具有特定扩展名的文件,但是这段代码不起作用:
ejecutar: $(OUTPUT) clean
ifeq (,$(wildcard *.dat))
./$(OUTPUT) < $(OUTPUT).dat >$(OUTPUT).txt
else
./$(OUTPUT) < $(OUTPUT).dat >$(OUTPUT).txt
据说错误在 ifeq 行。
配方中的内容应该是shell脚本,而不是Makefile语法。当读取 Makefile 时,Make 解释的任何内容都会扩展,您通常希望您的配方在执行该特定配方时检查事物。 (这是一个常见的初学者常见问题解答。)
检查通配符是否匹配 shell 脚本中的任何文件也出奇地不明显。
ejecutar: $(OUTPUT) clean
set -- *.dat \
; if [ -e "$" ]; then \
./$< < $<.dat >$<.txt; \
else \
./$< < $<.dat >$<.txt; \
fi
你的 then
和 else
案例相同也很奇怪,但我没有判断。
我想检查makefile中是否存在具有特定扩展名的文件,但是这段代码不起作用:
ejecutar: $(OUTPUT) clean
ifeq (,$(wildcard *.dat))
./$(OUTPUT) < $(OUTPUT).dat >$(OUTPUT).txt
else
./$(OUTPUT) < $(OUTPUT).dat >$(OUTPUT).txt
据说错误在 ifeq 行。
配方中的内容应该是shell脚本,而不是Makefile语法。当读取 Makefile 时,Make 解释的任何内容都会扩展,您通常希望您的配方在执行该特定配方时检查事物。 (这是一个常见的初学者常见问题解答。)
检查通配符是否匹配 shell 脚本中的任何文件也出奇地不明显。
ejecutar: $(OUTPUT) clean
set -- *.dat \
; if [ -e "$" ]; then \
./$< < $<.dat >$<.txt; \
else \
./$< < $<.dat >$<.txt; \
fi
你的 then
和 else
案例相同也很奇怪,但我没有判断。