______   ___    ___
    /\  _  \ /\_ \  /\_ \
    \ \ \L\ \\//\ \ \//\ \      __     __   _ __   ___ 
     \ \  __ \ \ \ \  \ \ \   /'__`\ /'_ `\/\`'__\/ __`\
      \ \ \/\ \ \_\ \_ \_\ \_/\  __//\ \L\ \ \ \//\ \L\ \
       \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
        \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
                                       /\____/
                                       \_/__/


           Información sobre compatibilidad binaria.

           Lea en readme.txt una visión más general.


Introducción

Una vez Allegro 4.0 sea lanzado, planeamos mantener compatibilidad a nivel binario de la interfaz (ABI, Application Binary Interface) para el resto de las series 4.0.x. Por ejemplo, eso significa que seguirá pudiendo usar un binario compilado con la versión 4.0.10 con una librería dinámica de la versión 4.0.42, o incluso 4.0.0.

"Uff," pensará, "nunca más tendré que poner allxxxx.dll en mis zips."

Técnicamente, no. Sin embargo, hay unas guías (reglas) que debería (deberá) seguir, o de lo contrario las cosas no funcionarán bien, y obtendrá emails de irritación de sus usuarios y de nosotros (la Mafia "sea bueno" de Allegro).

Nota: La compatibilidad binaria sólamente será mantenida _activamente_ para Windows, Linux y BeOS en las arquitecturas x86.


Notas para Windows

Si no necesita una versión modificada de Allegro entonces simplemente enlace su programa contra una versión que no sea WIP, CVS o de prueba, y caerán del cielo galletas de chocolate. No desactive ninguna característica (ej: profundidades de color, drivers) en la DLL.

Si requiere una versión modificada de Allegro, entonces por favor enlace con ella estáticamente, o escoja un nombre no estándar para la DLL modificada de Allegro. Por ejemplo, tendría muy mala leche si distribuyese la versión modificada de Allegro con un nombre como all40.dll o alleg40.dll. En su lugar, llámela algo como alcambios.dll. Mejor aún, enlace estáticamente con ella.

Para las personas que usen el Allegro estándar, proveeremos un conjunto de DLLs de "referencia". Si su binario funciona con eso, entonces todo está en su lugar. Si quiere distribuír las DLLs de Allegro con su programa (normalmente es buena idea), recomendamos que distribuya nuestras DLLs en lugar de las que haya compilado usted. Confiamos en que fastidiaría algo.


Notas para Linux

Para asegurarse de que el binario que use Allegro compilado en su máquina funcione en otra, no desactive ninguna característica del `configure'. Su copia de Allegro debe tener rutinas en ensamblador, threads, módulos, todas las profundidades de color y soporte X11 activados, entre otras cosas. Si duda, deje todo con su valor por defecto.

Cuando esté listo para distribuír su binario, ejecute "ldd <;mibinario>;". Debería decir algo como:

liballeg.so.4.0 =>; /usr/local/lib/liballeg.so.4.0 (0xdeadbeaf)

NO debería decir algo como:

liballeg.so.4.0.0 =>; /usr/local/lib/liballeg.so.4.0.0 (0xdeadbeaf)

Si ve lo segundo, eso significa que usuarios con versiones posteriores de Allegro no podrán ejecutar su binario.

Lea también la sección Windows si necesita usar una versión modificada de Allegro.


Notas para BeOS

La mayoría de las cosas mencionadas en la sección Windows son aplicables aquí. En particular, se le recomienda usar una versión que no sea WIP, CVS o modificada de cualquier otra forma, en cuyo caso su programa debería funcionar sin problemas en máquinas externas.


Notas finales

Proporcionar el código fuente sigue siendo mejor que no proporcionarlo. Los binarios son buenos, no obstante, si su código es malísimo y sólo usted (con la ayuda de brujería) es capaz de compilarlo.

Si ha proporcionado binarios en el pasado usando versiones WIP de Allegro, le pedimos amablemente que recompile su programa usando una versión estable de Allegro. (A no ser, claro, que prefiera dormir con los peces).

Y oh, no haga que su compilador genere código específico de i686 o algo estúpido como eso.