TUTORIAL: Como compilar el XBMC.

Este tutorial está dirigido a aquellos que quieran modificar o reformar los fuentes del XBMC. También para aquellos que no puedan esperar a que alguien compile la ultima versión del XBMC o simplemente no la encuentre.

Advertir que tanto las librerías y fuentes del MS Xbox SDK, como los ficheros ejecutables resultantes de la compilación con estas librerias y fuentes son ilegales ya que solo están autorizados a usarlas los desarrolladores autorizados por MS. Así que ojito con su distribución.

Necesitaremos los siguientes programas:
- Visual Studio .NET 7.1 (2003), consta de 7 CD’s.
- MS Xbox SDK 5778 o superior.
- XBEPatch.
- Un cliente de CVS como WinCVS.
- WinRAR v3.30.
- Mini DirectX 9 SDK.

* Instalamos solamente Visual C++ del paquete Visual Studio .NET 2003, únicamente necesitaremos los CD’s 1, 2 y Prerrequisitos.
* Instalamos completamente el paquete MS Xbox SDK 5778 o superior.
* Creamos una carpeta llamada XBMC. Ej.(C:\XBMC).
* Instalamos WinCVS y configuramos el módulo “Checkout” -> “General” con los siguientes parámetros:
Authentication: pserver
Path: /cvsroot/xbmc
Host Address: cvs.sourceforge.net
Username: anonymous
CVSROOT: anonymous@cvs.sourceforge.net:/cvsroot/xbmc

En “Checkout Settings”:
Module name and path on the server: XBMC
Local folder to checkout to: C:\XBMC\

Aceptamos y comenzará a bajarse los fuentes de CVS. (unos 136 MB.).
Esto solo lo hace la primera vez, en sucesivas ocasiones solo se bajará las actualizaciones o variaciones en los fuentes. Una vez terminado el proceso cerraremos el WinCVS.

* Lo primero que haremos será compilar una utilidad llamada XBMCTex.exe que sirve para compactar las texturas de los skin. Para ello necesitaremos las librerías del Mini DirectX 9 SDK, descomprimimos el fichero dxsdk9.zip, las carpetas Include y Lib las metemos en una carpeta que llamaremos DX90SDK y lo ponemos en C:\XBMC\. Nos vamos a la carpeta C:\XBMC\XBMC\tools\XBMCTex y editamos el fichero stdafx.h, donde pone:
// Thses must be the DX SDK (8.1+) versions, not the XDK versions
#include "/DX90SDK/Include/D3D8.h"
#include "/DX90SDK/Include/D3DX8.h"
ponemos:
// Thses must be the DX SDK (8.1+) versions, not the XDK versions
#include " C:\XBMC\DX90SDK\Include\D3D8.h"
#include " C:\XBMC\DX90SDK\Include\D3DX8.h"

* Una vez editado damos doble clip en el fichero XBMCTex.sln, esto lanzará el Visual Studio .NET 2003 con el proyecto XBMCTex. Compilamos el proyecto en “Generar” -> “Generar solución”. Una vez terminada la compilación podemos cerrar el Visual Studio .NET 2003 y tendremos un fichero llamado XBMCTex.exe en C:\XBMC\XBMC\tools\XBMCTex\. Este fichero lo pondremos en una carpeta llamada XBMCTex en C:\XBMC\.

* Ahora crearemos un fichero de comandos, (sólo para XP), que automatizará todo el proceso y al que llamaremos Compilar.bat con las siguientes líneas:
@ECHO OFF
CLS
TITLE Fichero de comandos para la preparacion del proyecto XBMC
ECHO Preparando la compilacion...

:: Donde está localizado este fichero ::
SET HOME=C:\XBMC

:: Un directorio que contiene cualquier skin añadido (puede estar vacio) ::
SET SKINS=%HOME%\Skins

:: Un directorio que contiene cualquier codec añadido (puede estar vacio) ::
SET CODECS=%HOME%\Codecs

:: Un directorio que contiene cualquier anexo añadido (puede estar vacio) ::
SET ANEX=%HOME%\Anexos

:: Ruta a la línea de comandos del WinCvs, bajado de http://www.wincvs.org/ ::
SET CVS=C:\Archivos de programa\GNU\WinCvs 1.3\CVSNT\cvs.exe

:: Ruta a Visual Studio .NET 7.1 2003 (con el MS Xbox SDK 5778 o superior instalado) ::
SET NET=C:\Archivos de programa\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.exe
:: Opciones de la compilación ::
SET OPTS=%HOME%\XBMC\xbmc.sln

