Page 1 of 1

Problemas a la hora de linkar/compilar

PostPosted: Wed Apr 11, 2012 11:38 am
by thefull
Buenas
Amigo, tengo este makefile, que llegando a cierto numeros de PRGs, se niega a compilar el BCC 5.82,
por ser demasiados.

Actualmente tengo 228 prgs, y si añado un par más , deja de compilarme.

¿ Tiene alguien solucionado este problema ?

Dejo el mak que uso.

Code: Select all  Expand view

###############################################################################
# Written by Rafa Carmona
###############################################################################

# Make directives ##########################
.autodepend
.swap
.suffixes: .prg .hrb

#-------------------------------------------------------------------------
# Application directories & filenames
# Directorios principales
#-------------------------------------------------------------------------
APP_NAME        = HOT32CON
FIVEWIN_DIR     = \FWH
HARBOUR_DIR    = \harbour3
BORLANDC_DIR    = \BCC582
APP_PRG_DIR     = .
APP_OBJ_DIR     = .\obj
APP_INCLUDE_DIR = \include
APP_EXE_DIR     = .
APP_RES_DIR     = RC

#-------------------------------------------------------------------------
# Rutinas 5
#-------------------------------------------------------------------------
RUTINAS_5  =  \UTILSH.LIB
#-------------------------------------------------------------------------

APP_EXE  = $(APP_EXE_DIR)\$(APP_NAME).exe
APP_RC   = $(APP_RES_DIR)\$(APP_NAME).rc
APP_RES  = $(APP_RES_DIR)\$(APP_NAME).res
APP_MAP  = $(APP_RES_DIR)\$(APP_NAME).map

# Paths for dependent files ###################
.path.prg = $(APP_PRG_DIR)
.path.hrb = $(APP_OBJ_DIR)
.path.o32 = $(APP_OBJ_DIR)

APP_PRG_LIST = \
hotels.prg      \
harbour.prg     \
228 de mas.prg \


# Contruction of the rest dependency lists #########
APP_PRGS = $(APP_PRG_LIST)
APP_HRBS = $(APP_PRG_LIST:.prg=.hrb)
APP_OBJS = $(APP_PRG_LIST:.prg=.o32)

#------------------------------------------
# Fivewin directories
#------------------------------------------
FIVEWIN_INCLUDE_DIR = $(FIVEWIN_DIR)\INCLUDE
FIVEWIN_LIB_DIR     = $(FIVEWIN_DIR)\LIB
FIVE_FIVEH          = $(FIVEWIN_LIB_DIR)\FIVEH.lib
#FIVE_FIVEXH        = $(FIVEWIN_LIB_DIR)\FIVEHX.lib
FIVE_FIVEHC         = $(FIVEWIN_LIB_DIR)\FIVEHC.lib

# Harbour directories & Flags #############
HARBOUR_DIR         = \harbour3
HARBOUR_INCLUDE_DIR = $(HARBOUR_DIR)\include
HARBOUR_EXE_DIR     = $(HARBOUR_DIR)\bin\win\bcc
HARBOUR_LIB_DIR     = $(HARBOUR_DIR)\lib\win\bcc

#HARBOUR_INCLUDE_DIR = $(HARBOUR_DIR)\include
#HARBOUR_EXE_DIR     = $(HARBOUR_DIR)\bin
#HARBOUR_LIB_DIR     = $(HARBOUR_DIR)\lib

# ------------------------------
HARBOUR_FLAGS       = -i$(APP_INCLUDE_DIR);$(HARBOUR_INCLUDE_DIR);$(FIVEWIN_INCLUDE_DIR) -n -w -m -d__HARBOUR__ -DHB_NO_TRACE

# ------------------------------
#Velocidad, crece mucho el ejecutable
# ------------------------------
#HARBOUR_FLAGS       = $( HARBOUR_FLAGS) -DHB_NO_TRACE -l -gc3

# ------------------------------
# Soporte Debug. Penaliza MUCHO la velocidad
# ------------------------------
HARBOUR_FLAGS       = $( HARBOUR_FLAGS) -d_DEBUGVIEW_  -b -d__DEBUG__

# ------------------------------
# Activarlo para Soporte de Profiler, version especial de Harbour
# ------------------------------
#APP_NAME        = test_profile
#HARBOUR_DIR     = \harbour_profile
#HARBOUR_FLAGS   = $( HARBOUR_FLAGS) -dPROFILER


