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

时间:2015-09-07 18:07:40

标签: macos makefile cross-compiling freebsd

我在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'

我是跳过了一步还是错过了什么?

1 个答案:

答案 0 :(得分:4)

首先,据我所知,不支持在另一个操作系统上构建FreeBSD。但是,构建内核似乎是可行的,因为有一个Debian变种,在FreeBSD内核上运行GNU用户空间。还支持为另一个架构交叉构建FreeBSD。

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

构建过程取决于几个方面;

  • 源树位于/usr/src(除非您设置了make变量SRCDIR
  • 实际构建在/usr/obj完成(除非您设置环境变量MAKEOBJDIRPREFIX
  • 构建Makefile使用/usr/src/share/mk中的“包含”。因此,您应该将-I /usr/src/share/mk添加到make调用中。

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

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