:: Ruta a la línea de comandos del rar.exe incluida en WinRAR v3.30, bajado de http://www.rarlab.com/download.htm ::
SET RAR=C:\Archivos de programa\WinRAR\rar.exe
:: Opciones de compresión ::
SET COMPRESSOPS=a -ep1 -r -m5
:: Opciones de descompresión ::
SET EXTRACTOPS=x -r -o-

:: Ruta del XBMCTex.exe, se obtiene compilando XBMC\tools\XBMCTex\XBMCTex.sln. Se necesitan ::
:: las librerias del Mini DirectX 9 SDK, bajado de http://idam.ladei.com.ar/descargas.php ::
SET TEX=C:\XBMC\XBMCTex\XBMCTex.exe

:: Ruta del XBEPatch, bajado de http://www.xbox-scene.com/tools/tools.php?page=xbexbx ::
SET XBE=C:\XBMC\Xbepatch\xbepatch.exe

:: Coge la fecha del ordenador::
SET DD=%date:~0,2%
SET MM=%date:~3,2%
SET YYYY=%date:~6,4%

CD /D "%HOME%"
IF NOT EXIST exclude.txt ECHO CVS>exclude.txt
ECHO Recuperando fuentes desde CVS...
"%CVS%" -z3 -d :pserver:anonymous:@cvs.sourceforge.net:/cvsroot/xbmc checkout XBMC
ECHO Limpiando solucion...
"%NET%" "%OPTS%" /clean release
DEL "%HOME%\XBMC\Release\xbmc.map"
ECHO Compilando solucion...
"%NET%" "%OPTS%" /build release
IF NOT EXIST "%HOME%\xbmc-%YYYY%-%MM%-%DD%" GOTO S1
ECHO Borrando el directorio xbmc-%YYYY%-%MM%-%DD%...
RMDIR "%HOME%\xbmc-%YYYY%-%MM%-%DD%" /S /Q
:S1
IF NOT EXIST "%HOME%\xbmc-%YYYY%-%MM%-%DD%.rar" GOTO S2
ECHO Borrando el fichero xbmc-%YYYY%-%MM%-%DD%.rar...
DEL "%HOME%\xbmc-%YYYY%-%MM%-%DD%.rar" /S /Q
:S2
ECHO Parcheando el XBE...
"%XBE%" "%HOME%\XBMC\Release\default.xbe"
ECHO Creando el directorio Temporal...
MD "%HOME%\Temporal"
ECHO Copiando ficheros...
COPY "%HOME%\XBMC\Release\default.xbe" "%HOME%\Temporal"
COPY "%HOME%\XBMC\*.xml" "%HOME%\Temporal"
COPY "%HOME%\XBMC\bugs.txt" "%HOME%\Temporal"
XCOPY "%HOME%\XBMC\mplayer" "%HOME%\Temporal\mplayer" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\skin\MediaCenter\fonts" "%HOME%\Temporal\skin\MediaCenter\fonts" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\skin\MediaCenter\*.xml" "%HOME%\Temporal\skin\MediaCenter" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\skin\MediaCenter\media\pal" "%HOME%\Temporal\skin\MediaCenter\media\pal" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\scripts\*.py" "%HOME%\Temporal\scripts" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\credits" "%HOME%\Temporal\credits" /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\language" "%HOME%\Temporal\language" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\xbmc\keyboard\media" "%HOME%\Temporal\media" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\visualisations" "%HOME%\Temporal\visualisations" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\weather" "%HOME%\Temporal\weather" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%CODECS%" "%HOME%\Temporal\mplayer\codecs" /E /Q /I /Y
XCOPY "%SKINS%" "%HOME%\Temporal\skin" /E /Q /I /Y
XCOPY "%ANEX%" "%HOME%\Temporal" /E /Q /I /Y
ECHO Comprimiendo texturas...
"%TEX%" -input "%HOME%\XBMC\skin\MediaCenter\media" -output "%HOME%\Temporal\skin\MediaCenter\media"
ECHO Extrayendo ficheros...
"%RAR%" %EXTRACTOPS% "%HOME%\XBMC\web\web.rar" "%HOME%\Temporal\web"
"%RAR%" %EXTRACTOPS% "%HOME%\XBMC\web\xbmc.rar" "%HOME%\Temporal\web"
"%RAR%" %EXTRACTOPS% "%HOME%\XBMC\python\python.rar" "%HOME%\Temporal\python"
"%RAR%" %EXTRACTOPS% "%HOME%\XBMC\scripts\scripts.rar" "%HOME%\Temporal\scripts"
ECHO Renombrando el directorio Temporal a xbmc-(fecha actual)...
REN "Temporal" "xbmc-%YYYY%-%MM%-%DD%"
ECHO Comprimiendo...
"%RAR%" %COMPRESSOPS% "%HOME%\xbmc-%YYYY%-%MM%-%DD%.rar" "%HOME%\xbmc-%YYYY%-%MM%-%DD%"
ECHO Finalizado!
ECHO Pulse una tecla para cerrar la ventana.
PAUSE> NUL

