Ошибка 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. Это создает части системы, необходимые для создания ядра.