Ошибка 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 ответ:
Во-первых, насколько мне известно, сборка FreeBSD на другой ОС не поддерживается. Однако построение ядра представляется выполнимым, поскольку существует вариант Debian с GNU userland, работающий на ядре FreeBSD. Также поддерживается кросс-билдинг FreeBSD для другой архитектуры.
Если ваша марка GNU
make
, это, вероятно, не сработает. FreeBSD импортированаpmake
очень давно. (который в системах FreeBSD называется простоmake
).Процесс сборки зависит от нескольких вещей;
- исходное дерево находится в
/usr/src
(если не задана переменная makeSRCDIR
)- фактическая сборка выполняется в
/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
. Это создает части системы, необходимые для создания ядра.