dobfivewin wrote:Como me aconsejan realizar la compilación...
Ejecuto BUILDX "NOMBRE de PROGRAMA INICIAL" donde está el menú principal, pero no me compila los demas prg... Además tengo varios PRG comunes para todos mis sistemas.
Yo estaba usando RMAKE.
muchas gracias
David Barrio
Argentina
![Laughing :lol:](./images/smilies/icon_lol.gif)
Yo lo hago con MAKE de Borland C con un fichero BAT, otro RMK, otro RC y otro ICO.
Si miras el RMK veras que especifico donde está HARBOUR, Borland C, FiveWin y mi directorio de trabajo; además uso los siguientes directorios:
c:\mio\desarrol\treball\Ampa0704\C
c:\mio\desarrol\treball\Ampa0704\EXE
c:\mio\desarrol\treball\Ampa0704\include
c:\mio\desarrol\treball\Ampa0704\lib
c:\mio\desarrol\treball\Ampa0704\PRG
c:\mio\desarrol\treball\Ampa0704\PPO
c:\mio\desarrol\treball\Ampa0704\OBJ
========
Fichero BAT
========
echo on
c:\mio\desarrol\bcc55\bin\make -fampa32.rmk
pause
==========
Fin fichero BAT
==========
================
Fichero RMK AMPA32.rmk
================
#Borland make sample, (c) FiveTech Software 2005
HBDIR=c:\mio\desarrol\harbour_0803
BCDIR=c:\mio\desarrol\bcc55
FWDIR=c:\mio\desarrol\fwh_0803
TREBALL=c:\mio\desarrol\treball\Ampa0704
#change these paths as needed y los de arriba también.
.path.PRG = $(TREBALL)\prg
.path.OBJ = $(TREBALL)\obj
.path.PPO = $(TREBALL)\ppo
.path.CH = $(TREBALL)\include;$(TREBALL)\screen;$(FWDIR)\include;$(HBDIR)\include
.path.C = $(TREBALL)\c
.path.rc = .\
#important: Use Uppercase for filenames extensions, in the next two rules!
#FITXERS QUE SERAN COMPILATS AMB HARBOUR.
#========================================
PRG = \
Ampa32.PRG \
AcercaDe.PRG \
Arrays.PRG \
ASetBase.PRG \
Autresiz.PRG \
Bd.PRG \
BorrTemp.PRG \
BrowDbf.PRG \
BrowTDbf.PRG \
Contar.PRG \
Dbf.PRG \
Error.PRG \
EstrArra.PRG \
Filtro.PRG \
INFOFILT.PRG \
Fonts.PRG \
Identifi.PRG \
Index00.PRG \
Iniini.PRG \
Lib00.PRG \
MenuMain.PRG \
Mnda.PRG \
Modifi01.PRG \
Modifi02.PRG \
NumCatEu.PRG \
Orden.PRG \
Sset.PRG \
Traza.PRG \
Xmlb.PRG \
ChangGet.PRG \
Close.PRG \
FileFunc.PRG \
lGetxxxx.PRG \
Manten.PRG \
SVARIA02.PRG \
SVARIA03.PRG \
Uldiames.PRG \
Wnd.PRG \
TFileXLS.PRG \
XLSError.PRG \
XLSFunc.PRG \
DSay.PRG \
J02GET01.PRG \
J02GETMN.PRG \
J02LISMN.PRG \
J02SAYMN.PRG \
FWDSAY.PRG \
FWDCHECK.PRG \
FWDRadio.PRG \
FWDRadi2.PRG \
FWDRadme.PRG \
TfBlat.PRG \
TSmtp.PRG \
TSOCKET.PRG \
ccc.PRG \
MatDigit.PRG \
ISBN.PRG \
GetCalc.PRG \
DatAmp01.PRG \
Convert.PRG \
GETEXCEL.PRG \
DBFXLS00.PRG \
DBFXLS10.PRG \
DBFXLS20.PRG \
DBFXLS30.PRG \
DBFXLS40.PRG \
DBFXLS50.PRG \
famili01.PRG \
famili10.PRG \
exfami01.PRG \
domici01.PRG \
exdomi01.PRG \
exreco01.PRG \
literal.PRG \
RefeAuto.PRG \
RebuAuto.PRG \
mru.PRG \
DATCUR01.PRG \
DatLli01.PRG \
rellal01.PRG \
PARES_01.PRG \
EXPARE01.PRG \
ALUMNE01.PRG \
EXALUM01.PRG \
CONCEP01.PRG \
RELCON01.PRG \
REMFAC01.PRG \
FACCON01.PRG \
FACPRO01.PRG \
SIMULA01.PRG \
GENFIT00.PRG \
ADRECO01.PRG \
AGETRECO.PRG \
CANVCURS.PRG \
ToMail01.PRG \
WEBBANC.PRG \
Provblat.PRG \
Proves.PRG \
TDBFSERV.PRG \
Tdbf.PRG \
TField.PRG \
TDBFINDE.PRG \
TRelatio.PRG \
TFilter.PRG \
TDict.PRG \
TDbMove.PRG \
TDbArray.PRG \
TMaster.PRG \
TDetail.PRG \
TUtil.PRG \
TIDXUTIL.PRG \
TMESSAGE.PRG \
BANNER.PRG \
BARLIB.PRG \
CODABAR.PRG \
CODE3DE9.PRG \
CODE128.PRG \
EAN13.PRG \
GO_CODE.PRG \
INT25.PRG \
IMPRCOBA.PRG \
TIMPCOBA.PRG \
TIMPRIME.PRG \
UTILPRN.PRG \
WINDOW.PRG \
TGET.PRG
# para codigo C deben usarse las siguientes líneas
C = \
HBFORCE.C
#two.C
PROJECT : Ampa32.exe
Ampa32.exe : $(PRG:.PRG=.OBJ) $(C:.C=.OBJ) Ampa32.res
echo off
REM FITXERS QUE HAN SIGUT COMPILATS AMB HARBOUR i que en lincaran a l'aplicació.
REM ============================================================================
REM FITXERS d'arquitectura.
REM =======================
echo $(BCDIR)\bin\c0w32.obj + > b32.bc
echo $(TREBALL)\obj\Ampa32.obj + >> b32.bc
echo $(TREBALL)\obj\AcercaDe.obj + >> b32.bc
echo $(TREBALL)\obj\Arrays.obj + >> b32.bc
echo $(TREBALL)\obj\ASetBase.obj + >> b32.bc
echo $(TREBALL)\obj\Autresiz.obj + >> b32.bc
echo $(TREBALL)\obj\Bd.obj + >> b32.bc
echo $(TREBALL)\obj\BorrTemp.obj + >> b32.bc
echo $(TREBALL)\obj\BrowDbf.obj + >> b32.bc
echo $(TREBALL)\obj\BrowTDbf.obj + >> b32.bc
echo $(TREBALL)\obj\ChangGet.obj + >> b32.bc
echo $(TREBALL)\obj\Close.obj + >> b32.bc
echo $(TREBALL)\obj\Contar.obj + >> b32.bc
echo $(TREBALL)\obj\Dbf.obj + >> b32.bc
echo $(TREBALL)\obj\DSay.obj + >> b32.bc
echo $(TREBALL)\obj\Error.obj + >> b32.bc
echo $(TREBALL)\obj\EstrArra.obj + >> b32.bc
echo $(TREBALL)\obj\FileFunc.obj + >> b32.bc
echo $(TREBALL)\obj\Filtro.obj + >> b32.bc
echo $(TREBALL)\obj\InfoFilt.obj + >> b32.bc
echo $(TREBALL)\obj\Fonts.obj + >> b32.bc
echo $(TREBALL)\obj\FWDCHECK.obj + >> b32.bc
echo $(TREBALL)\obj\FWDSAY.obj + >> b32.bc
echo $(TREBALL)\obj\FWDRadio.obj + >> b32.bc
echo $(TREBALL)\obj\FWDRadi2.obj + >> b32.bc
echo $(TREBALL)\obj\FWDRadme.obj + >> b32.bc
echo $(TREBALL)\obj\Tfblat.obj + >> b32.bc
echo $(TREBALL)\obj\TSmtp.obj + >> b32.bc
echo $(TREBALL)\obj\TSOCKET.obj + >> b32.bc
echo $(TREBALL)\obj\ccc.obj + >> b32.bc
echo $(TREBALL)\obj\MatDigit.obj + >> b32.bc
echo $(TREBALL)\obj\isbn.obj + >> b32.bc
echo $(TREBALL)\obj\GetCalc.obj + >> b32.bc
REM echo $(TREBALL)\obj\TEXCELS.obj + >> b32.bc
echo $(TREBALL)\obj\Identifi.obj + >> b32.bc
echo $(TREBALL)\obj\Index00.obj + >> b32.bc
echo $(TREBALL)\obj\Iniini.obj + >> b32.bc
echo $(TREBALL)\obj\J02GET01.obj + >> b32.bc
echo $(TREBALL)\obj\J02GETMN.obj + >> b32.bc
echo $(TREBALL)\obj\J02LISMN.obj + >> b32.bc
echo $(TREBALL)\obj\J02SAYMN.obj + >> b32.bc
echo $(TREBALL)\obj\lGetxxxx.obj + >> b32.bc
echo $(TREBALL)\obj\Lib00.obj + >> b32.bc
echo $(TREBALL)\obj\Manten.obj + >> b32.bc
echo $(TREBALL)\obj\MenuMain.obj + >> b32.bc
echo $(TREBALL)\obj\Mnda.obj + >> b32.bc
echo $(TREBALL)\obj\Modifi01.obj + >> b32.bc
echo $(TREBALL)\obj\Modifi02.obj + >> b32.bc
echo $(TREBALL)\obj\NumCatEu.obj + >> b32.bc
echo $(TREBALL)\obj\Orden.obj + >> b32.bc
REM echo $(TREBALL)\obj\SayRef.obj + >> b32.bc
echo $(TREBALL)\obj\Sset.obj + >> b32.bc
echo $(TREBALL)\obj\SVARIA02.obj + >> b32.bc
echo $(TREBALL)\obj\SVARIA03.obj + >> b32.bc
echo $(TREBALL)\obj\Traza.obj + >> b32.bc
echo $(TREBALL)\obj\TUtil.obj + >> b32.bc
echo $(TREBALL)\obj\Uldiames.obj + >> b32.bc
echo $(TREBALL)\obj\Wnd.obj + >> b32.bc
echo $(TREBALL)\obj\Xmlb.obj + >> b32.bc
REM FITXERS de TDBF afegits per haver sofert modificacions/millores.
REM ================================================================
echo $(TREBALL)\obj\HbForce.obj + >> b32.bc
echo $(TREBALL)\obj\TDbfServ.obj + >> b32.bc
echo $(TREBALL)\obj\Tdbf.obj + >> b32.bc
echo $(TREBALL)\obj\TField.obj + >> b32.bc
echo $(TREBALL)\obj\TDBFinde.obj + >> b32.bc
echo $(TREBALL)\obj\TRELATIO.obj + >> b32.bc
echo $(TREBALL)\obj\TFilter.obj + >> b32.bc
echo $(TREBALL)\obj\TDict.obj + >> b32.bc
echo $(TREBALL)\obj\TDbMove.obj + >> b32.bc
echo $(TREBALL)\obj\TDbArray.obj + >> b32.bc
echo $(TREBALL)\obj\TMaster.obj + >> b32.bc
echo $(TREBALL)\obj\TDetail.obj + >> b32.bc
echo $(TREBALL)\obj\TUTIL.obj + >> b32.bc
echo $(TREBALL)\obj\TIDXUTIL.obj + >> b32.bc
echo $(TREBALL)\obj\TMESSAGE.obj + >> b32.bc
REM FITXERS de FileXls afegits per poder crear fitxers d'Excel.
REM ===========================================================
echo $(TREBALL)\obj\TFileXLS.obj + >> b32.bc
echo $(TREBALL)\obj\XLSError.obj + >> b32.bc
echo $(TREBALL)\obj\XLSFunc.obj + >> b32.bc
REM FITXERS de BarLib afegits per poder crear codis de barres.
REM ==========================================================
echo $(TREBALL)\obj\BANNER.obj + >> b32.bc
echo $(TREBALL)\obj\BARLIB.obj + >> b32.bc
echo $(TREBALL)\obj\CODABAR.obj + >> b32.bc
echo $(TREBALL)\obj\CODE3DE9.obj + >> b32.bc
echo $(TREBALL)\obj\CODE128.obj + >> b32.bc
echo $(TREBALL)\obj\EAN13.obj + >> b32.bc
echo $(TREBALL)\obj\GO_CODE.obj + >> b32.bc
echo $(TREBALL)\obj\INT25.obj + >> b32.bc
REM FITXERS de UTILPRN.
REM ===================
echo $(TREBALL)\obj\TIMPRIME.obj + >> b32.bc
echo $(TREBALL)\obj\UTILPRN.obj + >> b32.bc
REM FITXERS de FiveWin afegits per haver sofert modificacions/millores.
REM ===================================================================
echo $(TREBALL)\obj\WINDOW.obj + >> b32.bc
echo $(TREBALL)\obj\TGET.obj + >> b32.bc
echo $(TREBALL)\obj\mru.obj + >> b32.bc
REM FITXERS no d'arquitectura de l'aplicació.
REM =========================================
echo $(TREBALL)\obj\DatAmp01.obj + >> b32.bc
echo $(TREBALL)\obj\Convert.obj + >> b32.bc
echo $(TREBALL)\obj\GetExcel.obj + >> b32.bc
echo $(TREBALL)\obj\DbfXls00.obj + >> b32.bc
echo $(TREBALL)\obj\DbfXls10.obj + >> b32.bc
echo $(TREBALL)\obj\DbfXls20.obj + >> b32.bc
echo $(TREBALL)\obj\DbfXls30.obj + >> b32.bc
echo $(TREBALL)\obj\DbfXls40.obj + >> b32.bc
echo $(TREBALL)\obj\DbfXls50.obj + >> b32.bc
echo $(TREBALL)\obj\famili01.obj + >> b32.bc
echo $(TREBALL)\obj\famili10.obj + >> b32.bc
echo $(TREBALL)\obj\exfami01.obj + >> b32.bc
echo $(TREBALL)\obj\domici01.obj + >> b32.bc
echo $(TREBALL)\obj\exdomi01.obj + >> b32.bc
echo $(TREBALL)\obj\exreco01.obj + >> b32.bc
echo $(TREBALL)\obj\literal.obj + >> b32.bc
echo $(TREBALL)\obj\RefeAuto.obj + >> b32.bc
echo $(TREBALL)\obj\RebuAuto.obj + >> b32.bc
echo $(TREBALL)\obj\DATCUR01.obj + >> b32.bc
echo $(TREBALL)\obj\DATLLI01.obj + >> b32.bc
echo $(TREBALL)\obj\RELLAL01.obj + >> b32.bc
rem echo $(TREBALL)\obj\RELLAL0x.obj + >> b32.bc
echo $(TREBALL)\obj\PARES_01.obj + >> b32.bc
echo $(TREBALL)\obj\EXPARE01.obj + >> b32.bc
echo $(TREBALL)\obj\ALUMNE01.obj + >> b32.bc
echo $(TREBALL)\obj\EXALUM01.obj + >> b32.bc
echo $(TREBALL)\obj\CONCEP01.obj + >> b32.bc
echo $(TREBALL)\obj\RELCON01.obj + >> b32.bc
echo $(TREBALL)\obj\REMFAC01.obj + >> b32.bc
echo $(TREBALL)\obj\FACCON01.obj + >> b32.bc
echo $(TREBALL)\obj\FACPRO01.obj + >> b32.bc
echo $(TREBALL)\obj\SIMULA01.obj + >> b32.bc
echo $(TREBALL)\obj\GENFIT00.obj + >> b32.bc
echo $(TREBALL)\obj\ADRECO01.obj + >> b32.bc
echo $(TREBALL)\obj\AGETRECO.obj + >> b32.bc
echo $(TREBALL)\obj\CANVCURS.obj + >> b32.bc
echo $(TREBALL)\obj\TOMAIL01.obj + >> b32.bc
echo $(TREBALL)\obj\WEBBANC.obj + >> b32.bc
echo $(TREBALL)\obj\IMPRCOBA.obj + >> b32.bc
echo $(TREBALL)\obj\TIMPCOBA.obj + >> b32.bc
echo $(TREBALL)\obj\provblat.obj + >> b32.bc
echo $(TREBALL)\obj\proves.obj, + >> b32.bc
echo $(TREBALL)\exe\Ampa32.exe, + >> b32.bc
echo Ampa32.map, + >> b32.bc
REM FITXERS de FiveWin.
REM ===================
echo $(FWDIR)\lib\FiveH.lib $(FWDIR)\lib\FiveHC.lib + >> b32.bc
REM FITXERS de Harbour.
REM ===================
echo $(HBDIR)\lib\rtl.lib + >> b32.bc
echo $(HBDIR)\lib\vm.lib + >> b32.bc
rem echo $(HBDIR)\lib\gtwin.lib + >> b32.bc
echo $(HBDIR)\lib\gtgui.lib + >> b32.bc
echo $(HBDIR)\lib\lang.lib + >> b32.bc
echo $(HBDIR)\lib\macro.lib + >> b32.bc
echo $(HBDIR)\lib\rdd.lib + >> b32.bc
echo $(HBDIR)\lib\dbfntx.lib + >> b32.bc
echo $(HBDIR)\lib\dbfcdx.lib + >> b32.bc
echo $(HBDIR)\lib\dbffpt.lib + >> b32.bc
echo $(HBDIR)\lib\
hbsix.lib + >> b32.bc
echo $(HBDIR)\lib\debug.lib + >> b32.bc
echo $(HBDIR)\lib\common.lib + >> b32.bc
echo $(HBDIR)\lib\pp.lib + >> b32.bc
echo $(HBDIR)\lib\codepage.lib + >> b32.bc
rem Uncomment these two lines to use Advantage RDD
REM echo $(HBDIR)\lib\rddads.lib + >> b32.bc
REM echo $(HBDIR)\lib\Ace32.lib + >> b32.bc
echo $(HBDIR)\lib\hbwin32.lib + >> b32.bc
REM FITXERS de Borland.
REM ===================
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\rasapi32.lib, >> b32.bc
IF EXIST Ampa32.res echo Ampa32.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$(TREBALL)\include;$(TREBALL)\screen;$(FWDIR)\include;$(HBDIR)\include
# $(HBDIR)\bin\harbour $< /L /N /W /P$(TREBALL)\ppo\ /B /O$(TREBALL)\obj\ /I$(TREBALL)\include;$(TREBALL)\screen;$(FWDIR)\include;$(HBDIR)\include
# /I Indica los includes a añadir según necesidad de los PRGs.
# /L No incluye el número de líneas en los obj
# /N Suprime la definici¢n autom tica de un procedimiento con
# el mismo nombre que el fichero (.prg).
# /O Crea y ubica ficheros OBJ.
# /P Crea y ubica ficheros PPO.
# /W Esta opci¢n genera mensajes de advertencia cuando se detectan
# referencias a variables no declaradas o sin alias (ambiguas).
# /W2 Esta opci¢n genera mensajes de advertencia cuando se detectan
# referencias a variables no usadas.
# /Z Esta opci¢n elimina la optimizaci¢n debida a la evaluaci¢n abreviada
# para los operadores l¢gicos .AND. y .OR. Su objetivo es ayudar a aislar
# un c¢digo que depende del comportamiento de versiones anteriores de
# CA-Clipper.
$(HBDIR)\bin\harbour $< /N /W /P$(TREBALL)\ppo\ /O$(TREBALL)\obj\ /I$(TREBALL)\include;$(TREBALL)\screen;$(FWDIR)\include;$(HBDIR)\include >> $(TREBALL)\compila.txt
# $(BCDIR)\bin\bcc32 -c -tWM -I$(HBDIR)\include -oobj\$& obj\$&.c
$(BCDIR)\bin\bcc32 -c -tWM -I$(HBDIR)\include -o$(TREBALL)\obj\$& $(TREBALL)\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
$(BCDIR)\bin\bcc32 -o$(TREBALL)\obj\$& @tmp $(TREBALL)\C\$&.c
del tmp
Ampa32.res : Ampa32.rc
$(BCDIR)\bin\brc32.exe -r Ampa32.rc
# $(BCDIR)\bin\brc32.exe -r
==========
Fin fichero RMK
==========
==============
Fichero RC AMPA32.rc
==============
// place your resources here
1 ICON favorite.ico
========
Fin fihero RC
========
Por cierto en el fichero RMK son vitales las comas (,) y los comentarios son precedidos por #.
En el fichero RC puedes especificar un icono para tu EXE (en mi caso favorite.ico).
Saludos
Carlos G.