como compilar Varios PRG

como compilar Varios PRG

Postby jgayoso » 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:
jgayoso
 
Posts: 167
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: como compilar Varios PRG

Postby Antonio Linares » Tue Aug 10, 2010 7: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
User avatar
Antonio Linares
Site Admin
 
Posts: 35250
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: como compilar Varios PRG

Postby jgayoso » Tue Aug 10, 2010 7: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.
jgayoso
 
Posts: 167
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: como compilar Varios PRG

Postby Antonio Linares » Thu Sep 02, 2010 3: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
User avatar
Antonio Linares
Site Admin
 
Posts: 35250
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: como compilar Varios PRG

Postby juan carlos bellucci » 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.
juan carlos bellucci
 
Posts: 115
Joined: Sat Mar 07, 2009 9:36 pm
Location: Argentina


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 1 guest