El sitio personal de David Colmenero (D_Skywalk)

Tutorial: SDL – Semi-Ameba MAKEFILE HowTo

Bien lo primero que os preguntareis seguramente es:

¿Para que sirve un Makefile?

Un Makefile contiene todos los pasos para generar (compilar) nuestro programa. Un programa se compone basicamente de librerias (que son un conjunto de utilidades que facilitan nuestra labor), nuestros ficheros del programa y de como debe “montar” nuestros ficheros (optimizaciones).

Quiero preparar mi proyecto ¿que ficheros necesito para compilarlo?

Lo mejor que podemos hacer es tomar como base alguno de los ejemplos que tenemos en el directorio de GP32, por ejemplo: FONTS.

Lo primero sera crearnos un directorio para nuestro proyecto, que nosotros aqui llamaremos EJEMPLO. Luego de FONTS vamos a coger prestado: “Makefile.win32″, “Makefile”, “crt0x_gp32.s” y “arm-gp32bin.x”.

Ya lo siguiente que necesitariamos seria que codearas un poco y lo guardaras con: “ejemplo.c” (o con el nombre que tu quieras).

¿que necesito conocer para compilar un programa sin problemas?

Bien una vez tenemos nuestro programa codeado y el directorio preparado, necesitamos configurar nuestros MAKEFILEs para que compilen nuestro programa; ya sea para GP32 o para testearlo en Windows.

Tenemos: “Makefile” que son las ordenes/instrucciones necesarias para GP32 y “Makefile.win32″ que seria para generar la version de Win32 (windows).

¿Como creo mi Makefile propio?

Bien para compilar cualquier programa basico solo necesitas modificar 2 secciones de cualquiera de estos dos MAKEFILEs:

Para el Makefile.Win32:

TARGET  =   fonts.exe 

[...]

.CFILES =   fonts.c

En CFILES debeis poner todos los ficheros que componen vuestro programa, en el nuestro seria solo “ejemplo.c” y en TARGET sera el nombre final que tendra el programa.

Quedando algo como:

TARGET  =   ejemplo.exe 

[...]

.CFILES =   ejemplo.c

Para GP32 tenemos alguna distincion pero que es practicamente igual, solo que quizas esta menos comodo…

Para el Makefile (GP32):

MAPFILE     =   fonts.map
TARGET_ELF  =   fonts.elf
TARGET_BIN  =   fonts.gxb
TARGET_FXE  =   fonts.fxe

[...]

.CFILES =   fonts.c

De aqui tenemos que cambiar el nombre de todos los TARGETs de arriba, substituyendo “font” por nuestro nombre, nosotros como de costumbre seguiremos con “ejemplo”, lo demas es como siempre en CFILES poneis todos los “.c” que componen vuestro programa Smiley: contento!

¿Como compilo para GP32 o para Win32?

Se compila para GP32, usando “make” y “make clean” para limpiar/borrar todo.
Se compila para Win32, usando “make -f Makefile.Win32″ y “make -f Makefile.Win32 clean”, para limpiar/borrar todo.

TODO: Como usar librerias?

Un Saludo y espero que os resuelva algunas dudas, y podais empezar un proyecto básico.

Comparte en: Twitter Facebook Google +
comments powered by Disqus