makefile de Borland genérico para múltiples PRGs

makefile de Borland genérico para múltiples PRGs

Postby Antonio Linares » Wed Sep 17, 2014 1:27 pm

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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby cnavarro » Wed Sep 17, 2014 1:34 pm

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?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby karinha » Wed Sep 17, 2014 2:25 pm

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
 


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7352
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

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

Postby goosfancito » Sun Sep 28, 2014 6:10 pm

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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

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

Postby cnavarro » Sun Sep 28, 2014 6:37 pm

En el .bat buildh.bat del subdirectorio samples de Fwh, aparece un buen ejemplo de lo que preguntas ( las librerias TDolphin, aparecen comentadas )
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby goosfancito » Sun Sep 28, 2014 7:11 pm

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
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

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

Postby goosfancito » Sun Sep 28, 2014 7:17 pm

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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

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

Postby cnavarro » Sun Sep 28, 2014 7:30 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby goosfancito » Sun Sep 28, 2014 8:46 pm

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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

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

Postby cnavarro » Sun Sep 28, 2014 9:06 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby goosfancito » Mon Sep 29, 2014 2:42 pm

Puedo incluir un .res en vez de un .rc?
podrian explicarme como?
gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

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

Postby cnavarro » Mon Sep 29, 2014 3:01 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby goosfancito » Mon Sep 29, 2014 3:13 pm

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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

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

Postby cnavarro » Mon Sep 29, 2014 3:39 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby goosfancito » Tue Sep 30, 2014 12:49 pm

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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 42 guests