martes, 10 de febrero de 2009

MSYS

Una de las herramientas más útiles que he encontrado para el desarrollo en windows es sin duda MSYS.

Extraido de su página:

MSYS es una colección de utilidades GNU como bash, make, gawk y grep que permiten construir aplicaciones y programas que dependen tradicionalmente de la presencia de herramientas UNIX. Esta especialmente pensado para suplementar a MinGW y las deficiencias de la shell cmd (de windows).

Un ejemplo sería construir una libreria que hace uso de autotools build system. Los usuarios normalmente ejecutarían "./configure" y luego "make" para compilarlo. El script de configuración requiere un interprete que no está presente en sistemas Windows, pero incluido en MSYS.

No hay que confundir a MSYS como "UNIX en Windows", MSYS no incluye ningúna libreria ni compilador para C, por lo que no da la habilidad de portar magicamente programas UNIX a Windows ni proporciona ningúna funcionalidad especifica de UNIX como los nombres de ficheros sensibles a mayúscula.

Resumiendo: Con MSYS puedes compilar facilmente software multiplataforma con herramientas como make o configure (entre otras).

Un ejemplo es lo sencillo que resulta compilar SQLite para windows:
  1. Descarga el paquete sqlite-amalgamation-X.X.X.tar.gz de SQLite. Este incluye el código fuente tanto de la libreria como de la shell, además de los scripts de configuración.
  2. Dentro del directorio donde tengamos instalado MSYS existe un directorio llamado home. Este directorio es el destinado a colocar los ficheros provenientes de windows, asi que creamos un directorio nuevo dentro de home y lo llamamos "sqlite".
    Dentro descomprimimos el paquete descargado.
Hecho esto ya podemos ejecutar MSYS: Directorio de instalacion/msys.bat
Nos aparece una shell, parecida a cmd.exe de windows (pero mejor!). Aquí lo importante es recordar que los comandos que funcionan son los de UNIX/Linux; así que dir no funciona, habrá que utilizar ls.
Bien, cuando MSYS se abre el directorio de inicio es home, así que desde este lugar podemos acceder facilmente al directorio anteriormente creado sqlite:
cd sqlite
Lo siguiente es ejecutar configure para que prepare el sistema para la compilación:
configure
Por ultimo ejecuta:
make
Lo cual empezará el proceso de compilación.
Una vez terminado, en el mismo directorio se habrá creado un nuevo directorio ".libs", dentro del cual encontraremos la dll para windows necesaria para la distribución de nuestros programas, libsqlite3.a para linkar con codeblocks y sqlite3.exe, la linea de comandos de sqlite.

1 comentario:

Unknown dijo...

Hey, muy bueno tu blog, tal vez te interece ver un poco el mío... http://programandoenlinux.blogspot.com/
Seguí así =) abrazo!