Интернет, компьютеры, софт и прочий Hi-Tech | ||
Избранные докиМетки (все метки)hi tech, internet, it, интернет, информационные технологии, ит, по, программное обеспечение, сайт, софт
Подписаться через RSS2Email.ru
Дополнительнооптимизация, сайт, мониторы, движок, Битрикс, хостинг, сайты, мобильные, электроника, видеокарта |
Кросс-компиляция Mozilla
Общую информацию о кросс-компиляции вы можете найти в главе Инструменты кросс-компиляции документа Система конфигурирования и сборки GNU. Если ваша задача состоит в том, чтобы скомпилировать 32-битный Firefox на 64-битной ОС Linux, вам нет необходимости делать полную кросс-компиляцию... Читайте эту упрощённую инструкцию. Настройка среды кросс-компиляционной сборкиЭтот параграф не является руководством типа «окончательно-во-всех-подробностях» о создании окружения для кросс-компиляции. WFM; YMMV. (Если вы хотите спросить «Где я могу получить...?» или «Почему не работает 'X'?», то это не для вас.) Во всех примерах этой статьи используются следующие обозначения: 1. Вы должны добавить Кросс-компиляция binutilsСкачайте binutils и примените к ней binutils-cross-libpath.patch, который облегчает установку готовых библиотек. Запустите configure с помощью следующей команды:
env CROSS_LIB_PATH="${xprefix}/${xtarget_arch}/lib:${xprefix}/${xtarget_arch}/usr/lib" ./configure --prefix=${xprefix} --target=${xtarget_arch}
Соберите и инсталлируйте пакеты в системе. Инсталляция целевых системных заголовочных файлов и библиотекGCC и binutils будут искать системные заголовочные файлы и библиотеки по
адресу Замечание: Если ваша целевая система использует glibc, вы
должны специально позаботиться об изменении локальной копии файла
Если вы уже имеете rpm-ы для целевой системы и rpm инсталлированы в сборочной
системе, то вы можете использовать
сокращённый скрипт, который будет инсталлировать rpm-ы в
Кроме того, если вы используете Debian или Ubuntu, то можете использовать
команды Кросс-компиляция gccСкачайте gcc и запустите configure следующей командой:
./configure --prefix=${xprefix} --with-gnu-ld --with-gnu-as --target=${xtarget_arch} --disable-nls --enable-languages=c++,objc
Соберите и инсталлируйте пакет в системе. ПроверкаК этому моменту ваша среда кросс-компиляции должна быть полностью готова. Теперь проверим, как она работает. Возьмём Hello World и проделаем работу для этого простого приложения, основанного на X11. Для сборки большинства пакетов должно быть достаточно команды
Для остальных вам может понадобиться явно указать установки для сборочных инструментов:
env AR=${xtarget_arch}-ar CC=${xtarget_arch}-gcc CXX=${xtarget_arch}-g++ LD=${xtarget_arch}-ld AS=${xtarget_arch}-as ./configure --prefix=${xprefix} --target=${xtarget_arch}
Кросс-компиляция glib, libIDL и gtk+Этот шаг необходим только если вы не инсталлировали предварительно собранные версии этих пакетов. Используйте описанные выше шаги для их сборки и инсталляции. Кросс-компиляция ящерицыСчитая, что вы должным образом, как это описано выше, настроили среду кросс-компиляционной сборки, можно довольно просто кросс-скомпилировать Mozilla даже несмотря на то, что NSS не настроен для кросс-компиляции должным образом (баг 104541) Главное, что нужно помнить, это то что если для configure указывается
Вы должны ввести следующие аргументы среды окружения для configure: CROSS_COMPILE=1 HOST_LIBIDL_CONFIG='libIDL-config-2 --prefix=/path/to/build/system' HOST_LIBIDL_CFLAGS='-I/path/to/build/system/include/libIDL-2.0 -I/path/to/build/system/include/glib-2.0 -I/path/to/build/system/include' HOST_LIBIDL_LIBS='-L/path/to/build/system/lib -lIDL-2 -lglib-2.0' LIBIDL_CONFIG='libIDL-config-2 --prefix=/path/to/target/system' export PKG_CONFIG_PATH=/path/to/target/system/lib/pkgconfig и следующие аргументы командной строки для configure: --target=${xtarget_arch}
Приведем пример файла mozconfig, используемого для кросс-компиляции под целевую систему mipsEEel-linux: # sh # Скрипт конфигурации сборки # Инструкции по сборке смотрите здесь: # https://developer.mozilla.org/en/Linux_Build_Prerequisites. # CROSS_COMPILE=1 HOST_LIBIDL_CONFIG='/usr/bin/libIDL-config-2 --prefix=/usr' HOST_LIBIDL_CFLAGS='-I/usr/include/libIDL-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include' HOST_LIBIDL_LIBS='-L/usr/lib -lIDL-2 -lglib-2.0' LIBIDL_CONFIG='/usr/bin/libIDL-config-2 --prefix=/usr/mipsEEel-linux' export PKG_CONFIG_PATH=/usr/mipsEEel-linux/lib/pkgconfig # Не используйте pkg-config для главного libIDL ac_add_options --without-libIDL ac_add_options --prefix=/usr/mipsEEel-linux ac_add_options --target=mipsEEel-linux # Опции для 'configure' (те же, что и опции командной строки). # Всё перечисленное здесь можно вручную править в файле конфигурации. ac_add_options --enable-application=browser ac_add_options --enable-mathml ac_add_options --enable-extensions #ac_add_options --enable-crypto ac_add_options --enable-logrefcnt ac_add_options --without-system-nspr ac_add_options --without-system-zlib ac_add_options --without-system-jpeg ac_add_options --without-system-png Автор: Chris Seawood, 22.06.2002. Предыдущие публикации: Последнее редактирование: 2011-12-15 16:19:52 Метки материала: компиляция, mozilla, кросс-компиляция, компиляция mozilla, веб-браузер, приложение прикладная программа, application, бесплатные программы, бесплатное по, приложение, firefox, браузер, разработка по, мозила, browser, интернет-браузер, xulrunner, спо, soft Оставьте, пожалуйста, свой комментарий к публикации |
|
© 2007-2012, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.