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

问题描述 投票:0回答:2

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

我是否跳过了某个步骤或遗漏了什么?

macos makefile cross-compiling freebsd
2个回答
4
投票

首先,据我所知,不支持在其他操作系统上构建 FreeBSD。然而,构建 kernel 似乎是可行的,因为有一个 Debian 变体,其 GNU 用户区运行在 FreeBSD 内核上。并且还支持跨构建 FreeBSD 到另一个架构。

如果您的版本是 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
。这构建了生成内核所需的系统部分。


0
投票

截至 2023 年,支持在 macOS 和 Linux 上构建 FreeBSD。确切的过程记录在 FreeBSD 手册中。

© www.soinside.com 2019 - 2024. All rights reserved.