使用多个可组合的makefile目标



我有一个乳胶项目,至少包含两个选项:printable(将可点击链接放在脚注上)和monochrome(将羊毛文档放在黑色上)。这些选项可以作为单个选项使用,也可以同时使用(如果我想要一个脚注中有链接的单色文档)。

这就是我的makefile的骨架:

 printable:
     ${TEX} -jobname=${NAME} "defisprintable{1} input{main.tex}"
 monochrome:
     ${TEX} -jobname=${NAME} "defismonochrome{1} input{main.tex}"

此代码只允许我获取可打印格式X的文档或单色文档。但不能同时出现两次。

我尝试了目标printable monochrome:,但在这种情况下,我总是得到一个可打印的单色文档,而且当我调用make时,只打开printablemonochrome目标。我无法获得唯一的单色文档或唯一的可打印文档。

那么,是否可以在makefile上的目标之前制作一个ifthen结构,以在执行之前评估粘贴的目标?

类似于:

if targets contain monochrome
     then: ARG=${ARG} "defismonochrome{1}"
if tragets contain printable
     then: ARG=${ARG} "defisprintable{1}"
${TEX} -jobname=${NAME} "${ARG} input{main.tex}"

有没有可能用makefile来实现这一点,或者我必须开发另一种方法?

ifdef MONOCHROME
ARGS += \def\ismonochrome{1}
endif
ifdef PRINTABLE
ARGS += \def\isprintable{1}
endif
project:
    ${TEX} -jobname=${NAME} "$(ARGS)"

您可以通过调用,例如

make MONOCHROME=true PRINTABLE=yes

请注意,一些"转义"可能是处理双引号、反斜杠和其他特殊字符所必需的;这可能需要对您的系统进行一些微调。

相关内容

  • 没有找到相关文章

最新更新