makefile - 跳过丢失文件的目标

标签 makefile

我正在尝试创建一个 Makefile,如果输入文件丢失,它会跳过目标。目前我正在使用以下代码:

default:    foo \
            bar

foo:    foo.pdf
bar:    bar.pdf

%.pdf: %.tex
    @if [ -s $< ]; then \
        pdflatex -interaction=batchmode $<; \
    else \
        echo 'Skipped' $<; \
    fi;

只要文件 foo.tex 存在,它就可以工作,但如果丢失,它就会失败:

make: *** No rule to make target 'foo.pdf', needed by 'foo'. Stop.

我希望该过程继续使用可能存在的 bar.tex,而不是停止。

如何正确处理此类情况?

最佳答案

%.pdf: %.tex
    pdflatex -interaction=batchmode $<

%.pdf:
    @echo Skipped $@

关于makefile - 跳过丢失文件的目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49927484/

相关文章:

c++ - CMake 安装(子目录中的目标)

makefile - 无法使用Cmake构建

c++ - 为 make/g++ 缓存头文件

android - 交叉编译 GLibC 2.24 失败并出现错误 1

使用 all、clean 和 other 创建 makefile C

shell - 如何比较Makefile中的两个shell命令输出?

c++ - 生成文件 'fdopen: Bad file descriptor' 错误

linux - 我如何初始化然后在 linux makefile 中迭代数组?

gcc - 即使将 --prefix 传递给 configure 也拒绝安装权限

linux -/usr/bin/ld : cannot open output file assimp2json: Is a directory