Aqui se termina de configurar el resto del Make...
Ahora viene la parte donde va a colgar nuestra aplicacion, y aqui veremos
como tenemos que definir que ficheros van a formar parte de nuestra
aplicacion. Este sera otro fichero Makefile, como no ;-)
Pero este Makefile simplemente selecciona a otro , ya dije que veremos
tanto Windows como GNU/Linux, dependiendo de la variable de entorno o la macro
HB_COMPILER.
Entonces, el fichero principal de GNU Make para test ejecuta esto:
ifeq ($(HB_COMPILER),mingw32)
include Makefile.mingw32
else
include Makefile.linux
endif
Obviamente, se podria haber mejorado solamente en la creacion de un unico
fichero, pero aqui como puedes ver, selecciona uno u otro.
Miraremos el Makefile.mingw32 para que veais como debeis de montarlo.
TARGET = demo # NOMBRE DEL PROGRAMA
SOURCES = demo.prg demo2.prg # LISTA DE PRGS QUE FORMAN EL PROGRAMA
PRGFLAGS=-I../include # FLAGS PARA HARBOUR
LIBS= -L../LIB -lMisLib `pkg-config --libs gtk+-2.0` #LIBRERIAS PARA LINKAR
include ../Rules.make
Ya tenemos disponible el sistema para empezar a jugar con el.
Ahora solamente nos falta mirar como llamar a todos ellos.
En nuestro directorio raiz, tendremos un fichero llamado Makefile, que
contiene las ordenes que debe de ejecutar:
##################################
# Makefile principal
##################################
all:
make -C src
make -C c_lib
clean:
make -C src clean
make -C c_lib clean
make -C tests clean
install: all
make -C src install
make -C c_lib install
.PHONY: clean install
[Nota: Para los que usan Mingw32 desde linea de comandos de Windos, el make
como tal no existe, se llama mingw32-make, solamente teneis que cambiarle
el nombre ]
Dicho fichero lo unico que hace es ejcutar el make segun le pasamos
parametros. Por ejemplo:
c:\mi proyecto\>Make all
Creara las librerias de SRC y C_LIB
c:\mi proyecto\>Make install
Esta es muy buena, para instalar las librerias, tendra que ejecutar all y
despues se ira a copiar al directorio LIB las librerias generadas.
c:\mi proyecto\>Make clean
Lo que hace es borrar todos los ficheros necesarios para permitir volver a
generar el ejecutable, dicho sea de paso, tambien se cargara a dicho
ejecutable.
Ya esta ? Casi.... como debeis recordar, en TESTS funciona distinto, porque
podemos tener varios Makefiles para distintos proyectos.
En ese caso, simplemente nos vamos al directorio y ejecutamos Make,
y te generara el ejecutable en cuestion.
Podemos crear distintos nombres por aplicacion que queramos generar, y llamar
al Make como : Make -f MiAplicacion1
Una vez que tengamos configurado este sistema o similar, mirar que sencillo,
es tener todo el control en un par de lineas:
C:\Mi Proyecto\>Make clean
C:\Mi Proyecto\>Make install
C:\Mi Proyecto\>cd TESTS
C:\Mi Proyecto\TESTS\>Make
o otro make
C:\Mi Proyecto\TESTS\>Make -f SegundoMake
Ya esta! Se termino.....
Creo que esto terminara con muchos de los problemas actuales a la hora
de tener que estar generando librerias, compilar codigo, etc...
Solamente tendremos que tener especial cuidado en meter los prgs que formen
parte de nuestra aplicacion, el resto, ya se encargara Make de mantenerlo.
Espero al menos iluminaros un poco para que podais investigar por vuestros propios medios otros sistemas distintos pero con la misma filosofia, la sencillez de generar aplicaciones y/o librerias no nos supongan un calvario.
Saludos.