FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour makefile de Borland genérico para múltiples PRGs
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
makefile de Borland genérico para múltiples PRGs
Posted: Wed Sep 17, 2014 01:27 PM
go.bat

Code (fw): Select all Collapse
if not exist obj md obj
c:\bcc582\bin\make -fone.mak


one.mak

Code (fw): Select all Collapse
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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Wed Sep 17, 2014 01:34 PM
Antonio, si hubiera posibilidad de incluir en el .mak una directiva (#include "mis.prgs") o algo parecido que sustituyera a:

Code (fw): Select all Collapse
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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Wed Sep 17, 2014 02:25 PM
Usando xHarbour:

Code (fw): Select all Collapse
#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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Sun Sep 28, 2014 06: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/
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Sun Sep 28, 2014 06: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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Sun Sep 28, 2014 07: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/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Sun Sep 28, 2014 07: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 (fw): Select all Collapse
#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 (fw): Select all Collapse
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/
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Sun Sep 28, 2014 07: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 (fw): Select all Collapse
#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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Sun Sep 28, 2014 08: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/
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Sun Sep 28, 2014 09: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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Mon Sep 29, 2014 02: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/
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Mon Sep 29, 2014 03: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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Mon Sep 29, 2014 03: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/
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: Mon Sep 29, 2014 03: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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: makefile de Borland genérico para múltiples PRGs
Posted: 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/