如何在Mac OS上安装更新版本的make?

18

Mac OS自带版本为3.81的make,但我需要一个更新的版本(>=4.0)用于某些项目。

我该如何安装较新的版本呢?最好使用brew方式安装。

这与GNU Make --output-sync doesn't work?有关,因为我想在并行构建中使用一些输出同步特性。


1
homebrew/dupes/make是你要找的配方。 - cel
1
我执行了 brew install homebrew/dupes/make,但它并没有启用新的 make。我甚至重新登录并尝试了 which -a make,但仍然只有一个结果,即 /usr/bin/make。我错过了什么吗? - sorin
请将其作为答案,以便我接受它。谢谢! - sorin
顺便提一下,我尝试了 brew install --with-default-name homebrew/dupes/make,虽然它确实安装了,但它没有安装在页面上。仍然无法找到它,但我可以确认 gmake 可用。 - sorin
这回答您的问题吗?在Mac上更新Make版本4.1 - user
1个回答

8

brew在homebrew/dupes源中提供了make。通过执行brew install homebrew/dupes/makegmake二进制文件将被放置在PATH中,以避免与macOS上默认的make版本发生冲突。

选项--with-default-names会将其安装为make,因此覆盖默认版本。

有关详细信息,请查看brew info homebrew/dupes/make

homebrew/dupes/make: stable 4.2.1 (bottled)
Utility for directing compilation
https://www.gnu.org/software/make/
/usr/local/Cellar/make/4.2.1 (12 files, 957.3K) *
  Poured from bottle on 2016-08-11 at 20:18:41
From: https://github.com/Homebrew/homebrew-dupes/blob/master/make.rb
==> Dependencies
Optional: guile ✘
==> Options
--with-default-names
        Do not prepend 'g' to the binary
--with-guile
        Build with guile support

我现在已经使用Homebrew(命令行“brew”)一年多了,我必须承认它比MacPorts(命令行“port”)或Fink要高效得多。不过,当然,我也喜欢将Linux程序移植到Darwin的所有努力。 - SteffX
抱歉,我刚意识到这里有个打字错误:应该是 --with-default-namesbrew install make --with-default-names 对我有效。对于造成的混淆,我感到非常抱歉。我已删除所有错误的评论。 - cel
如果有人想在macOS v.4.2.1上使用GNU make来运行guile,我发现即使你传递了--with-guile选项,brew包也无法安装guile。这是因为brew使用的配置脚本在硬编码软件包名称guile-2.0时,你更可能拥有guile-2.2或更高版本。因此,你必须下载tar文件https://ftpmirror.gnu.org/make/make-4.2.1.tar.bz2并自己制作,搜索并替换guile-2.0为由pkg-config --list-all报告的实际guile软件包版本。唉。 - Louis Semprini
1
我在使用Brew安装Make时遇到了以下错误。更新Homebrew... 错误:homebrew/dupes已被弃用。此存储库现在为空,因为其所有配方都已迁移。 - pyhotshot
注意:--with-default-names已从brew中删除。请参见为什么删除了--with-default-names?在Mac上更新Make版本4.1以获取替代方案。 - user

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接