Ошибка Makefile при сборке FreeBSD на OSX


Я нахожусь в коробке OSX и пытаюсь собрать исходный код ядра 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 2

1 ответ:

Во-первых, насколько мне известно, сборка FreeBSD на другой ОС не поддерживается. Однако построение ядра представляется выполнимым, поскольку существует вариант Debian с GNU userland, работающий на ядре FreeBSD. Также поддерживается кросс-билдинг FreeBSD для другой архитектуры.

Если ваша марка GNU make, это, вероятно, не сработает. FreeBSD импортирована pmake очень давно. (который в системах FreeBSD называется просто make).

Процесс сборки зависит от нескольких вещей;

  • исходное дерево находится в /usr/src (если не задана переменная make SRCDIR)
  • фактическая сборка выполняется в /usr/obj (если не задана переменная окружения MAKEOBJDIRPREFIX)
  • файлы Makefile сборки используют "includes" в /usr/src/share/mk. Поэтому вам, вероятно, следует добавить -I /usr/src/share/mk к вашему вызову make.

Вам также понадобится кросс-компилятор и другие инструменты, настроенные для создания двоичных файлов FreeBSD!

Тогда вы можете начать с make TARGET=machine xdev-build строить инструменты кросс-разработки. И тогда, вероятно, make TARGET=machine kernel-toolchain. Это создает части системы, необходимые для создания ядра.