首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多个可组合的makefile目标

使用多个可组合的makefile目标
EN

Stack Overflow用户
提问于 2015-04-02 01:24:01
回答 1查看 46关注 0票数 0

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

所以,这是我的makefile的骨架:

代码语言:javascript
复制
 printable:
     ${TEX} -jobname=${NAME} "\def\isprintable{1} \input{main.tex}"

 monochrome:
     ${TEX} -jobname=${NAME} "\def\ismonochrome{1} \input{main.tex}"

此代码只允许我获得可打印格式的文档X或单色文档。但不能在同一时间重复两次。

我尝试了目标printable monochrome:,但在本例中,我总是得到一个可打印的单色文档,当我只在printablemonochrome目标上调用make时也是如此。我无法获得唯一的单色文档或唯一可打印的文档。

那么,在makefile上的目标之前创建一个ifthen结构是否可能在执行之前对粘贴的目标进行评估?

类似于:

代码语言:javascript
复制
if targets contain monochrome
     then: ARG=${ARG} "\def\ismonochrome{1}"

if tragets contain printable
     then: ARG=${ARG} "\def\isprintable{1}"

${TEX} -jobname=${NAME} "${ARG} \input{main.tex}"

用makefile可以做到这一点吗?还是我必须用另一种方式来开发?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-02 04:54:23

代码语言:javascript
复制
ifdef MONOCHROME
ARGS += \\def\\ismonochrome{1}
endif

ifdef PRINTABLE
ARGS += \\def\\isprintable{1}
endif

project:
    ${TEX} -jobname=${NAME} \"$(ARGS)\"

你可以用,例如,调用它。

代码语言:javascript
复制
make MONOCHROME=true PRINTABLE=yes

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29403537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档