MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Instalar pré-requisitos Requisitos_para_Mac_OS_X.
 
Instale o binutils, para objdump na build de debug.
brew install binutils
Crie uma imagem de disco com arquivo de sistema HFS+ com log e build usando os seguintes comandos.
hdiutil create -volname 'firefoxos' -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/firefoxos.sparseimage
open ~/firefoxos.sparseimage
cd /Volumes/firefoxos/

Clone o repositório B2G

O primeiro passo, antes de iniciar a sua primeira compilação, é clonar o repositório B2G. Não vai buscar tudo! Em vez disso, ele vai buscar o sistema compilação B2G e utilitários de configuração. A maioria do código B2G real está no principal repositório Mercurial da Mozilla.

Para clonar o repositório, use o git:

git clone git://github.com/mozilla-b2g/B2G.git

Após a clonagem (que só deve levar um minuto com uma conexão rápida), cd para o diretório B2G:

cd B2G

Configurando o B2G para o flame

Quando você tiver obtido o core da build de sistema B2G, você precisa configurar o dispositivo que você planeja instála-lo. Para ver a lista de dispositivos suportados, você pode usar o utilitário config.sh — rode o seguinte comando de dentro do diretório B2g:

./config.sh flame
Importante: ~15Gb de download do código fonte - precisa de boa conexão de internet.

Configurando a compilação do B2G para um dispositivo móvel

Neste ponto, conecte o seu dispositivo se ele já não estiver conectado; será necessário passar pelo processo de configuração para acessá-lo.

adb devices -l
>List of devices attached 
>f04840ed device

O dispositivo deve estar disponível e conectado:

mkdir backup-flame
cd backup-flame
adb pull /system system
adb pull /data data

Soluções de problema na compilação no OSX

Testado no OSX 10.9.4 Maverick.

Não existe mkfs.vfat

Precisa instalar a versão portada do dosfstools para trabalhar com a imagem dosfstools-osx.

brew create https://github.com/sv99/dosfstools-osx.git

Edite o Dosfstools formula

require "formula"

class Dosfstools < Formula
  homepage "https://github.com/sv99/dosfstools-osx"
  url "https://github.com/sv99/dosfstools-osx.git"
  sha1 ""

  def install
    system "make", "install"   
  end

end

e instale-o

brew install dosfstools

Bugs 1039223 and 1027682 workaround in .userconfig

Bug 1039223 - Build for flame fails complaining of missing dt.img
Bug 1027682 - [Flame][Build] Failed to build on Mac OS X 10.9, elf.h file not found
 
# .userconfig for flame build 14.08.2014
# osx repo change
# Bug 1039223 - Build for flame fails complaining of missing dt.img
# https://bugzilla.mozilla.org/show_bug.cgi?id=1039223
pushd device/qcom/common/dtbtool
patch -N << EOF
--- a/dtbtool/dtbtool.c
+++ b/dtbtool/dtbtool.c
@@ -616,7 +616,7 @@ int main(int argc, char **argv)
        extract "qcom,msm-id" parameter
      */
     while ((dp = readdir(dir)) != NULL) {
-        if ((dp->d_type == DT_REG)) {
+        if ((dp->d_type == DT_REG||dp->d_type == DT_UNKNOWN)) {
             flen = strlen(dp->d_name);
             if ((flen > 4) &&
                 (strncmp(&dp->d_name[flen-4], ".dtb", 4) == 0)) {
EOF

popd

# Bug 1027682 - [Flame][Build] Failed to build on Mac OS X 10.9, elf.h file not found
# https://bugzilla.mozilla.org/show_bug.cgi?id=1027682
if [[ ! -e /usr/local/include/elf.h ]]; then
  cp "${B2G_DIR}/external/elfutils/libelf/elf.h" /usr/local/include
  echo "Bug 1027682: elf.h copied into /usr/local/include"
fi

# Disable First Time User experience
export NOFTU=1
echo "NOFTU = ${NOFTU}"

# Enable gaia developer mode
export DEVICE_DEBUG=1
echo "DEVICE_DEBUG = ${DEVICE_DEBUG}"

# Keeping both debug and non-debug objects
#export GECKO_PATH=${B2G_DIR}/mozilla-inbound
echo "GECKO_PATH = ${GECKO_PATH}"

export B2G_DEBUG=1
echo "B2G_DEBUG = ${B2G_DEBUG}"

#export GECKO_OBJDIR=${GECKO_PATH}/objdir-gonk
if [[ "${B2G_DEBUG}" != "0" ]]; then
  export GECKO_OBJDIR=${GECKO_OBJDIR}-debug
fi
echo "GECKO_OBJDIR = ${GECKO_OBJDIR}"

Primeira Compilação

./build.sh
 

 

Etiquetas do documento e colaboradores

 Colaboradores desta página: chrisdavidmills, jwhitlock, ilapa, -
 Última atualização por: chrisdavidmills,