Para que este fichero de comandos funcione correctamente deberemos tener la siguiente estructura.

C:\Archivos de programa\Microsoft Visual Studio .NET 2003 = En esta carpeta debe estar el Visual Studio .NET 2003.

C:\Archivos de programa\GNU\WinCvs 1.3 = En esta carpeta debe estar el WinCvs.

C:\Archivos de programa\WinRAR = En esta carpeta debe estar el Winrar.

C:\XBMC\XBMC = En esta carpeta están todas las librerías y fuentes bajados de CVS.

C:\XBMC\Codecs = En esta carpeta pondremos los codecs que queremos añadir.

C:\XBMC\DX90SDK = En esta carpeta estarán las librerías y los fuentes del Mini DirectX 9 SDK. En principio solo los necesitamos para compilar el XBMCTex.exe pero nunca se sabe cuando los necesitaremos de nuevo…

C:\XBMC\Skins = En esta carpeta pondremos los skins distintos al MediaCenter que queremos añadir.

C:\XBMC\XBMCTex = En esta carpeta estará el XBMCTex.exe

C:\XBMC\Anexos = En esta carpeta pondremos todo los ficheros que queramos añadir o pisar situados correctamente en su ruta de carpetas. Ej. (fichero “strings.xml” en castellano actualizado en la carpeta “Spanish” dentro de la carpeta “language”)

C:\XBMC\Xbepatch = En esta carpeta estará el xbepatch.exe que se encarga de parchear el default.xbe generado para convertirlo de Debug a Retail.

C:\XBMC\Compilar.bat = Fichero de comandos que automatiza todo el proceso.

Saludos.
Hablas poco (Por lo menos en esta sección), pero cuando lo haces, haces temblar los pilares de la tierra jejeje.

ESTUPENDO TUTO, espero ke los demás sepan apreciar tu trabajo y dejen de dar la lata y comiecen ellos mismo con sus propias compilaciones.

Un Gran Saludo desde Huelva. [risita] [risita]

Una Chincheta a este TUTO yaaaaaaaa. jejeje.

Además......... es a esto a lo ke se le llama SCENE, nop ?
Desde luego vaya forma de aprovechar el tiempo o_O.

Soy yo o para compilar el xbmc se piden mas requisitos que para entrar de gerente en el carrefour?

un 10 al tutorial. Deberia ir a la sección documentos para q no se pierda. A ver si se pasa algun moderador pq esto deberia estar en noticias de xbox...
muy util... ya no tendre que esperar a versiones compiladas... [sati] se agradece.
Gracias a tu tutorial acabo de compilar el xbmc [fumando]

Sólo he encontrado un problema:

En “Checkout Settings”:
Module name and path on the server: XBMP
Local folder to checkout to: C:\XBMC\


Hay que cambiar XBMP por XBMC para que se baje los fuentes.
Muy bueno el tutorial, desde luego. Aunque tengo una duda al respecto...

C:\XBMC\Codecs = En esta carpeta pondremos los codecs que queremos añadir.


La pregunta es: puedes meter en dicha carpeta cualquier codec, o solo sirven los que vienen en las versiones de XBMC compiladas?
Jojojo creo que lo tengo casi todo luego me pongo a mirarlo que quiero ver como narices se quita la opcion de programas del menu del XBMC que cada vez que viene un colega a ver una peli me acojona solo de pensar que es la primera opcion disponible y siempre se meten alli. Un dia de estos veo que me borran algun archivo del dash de MS. [tomaaa]
Estoy intentando seguir el manual pero me pierdo en la configuracion del WinsCVS, supongo que sera por la version que he bajao, el caso es que no encuentro donde meter estas opciones ...

Instalamos WinCVS y configuramos el módulo “Checkout” -> “General” con los siguientes parámetros:
Authentication: pserver
Path: /cvsroot/xbmc
Host Address: cvs.sourceforge.net
Username: anonymous
CVSROOT: anonymous@cvs.sourceforge.net:/cvsroot/xbmc

En “Checkout Settings”:
Module name and path on the server: XBMC
Local folder to checkout to: C:\XBMC\
Excelente tutorial, siempre quise saber como compilarlo. Cuando tenga las herramientas me pondré a ello a ver si soy capaz.

Saludso y gracias
Alguien Tiene los fuentes del unleasx ???
11 respuestas