Makefile 指定要在make命令中使用的makeinfo

Makefile 指定要在make命令中使用的makeinfo,makefile,osx-yosemite,texinfo,Makefile,Osx Yosemite,Texinfo,在OS X Yosemite上,standart texinfo版本非常旧,不支持某些功能 我现在已经通过安装了一个更新的版本。由于已经存在一个版本,所以二进制文件不会被放入路径(仅限keg),这非常有意义 现在,在不修改make文件的情况下,如何告诉make,我想使用位于/usr/local/opt/texinfo/bin/makeinfo的二进制文件 我可以 在路径中链接makeinfo 执行make 取消链接texinfo 但是我认为这不优雅。 这是我唯一的选择吗?这取决于您的makefi

在OS X Yosemite上,standart texinfo版本非常旧,不支持某些功能

我现在已经通过安装了一个更新的版本。由于已经存在一个版本,所以二进制文件不会被放入路径(仅限keg),这非常有意义

现在,在不修改make文件的情况下,如何告诉
make
我想使用位于
/usr/local/opt/texinfo/bin/makeinfo
的二进制文件

我可以

  • 在路径中链接makeinfo
  • 执行make
  • 取消链接texinfo
  • 但是我认为这不优雅。
    这是我唯一的选择吗?

    这取决于您的makefile。如果它使用一个变量来保存makeinfo程序的名称,如下所示:

    MAKEINFO = /usr/bin/makeinfo
    
    foo.info: foo.texi
           $(MAKEINFO) ...
    
    然后您只需运行
    makemakeinfo=/usr/local/opt/texinfo/bin/MAKEINFO

    或者,如果它只使用程序名而没有路径,如
    makeinfo
    ,则可以在调用make之前设置
    $path
    变量:
    path=/usr/local/opt/texinfo/bin:$path make

    如果makefile使用不带变量的硬编码路径调用
    makeinfo

    foo.info: foo.texi
            /usr/bin/makeinfo ...
    

    那么你就不走运了,你必须更改你的makefile。

    谢谢。它使用
    MAKEINFO=MAKEINFO
    ,因此我可以使用第一种或最后一种方法。