FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper como compilar Varios PRG
Posts: 170
Joined: Sat Aug 07, 2010 11:36 PM
como compilar Varios PRG
Posted: Mon Aug 09, 2010 12:06 PM

Hola, tengo un sistema en Clipper que quiero llevar a FiveWin tengo instalado todo, funcionando. Los ejemplos los puedo compilar y funcionan. El problema que tengo es que en ninguna parte sale como compilar y linkear varios PRGs (un sistema entero). Si alguien me puede ayudar con un ejemplo, suponiendo que tengo los siguientes programas menu.prg, pro1.prg prog2.prg, prog3.prg, prog4.prg. Quedo a la espera de vuestra información. :cry:

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: como compilar Varios PRG
Posted: Tue Aug 10, 2010 07:07 AM

Jgayoso,

Tienes dos opciones básicas: una es usar un fichero BAT, que sería el build.bat proporcionado con FiveWin ampliado para soportar más de un PRG. Lo que se hace es compilar uno a uno cada PRG y luego al enlazar se especifican todos los OBJs. La desventaja de este sistema es que siempre compilas todo y eso puede ser algo lento.

Otra opción es usar un fichero "make". La ventaja es que solo se compilará el PRG que hayas modificado, los demás no. Y asi el proceso es más rápido. Tienes un ejemplo en la carpeta makes de FiveWin.

Finalmente existen programas de ayuda que lo hacen todo de forma automatica como xMate. Busca en estos foros por xMate y encontraras bastante información.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 170
Joined: Sat Aug 07, 2010 11:36 PM
Re: como compilar Varios PRG
Posted: Tue Aug 10, 2010 07:31 PM

Bien maestro, me ha resultado todo hasta el momento, no he llegado a puerto de generar el .EXE, pero voy bien encamidado, (creo). Ya estoy compilando mi sistema en xMate y todo bien.

Voy a lanzar eso si otra pregunta como convertir mis .OBJ de 16 a .32 bits.

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: como compilar Varios PRG
Posted: Thu Sep 02, 2010 03:54 PM

No puedes convertir un OBJ de 16 bits a 32 bits, lo que has de hacer es compilar el fichero fuente original, bien sea un PRG ó un fichero en C, con Harbour/xHarbour y un compilador de C de 32 bits como el bcc32.exe y asi obtendrás tus OBJs en 32 bits :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 115
Joined: Sat Mar 07, 2009 09:36 PM
Re: como compilar Varios PRG
Posted: Wed Oct 26, 2011 10:40 AM

Hola....
Primero un archivo.bat

que puede ser así

SET Path=C:\xHARBOUR\BIN;C:\BCC\BIN
SET LIB=C:\xHARBOUR\LIB;C:\BCC\LIB;C:\FW\LIB
SET INCLUDE=C:\xHARBOUR\INCLUDE;C:\BCC\INCLUDE;C:\FW\INCLUDE
SET OBJ=C:\BCC\LIB

if not exist obj md obj
c:\bcc\bin\make -flinkea.rmk

///////////////////////////////////////////////////////
// luego en otro archivo //
///////////////////////////////////////////////////////
// linkea.rmk
///////////////////////////////////////////////////////

SET Path=C:\xHARBOUR\BIN;C:\BCC\BIN
SET LIB=C:\xHARBOUR\LIB;C:\BCC\LIB;C:\FW\LIB
SET INCLUDE=C:\xHARBOUR\INCLUDE;C:\BCC\INCLUDE;C:\FW\INCLUDE
SET OBJ=C:\BCC\LIB

HBDIR=c:\dharbour

BCDIR=c:\bcc
FWDIR=c:\fwh

REM if "%FWDIR%" == "" set FWDIR=c:\fw
REM if "%XHBDIR%" == "" set XHBDIR=c:\xHarbour

set GT=gtgui

change these paths as needed

.path.PRG = .\prg
.path.OBJ = .\obj
.path.CH = $(FWDIR)\include;$(HBDIR)\include;$(BCDIR)\include
.path.C = ..c
.path.rc = .\

importante: Use Letras Mayusculas Para losArchivos y Sus extensiones, en las siguiente dos cuerpos!

PRG = \
Personal.PRG \
Perso00.PRG

C = \

PROJECT : Personal.exe

Personal.exe : $(PRG:.PRG=.OBJ) $(C:.C=.OBJ) Personal.res
echo off
echo $(BCDIR)\bin\c0w32.obj + > b32.bc
echo obj\Personal.obj + >> b32.bc
echo obj\Perso00.obj, + >> b32.bc
echo Personal.exe, + >> b32.bc
echo Personal.map, + >> b32.bc

echo c:\fw\lib\Fivehx.lib c:\fw\lib\FiveHC.lib + >> b32.bc
Rem nuevo

echo c:\dharbour\lib\rtl.lib + >> b32.bc
echo c:\dharbour\lib\vm.lib + >> b32.bc
echo c:\dharbour\lib\gtgui.lib + >> b32.bc
echo c:\dharbour\lib\lang.lib + >> b32.bc
echo c:\dharbour\lib\macro.lib + >> b32.bc
echo c:\dharbour\lib\rdd.lib + >> b32.bc
echo c:\dharbour\lib\dbfntx.lib + >> b32.bc
echo c:\dharbour\lib\dbfcdx.lib + >> b32.bc
echo c:\dharbour\lib\dbffpt.lib + >> b32.bc
echo c:\dharbour\lib\hbsix.lib + >> b32.bc
echo c:\dharbour\lib\debug.lib + >> b32.bc
echo c:\dharbour\lib\common.lib + >> b32.bc
echo c:\dharbour\lib\pp.lib + >> b32.bc
echo c:\dharbour\lib\pcrepos.lib + >> b32.bc
echo c:\dharbour\lib\ct.lib + >> b32.bc
echo c:\dharbour\lib\zlib.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo %hdir%\lib\rddads.lib + >> b32.bc
rem echo %hdir%\lib\Ace32.lib + >> b32.bc

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

rem --------------------------------------

IF EXIST Personal.res echo Personal.res >> b32.bc

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

.PRG.OBJ:
$(HBDIR)\bin\harbour $< /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

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

copialo tal cual y anda agregando todos los prg de la misma forma que aqui esta escrito, siempre prestando atencion en la coma que solo va en el ultimo xxxx.obj. espero haberte sido util.

Nota Ejemplo tomado de Fivetech solo se agregaron algunas costas.

Continue the discussion