Compilando o código

Version 4 (Álan Livio, 25/03/2010 11:25) → Version 5/63 (Vítor Baptista, 30/03/2010 18:02)

h1. Instalando o middleware para usuários

Este tutorial foi feito tomando como base o "Ubuntu 9.10":http://www.ubuntu.com de 32 bits. Caso tenha dúvidas ou queira compartilhar o sucesso instalando em outras distribuições, entre em contato pela nossa lista de e-mails.

h2. Instalando as dependências

A maioria delas estão disponíveis nos repositórios do Ubuntu. Para instalá-las, faça:
<pre>
$ sudo aptitude install subversion git-core build-essential libdirectfb-1.2-0 libdirectfb-dev libssl-dev libcppunit-dev autoconf libtool libxine-dev libxine1 libxine1-ffmpeg
</pre>

h3. DirectFB-Examples

O DirectFB-Examples disponível no repositório não está compilada com tudo que precisamos. Então precisamos compilá-lo manualmente:
<pre>
$ wget http://www.directfb.org/downloads/Extras/DirectFB-extra-1.2.0-rc1.tar.gz
$ tar -xvvzf DirectFB-extra-1.2.0-rc1.tar.gz
$ cd DirectFB-extra-1.2.0-rc1
$ ./configure --prefix=/usr (No final ele deve mostrar que o video provider do Xine está ativo)
$ make
$ sudo make install
</pre>

h3. jlibcpp

<pre>
$ svn co https://jlibcpp.svn.sourceforge.net/svnroot/jlibcpp jlibcpp
$ cd jlibcpp
// Comente as linhas 97, 119, 121 e 123 de jgui/joffscreenimage.cpp, que usam uma versão mais nova da directfb que a disponível.
$ make
$ sudo make install
</pre>

h3. Flexcm

<pre>
$ svn co https://flexcm.svn.sourceforge.net/svnroot/flexcm flexcm
$ cd flexcm/flexcmee/flexcmee
$ sudo ./make.sh
</pre>

h3. Sun J2SE SDK 1.4.2

Baixe em http://java.sun.com/javase/downloads/jdk/142/ e descompacte-o em /opt. Atualmente, a versão é 1.4.2_19, então o diretório ficaria _/opt/j2sdk1.4.2_19_. Anote-o pois precisaremos indicá-lo daqui a pouco para o middleware.

h3. Configurando o DirectFB para o X11

Recomendamos utilizar o FrameBuffer em cima do X11. Assim fica mais fácil de debuggar o middleware e/ou as aplicações. Para isto, crie o arquivo ~/.directfbrc contendo:
<pre>
system=x11
mode=960x540
</pre>

O campo _system_ indica que a saída gráfica do DirectFB será em uma janela do X11. Caso queira trabalhar direto no FrameBuffer, modifique para _system=fbdev_. Já o campo mode, no X11, define o tamanho da janela criada. Utilize o comando _dfbdump_ para verificar se as configurações contidas no arquivo directfbrc foram definidas corretamente pela DirectFB.

Outros parâmetros podem ser especificados e estão disponíveis na documentação do DirectFB.

h3. Arquitetura do middleware

Este projeto contém os cabeçalhos que todos os componentes da GingaCDN deve seguir.
<pre>
$ git clone git://dev.openginga.org/architecture.git (Ou use o mirror em git://gitorious.org/openginga/architecture.git)
$ cd architecture
$ git checkout stable
$ autoreconf
$ ./configure
$ sudo make install
</pre>

h2. Compilando o middleware

Para baixar a versão _stable_ do código, faça:
<pre>
$ git clone git://dev.openginga.org/middleware/openginga.git (Ou use o mirror em git://gitorious.org/openginga/openginga.git)
$ cd openginga
$ git checkout stable
$ git submodule init
$ git submodule update
</pre>

Caso a versão do J2SDK que você baixou seja diferente de 1.4.2_19, precisamos modificar o arquivo env.sh (source:env.sh) que está na pasta raiz do openginga. Procure pela parte que diz:
<pre>
export JAVA_HOME=/opt/j2sdk1.4.2_19
</pre>

O modifique este caminho para o do J2SDK que você baixou nos passos anteriores. Por exemplo, se a versão que você tem for a 1.4.2_20, modifique-o para:
<pre>
export JAVA_HOME=/opt/j2sdk1.4.2_20
</pre>

Aṕos isso, estando no diretório do openginga, digite:
<pre>
$ source env.sh
$ make
</pre>

Depois de algum tempo, ele deve mostrar uma mensagem de sucesso. Para testar, execute-o fazendo:
<pre>
$ cd openginga/gingacc
$ ./start.sh
</pre>
Lembrando que, sempre que você for executar o openginga, você já deve ter executado *source env.sh* ao menos uma vez no mesmo terminal.