我在 OSX Box 上,正在尝试构建 FreeBSD 内核源代码。我已经通过运行下载了它
sudo svn co https://svn0.us-east.FreeBSD.org/base/stable/10
然后为了测试它我运行
make buildkernel
但是我总是收到错误:
Makefile:136: *** missing separator. Stop.
我尝试过使用 bsdmake 但我得到:
Unknown modifier 't'
我是否跳过了某个步骤或遗漏了什么?
首先,据我所知,不支持在其他操作系统上构建 FreeBSD。然而,构建 kernel 似乎是可行的,因为有一个 Debian 变体,其 GNU 用户区运行在 FreeBSD 内核上。并且还支持跨构建 FreeBSD 到另一个架构。
如果您的版本是 GNU
make
,那可能行不通。 FreeBSD 很久以前就导入了 pmake
。 (在 FreeBSD 系统上称为 make
)。
构建过程取决于几个因素;
/usr/src
(除非您设置 make 变量SRCDIR
)/usr/obj
中完成的(除非你设置了环境变量 MAKEOBJDIRPREFIX
)/usr/src/share/mk
中的“包含”。因此,您可能应该将 -I /usr/src/share/mk
添加到您的 make 调用中。您还需要配置交叉编译器和其他工具来生成 FreeBSD 二进制文件!
然后您可以从
make TARGET=machine xdev-build
开始构建交叉开发工具。然后可能是make TARGET=machine kernel-toolchain
。这构建了生成内核所需的系统部分。
截至 2023 年,支持在 macOS 和 Linux 上构建 FreeBSD。确切的过程记录在 FreeBSD 手册中。