在 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
。这将构建生成内核所需的系统部分。
我在 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
。这将构建生成内核所需的系统部分。