Generacion de librerias y programas desde una misma linea de comandos
Usando GNU Make y otras cosas.
1) Parte
Una de las cosas que he estado buscando largamente a sido la generacion
de librerias tanto de codigo PRG como de Codigo C o una mezcla de ambos,
y generar una libreria o un .exe indistintamente.
Despues de buscar, hace tiempo que vi que dentro del proyecto xHarbour,
contrib, tenemos el XWT, en el cual hay implementado , bajo mi humilde punto
de vista, un sistema al que estaba buscando , y que esconde una potencia
inusual, para tan pocas lineas de codigo.
Intentare explicar como funciona, despues que tuve que abordar el estudio de
la herramienta Make, pues es imprecindible el conocimiento, al menos al nivel
basico de toda esa jerga incomprensible.
Aqui se hablara de GNU Make, por servirme tanto como GNU/Linux y Windows,
no perdiendo mas tiempo en descubrir como funcionan otros make, ya sea de
borland o de Microsoft, asi, aprendiendo uno, tengo mas que suficiente.
No voy a explicar aqui 'COMO' funciona exactamente GNU Make, si no una forma
de planificar nuestro codigo y que un solo comando realice solamente lo que
queramos, teneis manuales por internet, molestate en buscarlos ;-)
Asi, por basarme en el estudio de las reglas del make usadas en el proyecto
XWT, sera necesario que tengais las contrib de xHarbour para ir siguiendo el
hilo del texto.
1.- Objectivo y estructuracion.
2.- Definicion de las reglas
3.- Como compilar/linkar
4.- Cambiando el comportamiento interno.
+ Añadir mas librerias y directorios
1.- Objectivo y estructuracion.
La primera cuestion es definir como trabajar y hara un pequeño esforzo
de directorios para que lo comprendais, su estructura.
C:\Mi Proyecto\
|--- SRC // Directorio que contiene codigo PRG que formara una libreria
|--- C_LIB // Directorio que contiene codigo C que formara una libreria
|--- TESTS // Nuestros PRG que forman la fuente del programa.
|--- INCLUDE // Nuestros includes que haremos usos.
|--- LIB // Aqui se copiaran las librerias de SRC y C_LIB
En principio, esto es suficiente para la mayor parte de los usuarios.
Lo interesante, es que en NINGUN SITIO de SRC o C_LIB le vamos a definir los
fuentes a usar,
¿ Como es posible ?
Si , señores, solamente añadiendo el fichero en cuestion, a la hora de generar la libreria , solamente compilara ese fichero que hemos añadido al directorio, sin modificar para nada el fichero Makefile y construira la propia libreria con el nuevo fichero añadido.
Logicamente, este funcionamiento no nos interesa que lo haga en TESTS, porque
al igual nos es necesario tener dos ejecutables de dos fuentes distintas.
Esto, nos permite olvidarnos por fin de herramientas generadoras de
ficheros Makefiles, como pueden ser Front-End, Verce, Ajmake, etc..., para
gente que quiera pensar como se realizan las cosas.
2.- Definicion de las reglas
Para que todo el proceso funcione como un engranaje perfectamente engrasado,
y de eso se bastante , creeme, antes era especilista en roscas de precision,
tenemos que partir de un fichero que va a contener toda la maquinaria de
trabajo para el GNU Make.
Si os fijais, debereis de tener en el directorio /contrib/xwt/ un fichero
llamado Rules.make.
Dicho fichero es de gran importancia , pues es el que tiene las reglas de
funcionamiento, y que sera usado por el resto de makefiles que debes de
contener en los distintos directorios que quieras procesar.
Echemos un vistazo a dicho fichero, para entender como funciona para poder
adaptarlo a nuestras necesidades , ya sea para Windows o para GNU/Linux.
....en fin .... continuará....que si no se hace muy pesado....
y tu, ¿ todavia en pañales , y con los .bat de toda la vida, jejeje ?
Saludos.