# ------------------------------
# Soporte de OPENSSL
# ------------------------------
#HARBOUR_FLAGS       = $( HARBOUR_FLAGS) -d__OPENSSL__

# ---------------------------------
HARBOUR_EXE      = $(HARBOUR_EXE_DIR)\HARBOUR.EXE

# Harbour Libraries  #########################################################
RTL_LIB    = $(HARBOUR_LIB_DIR)\hbRTL.lib
VM_LIB     = $(HARBOUR_LIB_DIR)\hbVMMT.lib
GTWIN_LIB  = $(HARBOUR_LIB_DIR)\GTWIN.lib
GTGUI_LIB  = $(HARBOUR_LIB_DIR)\GTGUI.lib
GTWVT_LIB  = $(HARBOUR_LIB_DIR)\gtwvt.lib
GTWVG_LIB  = $(HARBOUR_LIB_DIR)\gtwvg.lib
PCREPOS_LIB= $(HARBOUR_LIB_DIR)\hbpcre.LIB
LANG_LIB   = $(HARBOUR_LIB_DIR)\hbLANG.lib
MACRO_LIB  = $(HARBOUR_LIB_DIR)\hbMACRO.lib
RDD_LIB    = $(HARBOUR_LIB_DIR)\hbRDD.lib
DBFNTX_LIB = $(HARBOUR_LIB_DIR)\rddntx.lib
COMMON_LIB = $(HARBOUR_LIB_DIR)\hbCOMMON.lib
PP_LIB     = $(HARBOUR_LIB_DIR)\hbPP.lib
CT_LIB     = $(HARBOUR_LIB_DIR)\hbct.lib
CODEPAGE_LIB  = $(HARBOUR_LIB_DIR)\hbcpage.lib
DEBUG_LIB  = $(HARBOUR_LIB_DIR)\hbdebug.lib
!ifndef PROFILER
OPT_LIB    = $(HARBOUR_LIB_DIR)\optgui.lib
!endif
DBFCDX_LIB = $(HARBOUR_LIB_DIR)\rddcdx.lib
FPT_LIB    = $(HARBOUR_LIB_DIR)\rddfpt.lib
HBSIX_LIB    = $(HARBOUR_LIB_DIR)\HBSIX.lib
ADS_LIB   = $(HARBOUR_LIB_DIR)\rddads.lib
ADS32_LIB = $(HARBOUR_LIB_DIR)\ace32.lib
WIN_LIB    = $(HARBOUR_LIB_DIR)\hbwin.lib
XHB_LIB    = $(HARBOUR_LIB_DIR)\xhb.lib
EXTERN_LIB = $(HARBOUR_LIB_DIR)\hbextern.lib

#Esta libreria, ws2_32.lib, es necesaria para usa HBTIP
TIP_LIB    = $(HARBOUR_LIB_DIR)\hbtip.lib
TIPSSL_LIB = $(HARBOUR_LIB_DIR)\hbtipssl.lib

GTWVT_LIB  = $(HARBOUR_LIB_DIR)\gtwvt.lib
GTWVG_LIB  = $(HARBOUR_LIB_DIR)\gtwvg.lib
HB_MISC_LIB  = $(HARBOUR_LIB_DIR)\hbmisc.lib

#SOPORTE PARA SSL
HBSSL_LIB   = $(HARBOUR_LIB_DIR)\hbssl.lib
HBEAY32_LIB = $(HARBOUR_LIB_DIR)\libeay32.lib
HBSSLEAY32_LIB = $(HARBOUR_LIB_DIR)\ssleay32.lib
HBSSLS_LIB  = $(HARBOUR_LIB_DIR)\hbssls.lib

# Borlanc directories & flags ################################################
BORLANDC_INCLUDE_DIR = $( BORLANDC_DIR )\INCLUDE
BORLANDC_EXE_DIR     = $( BORLANDC_DIR )\BIN
BORLANDC_LIB_DIR     = $( BORLANDC_DIR )\LIB
BORLANDC_COMP_FLAGS  = -c -O2 -I$(HARBOUR_INCLUDE_DIR);$(BORLANDC_INCLUDE_DIR)
BORLANDC_COMP_EXE    = $(BORLANDC_EXE_DIR)\BCC32.EXE

