top of page

Automatizando la compilación con Sublime Text 3

Mientras estaba preparando el próximo artículo, pensé en explicar un poco mi entorno de programación, por si os puede ser útil.


Actualmente, estoy usando macOS en una arquitectura Intel. Más adelante, explicaré lo mismo pero para la nueva arquitectura ARM. También introduciré el uso de sistemas Linux y Windows, ya que el otro miembro de MoltSXalats utiliza Linux, y ambos usamos ocasionalmente Windows para probar algunos códigos en ese sistema.


Si has siguidi el primer artículo "Introducción a SDCC y FUSION-C", es posible que ya sepas algunas de las cosas que explicaré, especialmente en cuanto a la configuración del entorno.


Siguiendo lo que mencionamos en el primer artículo, necesitarás obtener los archivos MSX_Fusion-C_V1.2.zip y Fusion-C_ToolsChain.zip. En el primer archivo, encontrarás FUSION-C-Quick A4 1.2.pdf, y si sigues lo que se explica entre las páginas 21 y 28, tendrás un entorno de trabajo para practicar con los artículos que iremos presentando.


Lo que quiero explicarte aquí es cómo configurar Sublime Text 3 para automatizar el proceso de compilación de archivos .C.


Instalando Sublime Text 3


En primer lugar, tendremos que instalar el editor Sublime Text 3. Podéis descargarlo desde el enlace del pdf o también podréis encontrar el paquete Sublime Text Build 3176 MacOS.dmg para Mac Intel dentro del directorio 'Sublime text Setup' del archivo Fusion-C_ToolsChain.zip.


Una vez instalado, haremos que al presionar 'cmd + B' se automatice la compilación del archivo .C que tengamos abierto en el editor y al mismo tiempo se abra una instancia del openMSX con el archivo .COM accesible para ser ejecutado.


Configurando Sublime Text 3


Accederemos al menú 'Tools > Build System > New Build System' para crear un archivo que iniciará la compilación con el sdcc del archivo .C con el que estemos trabajando, sin tener que salir de Sublime Text 3.





Se nos abrirá un archivo vacío en el que teclearemos lo siguiente:





Lo guardaremos en el directorio '/Users/sergarbes/Library/Application Support/Sublime Text 3/Packages/User' con el siguiente nombre: sdcc-build.sublime-build.


Ahora, para que se ejecute por defecto al presionar "cmd + B", seleccionaremos la opción sdcc-build del menú 'Tools > Build System' para que esta quede marcada con una marca de verificación.




Para que lo que hemos configurado funcione, debemos coger el directorio 'Working Folder' que encontraréis dentro de MSX_Fusion-C_V1.2.zip y ubicarlo donde os resulte más cómodo trabajar. Yo lo he movido a '/Users/sergarbes/Developer' donde tengo centralizado todo lo relacionado con desarrollos en Mac.


Los archivos .C de trabajo los ubicaremos dentro del mismo directorio 'Working Folder', ya que la magia que hace que al presionar 'cmd + B' se compile el archivo .C y genere el archivo .COM, abriendo el openMSX y borrando todos los archivos generados durante la compilación, está en el archivo Makefile que podréis encontrar e investigar, si sois curiosos, también dentro del directorio 'Working Folder'.


Realicemos una primera compilación de ejemplo


Ahora tocaría probarlo. Encontraréis dentro del directorio 'Working Folder' un ejemplo de FUSION-C para hacer vuestra primera compilación de un programa en FUSION-C. El archivo .C se llama test.c y es el que os muestro a continuación:





Si presionamos 'cmd + B', veremos que se abre un panel dentro de Sublime Text 3 con la información de la compilación. Si hubiera un error durante el proceso, también se mostraría en este mismo panel. Os muestro una captura del proceso de compilación del archivo test.c para que veáis de lo que hablo.




Si la compilación se realiza sin errores, el proceso dejará el archivo .COM resultante dentro de '/Users/sergarbes/Developer/Working Folder/dsk' y abrirá el openMSX.





Para terminar, procederemos a ejecutar el archivo .COM resultante, como se puede ver en la captura de más abajo.




Ahora sí, habiendo visto cómo las tareas de compilación pueden automatizarse, podemos centrarnos en el próximo artículo, que les adelanto que será en dos o tres entregas, y en que realizaremos una versión sencilla del juego Pong [1] en FUSION-C 1.2.








Comments


bottom of page