Page 1 of 2

makefile de Borland genérico para múltiples PRGs

PostPosted: Wed Sep 17, 2014 1:27 pm
by Antonio Linares
go.bat

Code: Select all  Expand view
if not exist obj md obj
c:\bcc582\bin\make -fone.mak


one.mak

Code: Select all  Expand view
HBDIR=c:\harbour
BCDIR=c:\bcc582
FWDIR=c:\fwh

#change these paths as needed
.path.OBJ = .\obj
.path.PRG = .\
.path.CH  = $(FWDIR)\include;$(HBDIR)\include
.path.C   = .\
.path.rc  = .\

PRG =     \
.\one.prg   \
.\two.prg \
.\three.prg \
.\four.prg \
.\five.prg \
.\six.prg \
.\seven.prg \
.\eight.prg

OBJ=$(PRG:.prg=.obj)
OBJS=$(OBJ:.\=.\obj\)

PROJECT    :  one.exe

one.exe  : $(OBJS) one.res
   echo off
   echo $(BCDIR)\lib\c0w32.obj + > b32.bc
   echo $(OBJS), + >> b32.bc
   echo one.exe, + >> b32.bc
   echo one.map, + >> b32.bc
   echo $(FWDIR)\lib\FiveH.lib $(FWDIR)\lib\FiveHC.lib + >> b32.bc
   echo $(HBDIR)\lib\hbrtl.lib + >> b32.bc
   echo $(HBDIR)\lib\hbvm.lib + >> b32.bc
   echo $(HBDIR)\lib\gtgui.lib + >> b32.bc
   echo $(HBDIR)\lib\hblang.lib + >> b32.bc
   echo $(HBDIR)\lib\hbmacro.lib + >> b32.bc
   echo $(HBDIR)\lib\hbrdd.lib + >> b32.bc
   echo $(HBDIR)\lib\rddntx.lib + >> b32.bc
   echo $(HBDIR)\lib\rddcdx.lib + >> b32.bc
   echo $(HBDIR)\lib\rddfpt.lib + >> b32.bc
   echo $(HBDIR)\lib\hbsix.lib + >> b32.bc
   echo $(HBDIR)\lib\hbdebug.lib + >> b32.bc
   echo $(HBDIR)\lib\hbcommon.lib + >> b32.bc
   echo $(HBDIR)\lib\hbpp.lib + >> b32.bc
   echo $(HBDIR)\lib\hbwin.lib + >> b32.bc
   echo $(HBDIR)\lib\hbcpage.lib + >> b32.bc
   echo $(HBDIR)\lib\hbct.lib + >> b32.bc
   echo $(HBDIR)\lib\hbcplr.lib + >> b32.bc
   echo $(HBDIR)\lib\xhb.lib + >> b32.bc
   echo $(HBDIR)\lib\png.lib + >> b32.bc
   echo $(HBDIR)\lib\hbzlib.lib + >> b32.bc

   echo $(BCDIR)\lib\cw32.lib + >> b32.bc
   echo $(BCDIR)\lib\import32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\odbc32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\nddeapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\iphlpapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\msimg32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\rasapi32.lib, >> b32.bc

   echo one.res >> b32.bc
   $(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
   del b32.bc

.PRG.OBJ:
  $(HBDIR)\bin\harbour $< /L /N /W /Oobj\ /I$(FWDIR)\include;$(HBDIR)\include
  $(BCDIR)\bin\bcc32 -c -tWM -I$(HBDIR)\include -oobj\$& obj\$&.c

.C.OBJ:
  echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
  echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
  $(BCDIR)\bin\bcc32 -oobj\$& @tmp $&.c
  del tmp

one.res : one.rc
  $(BCDIR)\bin\brc32.exe -r one.rc

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Wed Sep 17, 2014 1:34 pm
by cnavarro
Antonio, si hubiera posibilidad de incluir en el .mak una directiva (#include "mis.prgs") o algo parecido que sustituyera a:

Code: Select all  Expand view

PRG =     \
.\one.prg   \
.\two.prg \
.\three.prg \
.\four.prg \
.\five.prg \
.\six.prg \
.\seven.prg \
.\eight.prg

 


Sería mucho más genérico, no?

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Wed Sep 17, 2014 2:25 pm
by karinha
Usando xHarbour:

Code: Select all  Expand view

#Borland make sample, (c) FiveTech Software 2005-2014 With xHarbour

HDIRL=c:\XHB280714
BCDIR=c:\BCC582
FWDIR=c:\FWH1306
 
#change these paths as needed
.path.OBJ = .\obj
.path.PRG = .\
.path.CH  = $(FWDIR)\include;$(HDIRL)\include
.path.C   = .\
.path.rc  = .\
 
#important: Use Uppercase for filenames extensions, in the next two rules!
 
PRG =        \
.\TESTBRW3.PRG \
.\WBROWSE.PRG

# Comentario
#REM ONE.PRG   \
#REM TWO.PRG   \
#REM THREE.PRG

OBJ=$(PRG:.prg=.obj)
OBJS=$(OBJ:.\=.\obj\)
 
C =          \
TESTBRW3.C    \
WBROWSE.C
 
PROJECT    : TESTBRW3.exe
 
TESTBRW3.exe : $(PRG:.PRG=.OBJ)
   echo off
   echo $(BCDIR)\lib\c0w32.obj         +  > b32.bc
   echo OBJ\TESTBRW3.obj                 + >> b32.bc
   echo OBJ\WBROWSE.obj,               + >> b32.bc
   echo TESTBRW3.exe,                    + >> b32.bc
   echo TESTBRW3.map,                    + >> b32.bc
   echo $(FWDIR)\lib\FiveHx.lib        + >> b32.bc
   echo $(FWDIR)\lib\FiveHC.lib        + >> b32.bc
   echo $(HDIRL)\lib\rtl.lib           + >> b32.bc
   echo $(HDIRL)\lib\vm.lib            + >> b32.bc
   echo $(HDIRL)\lib\gtgui.lib         + >> b32.bc
   echo $(HDIRL)\lib\lang.lib          + >> b32.bc
   echo $(HDIRL)\lib\codepage.lib      + >> b32.bc
   echo $(HDIRL)\lib\macro.lib         + >> b32.bc
   echo $(HDIRL)\lib\rdd.lib           + >> b32.bc
   echo $(HDIRL)\lib\dbfntx.lib        + >> b32.bc
   echo $(HDIRL)\lib\dbfcdx.lib        + >> b32.bc
   echo $(HDIRL)\lib\dbffpt.lib        + >> b32.bc
   echo $(HDIRL)\lib\hbsix.lib         + >> b32.bc
   echo $(HDIRL)\lib\debug.lib         + >> b32.bc
   echo $(HDIRL)\lib\common.lib        + >> b32.bc
   echo $(HDIRL)\lib\pp.lib            + >> b32.bc
   echo $(HDIRL)\lib\pcrepos.lib       + >> b32.bc
   echo $(HDIRL)\lib\ct.lib            + >> b32.bc
   echo $(HDIRL)\lib\zlib.lib          + >> b32.bc
   echo $(HDIRL)\lib\hbzip.lib         + >> b32.bc
   echo $(HDIRL)\lib\libmisc.lib       + >> b32.bc
   echo $(HDIRL)\lib\tip.lib           + >> b32.bc
   echo $(HDIRL)\lib\png.lib           + >> b32.bc
 
   echo $(BCDIR)\lib\cw32.lib          + >> b32.bc
   echo $(BCDIR)\lib\import32.lib      + >> b32.bc
   echo $(BCDIR)\lib\psdk\odbc32.lib   + >> b32.bc
   echo $(BCDIR)\lib\psdk\nddeapi.lib  + >> b32.bc
   echo $(BCDIR)\lib\psdk\iphlpapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\msimg32.lib  + >> b32.bc
   echo $(BCDIR)\lib\psdk\psapi.lib    + >> b32.bc
   echo $(BCDIR)\lib\psdk\rasapi32.lib,  >> b32.bc
 
   IF EXIST TESTBRW3.res  echo TESTBRW3.res   >> b32.bc
      $(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc

#  IF EXIST WBROWSE.res echo WBROWSE.res >> b32.bc
#     $(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
 
#   del b32.bc
 
.PRG.OBJ:
  $(HDIRL)\bin\harbour $< /L /N /W /Oobj\ /I$(FWDIR)\include;$(HDIRL)\include
  $(BCDIR)\bin\bcc32 -c -tWM -I$(HDIRL)\include -oobj\$& obj\$&.c
 
.C.OBJ:
  echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
  echo -I$(HDIRL)\include;$(FWDIR)\include >> tmp
  $(BCDIR)\bin\bcc32 -oobj\$& @tmp $&.c
 
  del tmp
 
TESTBRW3.res : TESTBRW3.rc
  $(BCDIR)\bin\brc32.exe -r TESTBRW3.rc
 



Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Sun Sep 28, 2014 6:10 pm
by goosfancito
Esoty haciendo una app simple que me genere este .mak

una pregunta:
en que parte sumo las .lib como ser tdolphin.lib,
y las dll?

gracias.

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Sun Sep 28, 2014 6:37 pm
by cnavarro
En el .bat buildh.bat del subdirectorio samples de Fwh, aparece un buen ejemplo de lo que preguntas ( las librerias TDolphin, aparecen comentadas )

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Sun Sep 28, 2014 7:11 pm
by goosfancito
cnavarro wrote:En el .bat buildh.bat del subdirectorio samples de Fwh, aparece un buen ejemplo de lo que preguntas ( las librerias TDolphin, aparecen comentadas )


ok.
gracias

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Sun Sep 28, 2014 7:17 pm
by goosfancito
hola de nuevo.

donde hay info de los parametros que se pueden incluir en un .mak?
necesito saberlo para ver si puedo eliminar estas lineas:

Code: Select all  Expand view
#change these paths as needed
.path.OBJ = .\obj
.path.PRG = .\
.path.CH  = $(FWDIR)\include;$(HBDIR)\include
.path.C   = .\
.path.rc  = .\



y poner los .prg directamente asi:

Code: Select all  Expand view
PRG =     \
C:\EJEMPLO\1.PRG
C:\EJEMPLO\2.PRG
C:\EJEMPLO\3.PRG
 


GRACIAS.

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Sun Sep 28, 2014 7:30 pm
by cnavarro
goosfancito wrote:hola de nuevo.

donde hay info de los parametros que se pueden incluir en un .mak?
necesito saberlo para ver si puedo eliminar estas lineas:

Code: Select all  Expand view
#change these paths as needed
.path.OBJ = .\obj
.path.PRG = .\
.path.CH  = $(FWDIR)\include;$(HBDIR)\include
.path.C   = .\
.path.rc  = .\


GRACIAS.


No deberías borrarlos, es más, ahí puedes definir la carpeta donde irán los ficheros producidos o tus sources y rcs para no tener que incluir los paths

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Sun Sep 28, 2014 8:46 pm
by goosfancito
Pero me fuerza a que los sources esten en el mismo directorio,
y si necesito que utilice un source que esta en otro directorio?

tenes skype? farameo si podes gracias.

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Sun Sep 28, 2014 9:06 pm
by cnavarro
Comenta esta linea
#.path.PRG = .\

pon los ficheros que necesitas con sus paths y pruébalo

o inténtalo asi
.path.PRG = c;

y los ficheros los defines asi
\MIPATH\MIFICHERO.PRG

No uso Skype, lo siento, a ver si me hago una cuenta

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Mon Sep 29, 2014 2:42 pm
by goosfancito
Puedo incluir un .res en vez de un .rc?
podrian explicarme como?
gracias.

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Mon Sep 29, 2014 3:01 pm
by cnavarro
Aunque no me ha surgido nunca, prueba asi
one.exe : $(OBJS) one.res otro.res

En el que otro.res es otro fichero que quieres añadir
Esto es si lo tienes creado y no es el de la aplicacion

Por otra parte:
Si es el de la aplicacion que ya lo tienes creado
one.exe : $(OBJS) one.res


y elimina del .mak

one.res : one.rc
$(BCDIR)\bin\brc32.exe -r one.rc

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Mon Sep 29, 2014 3:13 pm
by goosfancito
gracias.
Es que estoy haceindo una app practica para generar ese .mak y .bat
y por eso tantas preguntas ya que nunca utilice un .mak.

Hasta ahora va funcionando pero veo que tengo algunos errores al crear el script,
una vez que tenga armado bien lo subo para poder compartirlo y que puedan ayudar con las modificaciones.
Esto por ahora es para xharbour no puedo para harbour porque no tengo instalado harbour y por ende no puedo chequear que
el script funcione.

http://1drv.ms/1CAPNwg

gracias.

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Mon Sep 29, 2014 3:39 pm
by cnavarro
Hace mucho, mucho tiempo que no uso XHarbour ( sólo lo probé cuando migré a 32 bits )
Anímate, y cambia, es mi consejo
Es un dolor de muelas durante un par de dias, y luego coser y cantar

Re: makefile de Borland genérico para múltiples PRGs

PostPosted: Tue Sep 30, 2014 12:49 pm
by goosfancito
Karina.
Tu script me tira este error:

Fatal: Too many MAP file names: Z:\xh\fwh\lib\FiveHC.lib

solo he cambiado los nombres de mi .prg.

Podes darme una mano?
gracias.