Простой метод сборки Firefox

Эта статья нуждается в редакционном обзоре. Как вы можете помочь.

В этой статье поэтапно описано как собрать Firefox из самых последних исходников в репозитории. Для дополнительной информации, перейдите на build documentation.

Необходимые требования для сборки

Требования к аппаратуре:

  • Вы можете собрать Firefox на старом оборудовании, но компиляция займет достаточно много времени, поэтому рекомендуется иметь хотя бы 8Гб оперативной памяти.
  • Высокоскоростной интернет тоже рекомендован. Окружение разработчика и репозиторий с исходным кодом большие.
  • У вас должна быть 64 битная операционная система. С начала 2015 года больше не возможно собрать Firefox на большинстве 32 битных машинах.

Установка:

В зависимости от вашей операционной системы, вам может потребоваться выполнение различных инструкций для подготовки машины. Так что сначала выполните следующие инструкции для вашей операционной системы, а потом возвращайтесь к инструкциям по сборке.

Подказка: После завершения установки для своей операционной системы и до того, как вы загрузите исходный код, вы можете добавить progressExtension в ваш mercurial.ini (для Windows) или .hgrc (для *Nix / Mac) файлы. После этого вы можете наблюдать за прогрессом загрузки кода. См. больше: Configure Mercurial .hgrc file for Progress Extension [en-US].

Загрузка исходников

Загрузите самые свежие исходники из Mercurial репозитория сообщества Mozilla. Это может занять некоторое время, там очень много кода!

hg clone https://hg.mozilla.org/mozilla-central
Если у Вас медленное соединение с интернетом, то "hg clone" может аварийно завершитcя. В таком случае мы всячески рекомендуем Вам скачать Mercurial bundle и не ждать "hg clone".

Конфигурирование сборки (по желанию)

По-умолчанию, система сборки создает оптимизированную версию Firefox, эквивалентную официальному релизу. Если это не то, что вы хотите, то есть множество конфигурационных опций, с помощью которых можно изменять конфигурацию билда, но мы крайне рекомендуем использовать их только в том случае, если вы полностью понимаете чего хотите добиться.

Стандартный способ настроить сборку - это переопределить опции в файле  mozconfig, расположенного в корне исходников mozilla, т.е. в каталоге  mozilla-central, созданном командой "hg clone". Под Windows файл можно создать командой в командной строке MozillaBuild:

cd /path/to/mozilla-central
touch .mozconfig

Например, если вы планируете заняться C/C++ кодом, вы возможно хотите собрать debug вместо release, путем добавление следующих строк в mozconfig:

ac_add_options --enable-debug
ac_add_options --disable-optimize

Более подробно опции конфигурирования описаны в configuring build options.

Cборка

Для того, чтобы сконфигурировать mercurial для mach, запустите:

./mach mercurial-setup

Если у вас установлен антивирус, вам возможно придется добавить объектную директорию (по умолчанию, mozilla-central/ с префиксом obj-, например, obj-i686-pc-mingw32) в список исключений. Программы вроде Norton Security Suite (на Windows) иногда идентифицируют исполняемые файлы или файлы, сгенерированные в процессе сборки, как угрозу безопасности и в результате удаляют их или останавливают их выполнение. Обычно, это приводит к ошибке сборки. Даже если сборка не прекратится, ее время увеличится.

Для того, чтобы запустить процесс сборки, перейдите в подкаталог  mozilla-central (автоматически созданный командой "hg clone") и запустите:

./mach build

mach является нашим собственным инструментом, упрощающим общие задачи. Более подробно про mach читайте в статье mach .

При первом запуске "./mach build", mach спросит вас, хотите ли вы создать директорию ".mozbuild" в вашем домашнем каталоге и будет ждать 20 секунд вашего ответа. Это хорошая настройка по умолчанию, так что вы должны позволить mach закончить.

Сборка может занять много времени, которое зависит от мощности вашей машины, операционной системы, и выбранных опций сборки. Сборка под Linux на мощных машинах может пройти быстрее 15 минут, но, например, на слабой Windows машине  может занять несколько часов. Смотрите рекомендации как ускорить сборку здесь: tips for making builds faster.

Запуск

В объектном каталоге вы можете увидеть множество временных файлов, библиотек, и сам исполнимый файл Firefox. Этот подкаталог будет находиться внутри mozilla-central и именоваться с префиксом obj-. Конкретное имя будет зависеть от вашей системы и ОС. Например, под Mac ыы можете найти объектный каталог именованный obj-x86_64-apple-darwin10.7.3/.

Для запуска только что собранного экземпляра Firefox используйте следующую команду mach

./mach run

Исполняемый файл Firefox и все зависимые библиотеки расположены в каталоге dist/bin внутри объектного каталога. В частности, в зависимости от ОС, Firefox будет расположен в

  • Windows: obj-.../dist/bin/firefox.exe
  • Linux: obj-.../dist/bin/firefox
  • OS X: obj-.../dist/Nightly.app/Contents/MacOS/firefox

Повторная сборка

Если вы внесли изменения в код, то пересобрать проект можно командой

./mach build

Эта команда будет пересобирать только измененные файлы. Также возможно использовать команду

./mach build path/to/dir

для сборки только части дерева исходников. Тем не менее, будьте осторожны, данный подход может привести к некорректным результатам, т.о. его использование не рекомендуется.

Как обновить исходники

Для того, чтобы получить последние изменения и обновить код рабочего каталога mozilla-central запустите команду:

hg pull -u

и запустите ./mach build. Т.к. скорость внесения изменений в Firefox очень большая, то повторная сборка может занять много времени.

Метки документа и участники

 Внесли вклад в эту страницу: slaykovsky, Lebedev_Ivan, uleming, tsafin
 Обновлялась последний раз: slaykovsky,