como compilar Varios PRG

Post Reply
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

como compilar Varios PRG

Post by jgayoso »

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:
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: como compilar Varios PRG

Post by Antonio Linares »

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

Re: como compilar Varios PRG

Post by jgayoso »

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.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: como compilar Varios PRG

Post by Antonio Linares »

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

Re: como compilar Varios PRG

Post by juan carlos bellucci »

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.
Post Reply