在 OSX 上构建 FreeBSD 时出现 Makefile 错误

Makefile error when building FreeBSD on OSX

我在 OSX Box 上,我正在尝试构建 FreeBSD 内核源代码。我已经通过 运行ning

下载了
sudo svn co https://svn0.us-east.FreeBSD.org/base/stable/10

然后为了测试我 运行

make buildkernel

但是我总是得到错误:

Makefile:136: *** missing separator.  Stop.

我试过使用 bsdmake 但我得到:

Unknown modifier 't'

我是跳过了一步还是遗漏了什么?

首先,据我所知,不支持在另一个 OS 上构建 FreeBSD。然而,构建 内核 似乎是可行的,因为在 FreeBSD 内核上有一个带有 GNU 用户区 运行 的 Debian 变体。并且还支持为另一种架构交叉构建 FreeBSD。

如果您的 make 是 GNU make,那可能行不通。 FreeBSD 很久以前就导入了 pmake。 (在 FreeBSD 系统上称为 make)。

构建过程取决于几件事;

  • 源码树在/usr/src(除非你设置make变量SRCDIR
  • 实际构建在/usr/obj中完成(除非你设置环境变量MAKEOBJDIRPREFIX
  • 构建 Makefile 使用 /usr/src/share/mk 中的 "includes"。因此,您可能应该将 -I /usr/src/share/mk 添加到您的 make 调用中。

您还需要一个交叉编译器和其他配置为生成 FreeBSD 二进制文件的工具!

那么您可以从 make TARGET=machine xdev-build 开始构建交叉开发工具。然后可能 make TARGET=machine kernel-toolchain。这将构建生成内核所需的系统部分。