Seguimos....con los Makefiles y su optimizacion....
3.- Como compilar/linkar
Despues de revisar como esta montado basicamente el fichero Rules.make,
pasaremos a saber exactamente que es lo que hay que hacer para que la cosa
vaya tomando forma.
Generalmente, y siguiente la estructura de archivos antes propuestas, vamos
a saber como podemos nosotros adaptar este sistema para nuestro uso
particular.
Hemos dicho , que el fichero Rules.make es el alma de nuestro esfuerzo por
hacer mas simple el hecho de compilar/linkar lo que sea.
En ese caso, vamos a ubicar dicho fichero en el directorio principal de
nuestro proyecto, en XWT es el propio directorio, ahi es donde tambien lo
dejaremos.
Entonces tenemos la siguiente estructura de directorios:
C:\Mi Proyecto\ --> En este directorio dejaremos Rules.make, mas otro fichero
Makefile que es el que invocara al resto, y lo veremos mas tarde.
Veamos ahora el resto de ficheros Makefiles que nos faltan y que estaran
cada uno ubicados en sus respectivos directorios, y que nos serviran para
notificar al Rules.make como tiene que actuar.
4.- Cambiando el comportamiento interno.
Empecemos pues por el primero:
\SRC\
En este directorio vamos a poner TODOS los .prg que formaran parte de nuestra
propia libreria, es decir, que TODO lo que haya aqui , se transformara
en una libreria, y ademas, puede contener tambien, si es necesario, partes
de codigo fuente en archivos .c
Esto nos es de gran utilidad para contener codigo de clases o/y funciones que
nos sera comun a TODOS nuestras aplicaciones que vayamos a realizar.
Dicho fichero, Makefile, lo analizamos entero pues este si que tienes que
entenderlo para afinar TU sistema :
[Nota:Partimos de la base del XWT por que asi podeis verlo vosotros mismos]
############################################
#
# Makefile para librerias en codigo .PRG
#
############################################
TARGET=libxwt.a
PRGFLAGS=-I../include
CFLAGS+=-I../include
XWT_INSTALL=../lib
CSOURCES=xwt_api.c
include ../Rules.make
TARGET Nombre de la libreria que queramos que se genere.
PRGFLAGS Flags que queremos pasarle a Harbour.
CFLAGS Flags que queremos pasarle a compilador de C.
XWT_INSTALL Donde esta ubicado el directorio de las librerias para
copiar la libreria aqui generada.
fichero de C y queremos que forme parte de la libreria. Usualmente no sera
necesario que lo indiques, pues lo borrais y y hasta ;-)
¿ Que tienes mas de un .C ? pues tan simple como:
CSOURCES= uno.c dos.c tres.c \
cuatro.c cinco.c ....etc...
y por ultimo y muy importante es la siguiente linea:
include ../Rules.make que lo unico que hace es coger TODO lo del
fichero Rules.make
Lógicamente, el nombre de los flags los podemos cambiar, por ejemplo, donde
pone XWT_INSTALL, pues nos quedaria mejor poner LIB_INSTALL, y redefinirlo en
todos los Makefiles que hagan uso de dicha macro, y sobretodo en Rules.make
Ya esta , con esto, lograreis montar una libreria , sin especificar
absolutamente nada.
Si quereis que otro archivo fuente .prg o .c , forme parte de vuestra libreria
pues lo copiais aqui y punto, despues se llama a Make para que compruebe si
hace falta o no generar la libreria de nuevo.
Ahora nos toca hacer los mismo, pero para nuestro codigo en C.
[ Nota: No tengais en cuenta al pie de la letra todo. Si no tuvierais
codigo en C para generar una libreria aparte, lo descartais sin mas, y
simplemente luego en el Make principal modificais para que no vaya a ejecutar
un Makefile que no va a existir ]
Si os fijais , tenemos en el XWT, una directorio SRC, y dentro un par mas,
nos quedaremos con el primero, el xwt_gtk, ya que este es el que se usa
con las herramientas GNU, el otro se usara a partir de los Make usando el
Borland o el de Microsoft, y ya dije que no perderia el tiempo con ello.
Como veis, mi propuesta es separar y quitar de SRC el codigo de C, sera
tan simple como que el Make principal llame a otro sitio en vez de donde esta
ahora ubicado.
Viendo el Makefile en cuestion, /xwt/src/xwt_gtk, tenemos una serie de macros
que veremos a continuacion:
TARGET=libxwt_gtk.a
CFLAGS+=-I. -I../../include `pkg-config --cflags gtk+-2.0`
SOURCE_TYPE=c
XWT_INSTALL=../../lib
include ../../Rules.make
TARGET ya sabemos para que nos servira.
CFLAGS le pasa opciones de compilador de C
XWT_INSTALL ya lo vimos.
include Idem.
SORCE_TYPE ESTE ES MUY IMPORTANTE, ya que informa que los ficheros
que va a tratar aqui seran para el compilador de C, si no, entraria el
compilador de Harbour y se pegaria de ostias. ;-)
[Nota:pero si os fijais , vereis ../../, y esto
es porque desciende un nivel mas, pero como nosotros lo vamos a poner
al mismo nivel que el directorio SRC, lo cambiamos a ../, igual que el Makefile
del SRC ]
Ya tenemos listo dos librerias que se generaran automaticamente a traves
del Make.
Saludos.
..y el proximo capitulo...el resto...
Como montar el /TESTS y el makefile principal
网络营销软件
网络营销软件
网络营销软件
群发软件
群发软件
---
群发软件
博客群建软件
网络营销软件
论坛群发软件
网站排名软件
群发软件
推广小助手破解版
论坛群发
网站排名软件
群发软件
推荐给你很好的群发软件和信息群发软件和供求群发软件
推荐给你很好的群发软件和信息群发软件和供求群发软件博客群发软件网络营销软件网络营销软件
网站排名软件网站排名软件网站优化软件信息群发软件信息群发软件信息群发软件论坛群发软件网站推广软件网站推广软件博客群发软件博客群发软件
群发软件
网络营销软件
论坛群发
网站推广软件
群发软件群发软件博客群发软件论坛群发软件网络营销软件论坛群发软件
信息群发软件推广软件网站推广软件网络营销软件网站推广软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件
网站排名软件
群发软件
博客群发软件
网站排名软件
网站推广软件
群发软件信息群发软件
免费论坛群发软件
论坛群发软件
网站排名软件
免费博客群发软件
网站推广软件
群发软件
博客群发软件
网站排名软件
网站推广软件
群发软件信息群发软件
免费论坛群发软件
论坛群发软件
网站排名软件
免费博客群发软件
博客群发软件
信息群发软件
论坛群发软件
信息群发软件
博客群发软件
qq群发软件
邮件群发软件
博客群建软件
企业名录搜索软件
信息群发软件
邮件群发软件
论坛群发软件
博客群发软件
网站推广软件
网络营销软件
全能营销破解版
网络营销软件
论坛群发软件
论坛群发软件
论坛群发软件
网络营销软件
信息群发软件
信息群发软件
信息群发软件
群发软件
论坛群发软件