#Este muestra la consola, PARA DEBUG
BORLANDC_LINK_FLAGS  = -Gn -Tpe -s -I$(APP_OBJ_DIR) -x

#Este quita la consola
#BORLANDC_LINK_FLAGS  = -aa -Gn -Tpe -s -I$(APP_OBJ_DIR) -x

BORLANDC_LINK_EXE    = $(BORLANDC_EXE_DIR)\ILINK32.EXE
BORLANDC_RES_EXE     = $(BORLANDC_EXE_DIR)\BRC32.EXE

# Borland libraries & files ##################################################
STARTUP_OBJ  = $(BORLANDC_LIB_DIR)\c0w32.obj
#CW32_LIB = $(BORLANDC_LIB_DIR)\CW32.lib
CW32_LIB = $(BORLANDC_LIB_DIR)\CW32mt.lib
IMPORT32_LIB = $(BORLANDC_LIB_DIR)\IMPORT32.lib

# Dependencies ##################################################
all: $(APP_OBJS) $(APP_HRBS) $(APP_EXE)

# Implicit Rules ##################################################
.prg.hrb:
   $(HARBOUR_EXE) $(HARBOUR_FLAGS) $** -o$@

.hrb.o32:
   $(BORLANDC_COMP_EXE) $(BORLANDC_COMP_FLAGS) -o$@ $**

$(APP_EXE) :: $(APP_OBJS)
   @echo $(STARTUP_OBJ) + > make.tmp
   @echo $( RUTINAS_5 ) + >> make.tmp
   @echo $(**)  , + >> make.tmp
   @echo $(APP_EXE), + >> make.tmp
   @echo $(APP_MAP), + >> make.tmp
# La declaracion de OPT_LIB debe de ser ANTES de la RTL, pero debemos desactivar SI queremos PROFILER
#   @echo $( OPT_LIB ) + >> make.tmp
   @echo $( RUTINAS_5 ) + >> make.tmp
   @echo $( TIPSSL_LIB ) + >> make.tmp
   @echo $( XHB_LIB ) + >> make.tmp
   @echo $( CODEPAGE_LIB ) + >> make.tmp
   @echo $( DEBUG_LIB ) + >> make.tmp
   @echo $( RTL_LIB ) + >> make.tmp
   @echo $( VM_LIB )  + >> make.tmp
   @echo $( HBSSLS_LIB    ) + >> make.tmp
   @echo $( HBSSL_LIB    ) + >> make.tmp
   @echo $( HBSSLEAY32_LIB  ) + >> make.tmp
   @echo $( HBEAY32_LIB  ) + >> make.tmp
   @echo $( EXTERN_LIB   ) + >> make.tmp
   @echo $( WIN_LIB ) + >> make.tmp
   @echo $( GTWVT_LIB ) + >> make.tmp
   @echo $( GTWVG_LIB ) + >> make.tmp
   @echo $( GTWIN_LIB ) + >> make.tmp
   @echo $( GTGUI_LIB ) + >> make.tmp
   @echo $( PCREPOS_LIB ) + >> make.tmp
   @echo $( LANG_LIB ) + >> make.tmp
   @echo $( MACRO_LIB ) + >> make.tmp
   @echo $( RDD_LIB ) + >> make.tmp
   @echo $( DBFNTX_LIB ) + >> make.tmp
   @echo $( HBSIX_LIB) + >> make.tmp
   @echo $( DBFCDX_LIB ) + >> make.tmp
   @echo $( FPT_LIB ) + >> make.tmp
   @echo $( COMMON_LIB ) + >> make.tmp
   @echo $( HB_MISC_LIB ) + >> make.tmp
   @echo $( PP_LIB ) + >> make.tmp
   @echo $( CT_LIB ) + >> make.tmp
   @echo $( DEBUG_LIB ) + >> make.tmp
   @echo $( CW32_LIB ) + >> make.tmp
   @echo $( IMPORT32_LIB ) + >> make.tmp
   @echo $( ADS_LIB ) + >> make.tmp
   @echo $( ADS32_LIB ) + >> make.tmp
   @echo $( FIVE_FIVEH ) + >> make.tmp
   @echo $( FIVE_FIVEHC ) + >> make.tmp
   @echo $(BORLANDC_LIB_DIR)\cw32.lib + >> make.tmp
   @echo $(BORLANDC_LIB_DIR)\import32.lib + >> make.tmp
   @echo $(BORLANDC_LIB_DIR)\psdk\ws2_32.lib + >> make.tmp
   @echo $(BORLANDC_LIB_DIR)\psdk\odbc32.lib + >> make.tmp
   @echo $(BORLANDC_LIB_DIR)\psdk\nddeapi.lib + >> make.tmp
   @echo $(BORLANDC_LIB_DIR)\psdk\iphlpapi.lib + >> make.tmp
   @echo $(BORLANDC_LIB_DIR)\psdk\msimg32.lib + >> make.tmp
   @echo $(BORLANDC_LIB_DIR)\psdk\rasapi32.lib >> make.tmp
   $(BORLANDC_LINK_EXE) $(BORLANDC_LINK_FLAGS) @make.tmp
   @del $(APP_EXE_DIR)\$(APP_NAME).tds
   del make.tmp
 

