Introducción al SDK de MorphOS

Hola Amigueros de todas las especies.
He decidido hacer unas entradas al blog sobre programación en Amiga (más bien sobre MorphOS) pues considero que nunca esta de mas tener este tipo de información en  nuestro idioma.
En principio me he propuesto hacer unas traducciones de unos textos de Grzegorz Kraszewski.

En esta primera entrada vamos a ver como se instala el entorno de desarrollo de MorphOS y los principios básicos del compilador. ¡Empezamos!

Instalando el SDK (Software Development Kit o Paquete de Desarrollo de Software)

El SDK oficial de MorphOS proporciona un entorno completo para la creación de programas para MorphOS.

Contiene los siguientes componentes:

  • Los includes de MorphOS (para la API nativa de MorphOS)
  • Includes para C standard y C++
  • Documentación para el API de MorphOS y códigos de ejemplo.
  • Tres compiladores GCC, 2.95.3, 4.4.5 y 5.3.0
  • Conjunto de herramientas GCC (uno para cada compilador), conjunto de utilidades para programadores.
  • Lenguajes de script (guión) Perl y Lua.

El primer paso que debemos hacer es descargar el SDK de la página morphos.net, o pulsando directamente este enlace. El SDK está en un archivo Lha, que tendremos que descomprimir antes de poder usarlo. La manera más fácil de hacerlo es usando un menú contextual sobre el archivo (con el botón derecho del ratón en la pantalla de Ambient) y elegir Extract. Después de descomprimirlo veremos que se ha creado un directorio llamado morphossdk y dentro una aplicación de Instalación Installer y un enorme fichero sdk.pack. La instalación comienza ejecutando Installer. La única opción que aquí se necesita por parte del usuario es elegir el directorio donde se va a instalar el SDK. Despues pasaremos un rato observando como avanza la barra de progreso…

Después de la instalación necesitaremos reiniciar el sistema para hacer efectivas las asignaciones y paths necesitados.

En la lista anterior no hay un editor de programación.  Scribble es un editor avanzado que está, desde el MorphOS 3.1, incluido en el sistema operativo.  Scribble está basado en el conocido componente Scintilla.Cuando se instala el SDK, se añaden características automáticamente, como análisis de código dinámico,indicaciones con los parámetros de las funciones y los miembros de las estructuras, un rápido acceso a la documentación del API del sistema y mucho mas.

Eligiendo un Compilador

Como hemos mencionado anteriormente, con el SDK vienen tres compiladores GCC: el viejo 2.95.3, uno mas moderno 4.4.5, y el mas moderno de todos 5.3.0. Hay una herramienta en el SDK que se llama GCCSelect, que permite cambiar rápidamente entre compiladores. Escribe en una ventana Shell

GCCSelect 2.95.3

o

GCCSelect 4.4.5

o

GCCSelect 5.3.0

para cambiar al compilador que desees. GCCSelect funciona haciendo enlaces simbolicos a la correcta version de GCC y sus herramientas, por lo que el compilador siempre se llamará gcc o g++, sin importar la versión que usemos.

¿Qué versión escoger? Pues depende del código a compilar y sus limitaciones. Tomemos esto como referencia:

  • 2.95.3 compila más rápido y consume menos memoria.
  • Para código clásico es mejor 2.95.3, pues GCC4 y 5 van aproducir un montón de alertas o incluso errores en código que puede compilar correctamente en 2.95.3.
  • Para nuevos proyectos, especialmente en c++, GCC4 es recomendado, pues el viejo gcc2 no cumple con las normativas mas recientes.
  • GCC4 generalmente produce código mas rápido (pero a veces será más grande, dependiendo de las opciones del compilador)
  • GCC4 es un compilador relativamente nuevo y complejo, puede contener mas errores que 2.95.3.
  • En la  fecha que se publicó este texto original aún no había salido GCC5 pero ya está disponible para MorphOS. GCC5 es lo mas moderno que actualmente existe, cumpliendo todas las normativas como c++11 y soporte parcial de c++14.

Mi consejo es usar siempre GCC5 y pasar a GCC2 solo si se necesita.

Puedes saber que versión del compilador estas utilizando en cada momento usando la opción -v del compilador, que muestra la versión del compilador:

gcc -v

La última línea muestra la versión de GCC.

Librerías (bibliotecas) C y C++ standard

Estas librerías standard son parte de las especificaciones C y C++. Proporcionan principalmente de funciones de entrada/salida tanto de consola como de ficheros, funciones matemáticas y operaciones con cadenas. La librería C++ proporciona además de un conjunto de classes.

Hay dos maneras de utilizar estas librerías en MorphOS. La primera (por defecto) es usando una librería compartida de MorphOS, ixemul.library. Como el nombre sugiere, esta librería intenta suministrar un entorno de emulación Unix en MorphOS, la cual, aparte de las librerías standard, incluye gran parte del standard POSIX y otras funciones comunmente usadas.  ixemul.library se usa generalmente para portar grandes proyectos del mundo Linux/Unix, por ejemplo es mismamente usado por GCC y muchas otras herramientas del SDK.

La segunda manera es usar libnix (o sea: lib no ixemul). Al contrario que ixemul.library, libnix se enlaza estáticamente con la aplicación. Esta es la forma preferida de acceder a las librerías standard para hacer aplicaciones nativas en MorphOS. Se accede poniendo la opción -noixemul  en el compilador y en el enlazador (linker). Libnix suministra librerías completas de C y C++, pero su implementación POSIX en menos completa.

Otra alternativa es no usar las librerías standard. Puede sonar de locos en un principio, pero el API nativo de MorphOS ofrece funciones de entrada/salida para consola y ficheros como manipulación de cadenas y muchas funciones matemáticas. Usando el API nativo se consiguen aplicaciones más rápidas y más pequeñas. Por otra parte usar el API de MorphOS hace que no se pueda portar el código a plataformas no Amigueras. La opción del compilador -nostdlib le dice al compilador que no use ninguna librería standard. Fijate que esto hace que tengas que escribir tu propia secuencia de arranque.

Aquí termina la primera entrega de esta serie de documentos. En la siguiente escribiremos nuestro primer programa con el típico “Hola Mundo!” con las diferentes librerías vistas aquí.

Recordar que el texto original pertenece a  Grzegorz Kraszewski y se puede encontrar aquí.

Cualquier duda, error o sugerencia escribidla en los comentarios.

 

 

Licencia Creative Commons
Introducción al SDK de MorphOS por Grzegorz Kraszewski se distribuye bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.
Basada en una obra en http://krashan.ppa.pl/mph/morphos-sdk.

 

3 Respuestas a “Introducción al SDK de MorphOS

  1. Interesante introduccion al mundillo SDK/MorphOS🙂
    Mas queremos mas, queremos mas….🙂

  2. Pingback: El típico primer “¡Hola Mundo!” |

  3. Pingback: Opciones útiles del Compilador |

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s