makefile de Borland genérico para múltiples PRGs

User avatar
Antonio Linares
Site Admin
Posts: 42660
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 69 times
Been thanked: 96 times
Contact:

makefile de Borland genérico para múltiples PRGs

Post by Antonio Linares »

go.bat

Code: Select all | Expand

if not exist obj md obj
c:\bcc582\bin\make -fone.mak


one.mak

Code: Select all | Expand

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
cnavarro
Posts: 6572
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 4 times
Been thanked: 6 times

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

Post 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


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
karinha
Posts: 7963
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 5 times
Contact:

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

Post by karinha »

Usando xHarbour:

Code: Select all | Expand


#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
goosfancito
Posts: 1956
Joined: Fri Oct 07, 2005 7:08 pm

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

Post 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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
cnavarro
Posts: 6572
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 4 times
Been thanked: 6 times

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

Post 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 )
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
goosfancito
Posts: 1956
Joined: Fri Oct 07, 2005 7:08 pm

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

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

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

Post 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

#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

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
cnavarro
Posts: 6572
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 4 times
Been thanked: 6 times

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

Post 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

#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
goosfancito
Posts: 1956
Joined: Fri Oct 07, 2005 7:08 pm

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

Post 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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
cnavarro
Posts: 6572
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 4 times
Been thanked: 6 times

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

Post 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
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
goosfancito
Posts: 1956
Joined: Fri Oct 07, 2005 7:08 pm

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

Post by goosfancito »

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
cnavarro
Posts: 6572
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 4 times
Been thanked: 6 times

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

Post 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
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
goosfancito
Posts: 1956
Joined: Fri Oct 07, 2005 7:08 pm

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

Post 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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
cnavarro
Posts: 6572
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 4 times
Been thanked: 6 times

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

Post 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
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
goosfancito
Posts: 1956
Joined: Fri Oct 07, 2005 7:08 pm

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

Post 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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Post Reply