Re: Problemas a la hora de linkar/compilar

PostPosted: Wed Apr 11, 2012 3:38 pm
by nnicanor
Rafa,

Usas make, HBmake o cualquier otro ?, cual es la linea de comandos ?

Slds

Re: Problemas a la hora de linkar/compilar

PostPosted: Thu Apr 12, 2012 11:40 am
by thefull
No, uso el Make que trae BorlandC

Re: Problemas a la hora de linkar/compilar

PostPosted: Thu Apr 12, 2012 12:02 pm
by hmpaquito
Rafa,

Peaso programa 228 prgs :o !

Yo gasto tambien el make y no he tenido esos problemas, quiza porque no he llegado a los 228 fuentes en el mismo proyecto; lo que yo haria en orden seria lo siguiente:

1º Añadir un .prg con una solo funcion dummy para ver si el problema es realmente del make, que "salta" en cuanto le añade un .prg
2º Buscar una version mas moderna del Make.Exe
3º Descargar tu proyecto de .prgs, creando una .lib con aquellos que menos utilices.

Saludos

Re: Problemas a la hora de linkar/compilar

PostPosted: Thu Apr 12, 2012 1:41 pm
by thefull
Bueno, el problema es el tamaño del buffer.
Si cambio el directorio .\obj a .\o, de momento me sirve.

Creo que va siendo hora de usar el make de Harbour.

Re: Problemas a la hora de linkar/compilar

PostPosted: Thu Apr 12, 2012 2:22 pm
by hmpaquito
Aumenta el tamaño del buffer. ¿ Qué aporta hbmk2 que no tenga ya el make ?

Re: Problemas a la hora de linkar/compilar

PostPosted: Thu Apr 12, 2012 3:08 pm
by FiveWiDi
hmpaquito wrote:Aumenta el tamaño del buffer. ¿ Qué aporta hbmk2 que no tenga ya el make ?



Hola,

perdona... y como se hace eso?

Gracias.

Re: Problemas a la hora de linkar/compilar

PostPosted: Thu Apr 12, 2012 4:28 pm
by hmpaquito
Fivewidi,

Pues no lo sé... sería cuestion de buscar...

Lo que sí que parece es que el problema se produce en el make.tmp, es decir en el ILink.Exe con lo cual el problema persistiría en el hbmk2 de harbour.

Re: Problemas a la hora de linkar/compilar

PostPosted: Thu Apr 12, 2012 4:37 pm
by thefull
Recordé que ya tuve en su día problemas , y lo solucioné
viewtopic.php?f=6&t=10614&start=0

Pero es en esa solución la que estoy ahora con el mismo problema.

Creo que con el de harbour no debería existir el problema, además que esta muy muy currado, aunque
necesito tiempo para averiguar como pasar de un sistema a otro.

Re: Problemas a la hora de linkar/compilar

PostPosted: Thu Apr 12, 2012 5:21 pm
by FranciscoA
Hola Thefull.
No será que esto: @echo $(BORLANDC_LIB_DIR)\psdk\rasapi32.lib >> make.tmp
debería ser así: @echo $(BORLANDC_LIB_DIR)\psdk\rasapi32.lib + >> make.tmp

Prueba, talvez.

Saludos.

Re: Problemas a la hora de linkar/compilar

PostPosted: Fri Apr 13, 2012 7:48 am
by thefull
Gracias , pero no, eso solo marca el final, no tiene influencia.