Olá pessoal. Recentemente precisei compilar o pacote do Ginga no Fedora 16 e um dos principais problemas que encontrei foi no pacote do Directfb que é instalado direto pelo yum. Por conta disso, vou adicionar neste post a compilação do Directfb na mão. E como o Directfb é uma dependência do Ginga, irei iniciar com ele. Vamos aos passos:
1. Vamos primeiro instalar as dependências do Directfb que são as fontes freetype, o x e a libXext:
$ sudo yum install freetype freetype-devel libX11-devel libXext-devel
2. A versão do Directfb que estou utilizando é a
1.2.7. Para compilar, basta extrair o arquivo, entrar no diretório e executar os seguintes comandos:
$ ./configure
$ make
$ sudo make install
Os artefatos da compilação do Directfb estarão no /usr/local/. E para continuar com os passos será necessário configurar a variável de ambiente PKG_CONFIG_PATH para pegar esses artefatos do Directfb. Segue o comando para configurar essa variável de ambiente:
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
Outro item que deve ser configurado é o arquivo de configuração do Directfb que se encontra em ~/.directfbrc. Você deve criar esse arquivo e inserir os seguintes valores nele:
system=x11
force-windowed
mode=1280x720
bg-color=b2773c
3. Depois de se preocupar com o Directfb, vamos agora para as dependências do pacote do Ginga, que são muitas. Algumas delas são informadas na configuração do
Automake e outras só aparecem na compilação. Segue o comando para instalar todas elas:
$ sudo yum install libpng-devel libtiff-devel libtiff libtiff-tools libjpeg-devel openssl-devel gpm-devel lua-devel libcurl-devel xerces-c-devel
4. E finalmente vamos para a compilação do Ginga. Dentro do diretório do Ginga, inicie o processo com o seguinte comando:
$ autoreconf -ifs
Esse comando irá configurar todo o ambiente de compilação que é baseado no
Automake.
Depois disso vamos configurar o ambiente com o seguinte comando:
$ ./configure --prefix=/usr --config-cache --disable-static --enable-graphics --with-directfb CPPFLAGS="-I$(SRC)/gingacc-cpp/gingacc-contextmanager/include -I$(SRC)/gingacc-cpp/gingacc-dataprocessing/include -I$(SRC)/gingacc-cpp/gingacc-ic/include -I$(SRC)/gingacc-cpp/gingacc-multidevice/include -I$(SRC)/gingacc-cpp/gingacc-player/include -I$(SRC)/gingacc-cpp/gingacc-system/include -I$(SRC)/gingacc-cpp/gingacc-tsparser/include -I$(SRC)/gingacc-cpp/gingacc-tuner/include -I$(SRC)/gingalssm-cpp/include -I$(SRC)/gingancl-cpp/include -I$(SRC)/ncl30-cpp/ncl30-converter/include -I$(SRC)/ncl30-cpp/ncl30/include -I$(SRC)/telemidia-links-cpp -I$(SRC)/telemidia-util-cpp/include" LDFLAGS="-L$(SRC)/ncl30-cpp/ncl30-converter/src/framework -L$(SRC)/ncl30-cpp/ncl30-converter/src/framework/ncl -L$(SRC)/ncl30-cpp/ncl30-converter/src/smil -L$(SRC)/ncl30-cpp/ncl30-converter/src/ncl -L$(SRC)/ncl30-cpp/ncl30/src -L$(SRC)/gingancl-cpp/src -L$(SRC)/gingancl-cpp/src/adaptation -L$(SRC)/gingancl-cpp/src/focus -L$(SRC)/gingancl-cpp/src/emconverter -L$(SRC)/gingancl-cpp/src/adapters -L$(SRC)/gingancl-cpp/src/adapters/text -L$(SRC)/gingancl-cpp/src/adapters/image -L$(SRC)/gingancl-cpp/src/adapters/application -L$(SRC)/gingancl-cpp/src/adapters/application/imperative/lua -L$(SRC)/gingancl-cpp/src/adapters/application/declarative/xhtml -L$(SRC)/gingancl-cpp/src/adapters/application/declarative/ncl -L$(SRC)/gingancl-cpp/src/prefetch -L$(SRC)/gingancl-cpp/src/multidevice -L$(SRC)/gingancl-cpp/src/model -L$(SRC)/telemidia-util-cpp/src -L$(SRC)/telemidia-links-cpp -L$(SRC)/gingacc-cpp/gingacc-system/src/io -L$(SRC)/gingacc-cpp/gingacc-system/src/io/interface/content/text -L$(SRC)/gingacc-cpp/gingacc-system/src/io/interface/content/image -L$(SRC)/gingacc-cpp/gingacc-system/src/io/interface/content/video -L$(SRC)/gingacc-cpp/gingacc-system/src/thread -L$(SRC)/gingacc-cpp/gingacc-player/src -L$(SRC)/gingacc-cpp/gingacc-player/src/text/plain -L$(SRC)/gingacc-cpp/gingacc-player/src/text -L$(SRC)/gingacc-cpp/gingacc-player/src/text/srt -L$(SRC)/gingacc-cpp/gingacc-player/src/image -L$(SRC)/gingacc-cpp/gingacc-player/src/application/imperative/lua -L$(SRC)/gingacc-cpp/gingacc-player/src/application/declarative/xhtml -L$(SRC)/gingacc-cpp/gingacc-tuner/src -L$(SRC)/gingacc-cpp/gingacc-contextmanager/src -L$(SRC)/gingacc-cpp/gingacc-tsparser/src -L$(SRC)/gingacc-cpp/gingacc-ic/src -L$(SRC)/gingacc-cpp/gingacc-ic/src/curlic -L$(SRC)/gingacc-cpp/gingacc-multidevice/src -L$(SRC)/gingacc-cpp/gingacc-dataprocessing/src -L$(SRC)/gingacc-cpp/gingacc-dataprocessing/src/ncl -L$(SRC)/gingacc-cpp/gingacc-dataprocessing/src/ncl/edit -L$(SRC)/gingalssm-cpp/src"
Onde $(SRC) deve ser substituído pelo caminho absoluto de onde está localizado o Ginga. Feito isso, agora é só compilar e instalar o Ginga na máquina com os comandos:
$ make
$ sudo make install
E pronto, temos agora o binário do Ginga para testes em sua máquina.