jvtecheto
Posts: 357 Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain
Post
by jvtecheto » Wed Jun 19, 2019 7:59 pm
Compuin wrote: Asi es,
Logro crear la libreria, mil gracias
En cuanto a los avisos? Solo ignorarlos ? O se pueden apagar ? No causara que la lib falle ?
Hola Compuin.
Perdona pero tambien me interesa el tema y con _ al final no logro conocer el fichero .mak que has utilizado para crear la libreria, puedes publicarlo asi como e. .bat?
Y una vez creado donde se añade al fichero .mak para crear el ejecutable.?
Gracias amigo.
Jose.
Fwh 19.06 32 bits + Harbour 3.2dev(r2011030937)+ Borland 7.4 + FivEdit
Compuin
Posts: 1017 Joined: Tue Dec 28, 2010 1:29 pm
Post
by Compuin » Wed Jun 19, 2019 8:07 pm
brakaman wrote: Compuin wrote: Asi es,
Logro crear la libreria, mil gracias
En cuanto a los avisos? Solo ignorarlos ? O se pueden apagar ? No causara que la lib falle ?
Hola Compuin.
Perdona pero tambien me interesa el tema y con _ al final no logro conocer el fichero .mak que has utilizado para crear la libreria, puedes publicarlo asi como e. .bat?
Y una vez creado donde se añade al fichero .mak para crear el ejecutable.?
Gracias amigo.
Jose.
Hola brakaman, aqui te va
Para el bat, yo lo llamo go.bat
Code: Select all
@echo off
REM -
REM by Thefull for Front-End Release 0.5
REM -
IF NOT EXIST .\obj MD .\obj
IF NOT EXIST .\lib MD .\lib
:BUILD
C:\BCC74\BIN\MAKE -m -fmylib.mak > make.log
if errorlevel 1 goto BUILD_ERR
:BUILD_OK
rem Front-End send path + exe filename
if exist %2.exe %2.exe
goto EXIT
:BUILD_ERR
notepad make.log
goto EXIT
:EXIT
rem time de compilado 1:21 / 1:22 / 1:46
Y este es el .mak, yo lo llamo mylib.mak
Code: Select all
# Directorios Principales ####################################################
FIVEWIN_DIR = \Fwh1901
HARBOUR_DIR = \Harbour32
BORLANDC_DIR = \Bcc74
# Make directives ############################################################
.swap
.suffixes: .prg
# Application directories & filenames ########################################
LIB_NAME = mylib # (Your LIB name without extension)
LIB_PRG_DIR = source # .
LIB_OBJ_DIR = obj # (create the app\obj directory first)
LIB_INCLUDE_DIR = include # .
LIB_LIB_DIR = lib # $(LIB_PRG_DIR)
LIB_LIB = $(LIB_LIB_DIR)\$(LIB_NAME).lib
# Paths for dependent files ##################################################
.path.c = $(LIB_PRG_DIR)
.path.prg = $(LIB_PRG_DIR)
.path.obj = $(LIB_OBJ_DIR)
# Application PRG and C files (your PRG/C files go here) #####################
LIB_PRG_LIST = \
#SButton
TSButton.prg \
TSBar.prg \
TSLines.prg \
TSRadio.prg \
TSTSay.prg \
TSGradie.prg \
BPaint.c \
#BtnGet
Btnget.prg \
Btndown.prg \
Getbtn.c \
#TbmpGet
TBmpGet.prg \
# Contruction of the rest dependency lists ###################################
LIB_PRGS = $(LIB_PRG_LIST)
TMP_001 = $(LIB_PRG_LIST:.prg=.obj)
LIB_OBJ = $(TMP_001:.c=.obj)
LIB_TMP0 = OBJ\$(LIB_OBJ:.obj=.obj +OBJ\)
LIB_TMP1 = $(LIB_TMP0: =)
LIB_TMP2 = $(LIB_TMP1:.obj=.obj )_
LIB_TMP3 = +$(LIB_TMP2:+OBJ\_=)
# Fivewin directories ########################################################
FIVEWIN_INCLUDE_DIR = $(FIVEWIN_DIR)\include
# Harbour directories & flags ################################################
HARBOUR_INCLUDE_DIR = $(HARBOUR_DIR)\include
HARBOUR_EXE_DIR = $(HARBOUR_DIR)\bin
HARBOUR_FLAGS = -i$(LIB_INCLUDE_DIR);$(FIVEWIN_INCLUDE_DIR);$(HARBOUR_INCLUDE_DIR) -n -m -w -es2 -gc0
HARBOUR_EXE = $(HARBOUR_EXE_DIR)\harbour.exe
# Borlanc directories & flags ################################################
BORLANDC_INCLUDE_DIR = $(BORLANDC_DIR)\include;$(FIVEWIN_INCLUDE_DIR)
BORLANDC_EXE_DIR = $(BORLANDC_DIR)\bin
BORLANDC_LIB_DIR = $(BORLANDC_DIR)\lib
BORLANDC_COMP_FLAGS = -M -D__HARBOUR__ -c -O2 -I$(HARBOUR_INCLUDE_DIR);$(BORLANDC_INCLUDE_DIR) -D__HARBOUR__;HB_API_MACROS;HB_FM_STATISTICS_OFF
BORLANDC_COMP_EXE = $(BORLANDC_EXE_DIR)\bcc32.exe
BORLANDC_TLIB_EXE = $(BORLANDC_EXE_DIR)\tlib.exe
# Dependencies ###############################################################
all: $(LIB_OBJ) $(LIB_PRGS) $(LIB_LIB)
# Implicit Rules #############################################################
.prg.obj:
@$(HARBOUR_EXE) $(HARBOUR_FLAGS) $** -o$(LIB_OBJ_DIR)\temp.c
@$(BORLANDC_COMP_EXE) $(BORLANDC_COMP_FLAGS) -o$@ $(LIB_OBJ_DIR)\temp.c
@if exist $(LIB_OBJ_DIR)\temp.c $(DEL) $(LIB_OBJ_DIR)\temp.c
.c.obj:
@$(BORLANDC_COMP_EXE) $(BORLANDC_COMP_FLAGS) -o$@ $**
# Explicit Rules #############################################################
$(LIB_LIB) :: $(LIB_OBJ)
@if exist $(LIB_LIB) $(DEL) $(LIB_LIB)
@$(BORLANDC_TLIB_EXE) $(LIB_LIB) /P32 $(LIB_TMP3)
Espero ayude
jvtecheto
Posts: 357 Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain
Post
by jvtecheto » Thu Jun 20, 2019 10:29 am
Correcto.
Funciona.
Muchisimassss, gracias.
Jose
Fwh 19.06 32 bits + Harbour 3.2dev(r2011030937)+ Borland 7.4 + FivEdit
jvtecheto
Posts: 357 Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain
Post
by jvtecheto » Thu Apr 30, 2020 2:35 pm
Compuin wrote: brakaman wrote: Compuin wrote: Asi es,
Logro crear la libreria, mil gracias
En cuanto a los avisos? Solo ignorarlos ? O se pueden apagar ? No causara que la lib falle ?
Hola Compuin.
Perdona pero tambien me interesa el tema y con _ al final no logro conocer el fichero .mak que has utilizado para crear la libreria, puedes publicarlo asi como e. .bat?
Y una vez creado donde se añade al fichero .mak para crear el ejecutable.?
Gracias amigo.
Jose.
Hola brakaman, aqui te va
Para el bat, yo lo llamo go.bat
Code: Select all
@echo off
REM -
REM by Thefull for Front-End Release 0.5
REM -
IF NOT EXIST .\obj MD .\obj
IF NOT EXIST .\lib MD .\lib
:BUILD
C:\BCC74\BIN\MAKE -m -fmylib.mak > make.log
if errorlevel 1 goto BUILD_ERR
:BUILD_OK
rem Front-End send path + exe filename
if exist %2.exe %2.exe
goto EXIT
:BUILD_ERR
notepad make.log
goto EXIT
:EXIT
rem time de compilado 1:21 / 1:22 / 1:46
Y este es el .mak, yo lo llamo mylib.mak
Code: Select all
# Directorios Principales ####################################################
FIVEWIN_DIR = \Fwh1901
HARBOUR_DIR = \Harbour32
BORLANDC_DIR = \Bcc74
# Make directives ############################################################
.swap
.suffixes: .prg
# Application directories & filenames ########################################
LIB_NAME = mylib # (Your LIB name without extension)
LIB_PRG_DIR = source # .
LIB_OBJ_DIR = obj # (create the app\obj directory first)
LIB_INCLUDE_DIR = include # .
LIB_LIB_DIR = lib # $(LIB_PRG_DIR)
LIB_LIB = $(LIB_LIB_DIR)\$(LIB_NAME).lib
# Paths for dependent files ##################################################
.path.c = $(LIB_PRG_DIR)
.path.prg = $(LIB_PRG_DIR)
.path.obj = $(LIB_OBJ_DIR)
# Application PRG and C files (your PRG/C files go here) #####################
LIB_PRG_LIST = \
#SButton
TSButton.prg \
TSBar.prg \
TSLines.prg \
TSRadio.prg \
TSTSay.prg \
TSGradie.prg \
BPaint.c \
#BtnGet
Btnget.prg \
Btndown.prg \
Getbtn.c \
#TbmpGet
TBmpGet.prg \
# Contruction of the rest dependency lists ###################################
LIB_PRGS = $(LIB_PRG_LIST)
TMP_001 = $(LIB_PRG_LIST:.prg=.obj)
LIB_OBJ = $(TMP_001:.c=.obj)
LIB_TMP0 = OBJ\$(LIB_OBJ:.obj=.obj +OBJ\)
LIB_TMP1 = $(LIB_TMP0: =)
LIB_TMP2 = $(LIB_TMP1:.obj=.obj )_
LIB_TMP3 = +$(LIB_TMP2:+OBJ\_=)
# Fivewin directories ########################################################
FIVEWIN_INCLUDE_DIR = $(FIVEWIN_DIR)\include
# Harbour directories & flags ################################################
HARBOUR_INCLUDE_DIR = $(HARBOUR_DIR)\include
HARBOUR_EXE_DIR = $(HARBOUR_DIR)\bin
HARBOUR_FLAGS = -i$(LIB_INCLUDE_DIR);$(FIVEWIN_INCLUDE_DIR);$(HARBOUR_INCLUDE_DIR) -n -m -w -es2 -gc0
HARBOUR_EXE = $(HARBOUR_EXE_DIR)\harbour.exe
# Borlanc directories & flags ################################################
BORLANDC_INCLUDE_DIR = $(BORLANDC_DIR)\include;$(FIVEWIN_INCLUDE_DIR)
BORLANDC_EXE_DIR = $(BORLANDC_DIR)\bin
BORLANDC_LIB_DIR = $(BORLANDC_DIR)\lib
BORLANDC_COMP_FLAGS = -M -D__HARBOUR__ -c -O2 -I$(HARBOUR_INCLUDE_DIR);$(BORLANDC_INCLUDE_DIR) -D__HARBOUR__;HB_API_MACROS;HB_FM_STATISTICS_OFF
BORLANDC_COMP_EXE = $(BORLANDC_EXE_DIR)\bcc32.exe
BORLANDC_TLIB_EXE = $(BORLANDC_EXE_DIR)\tlib.exe
# Dependencies ###############################################################
all: $(LIB_OBJ) $(LIB_PRGS) $(LIB_LIB)
# Implicit Rules #############################################################
.prg.obj:
@$(HARBOUR_EXE) $(HARBOUR_FLAGS) $** -o$(LIB_OBJ_DIR)\temp.c
@$(BORLANDC_COMP_EXE) $(BORLANDC_COMP_FLAGS) -o$@ $(LIB_OBJ_DIR)\temp.c
@if exist $(LIB_OBJ_DIR)\temp.c $(DEL) $(LIB_OBJ_DIR)\temp.c
.c.obj:
@$(BORLANDC_COMP_EXE) $(BORLANDC_COMP_FLAGS) -o$@ $**
# Explicit Rules #############################################################
$(LIB_LIB) :: $(LIB_OBJ)
@if exist $(LIB_LIB) $(DEL) $(LIB_LIB)
@$(BORLANDC_TLIB_EXE) $(LIB_LIB) /P32 $(LIB_TMP3)
Espero ayude
Hola Compuin :
Te dije que la libreria funciona bien y es cierto pero siempre que en la carpeta obj tengas ya generados los ficheros *.obj y *.c , prueba a borrarlos e intenta generar la libreria desde cero, por lo menos a mi no me
funciona , me he dado cuenta ahora que he intentado construirla cambiando varios ficheros fuentes.
Alguien sabe las correcciones para construir la libreria desde cero.
Gracias a todos.
Saludos.
Jose.
Fwh 19.06 32 bits + Harbour 3.2dev(r2011030937)+ Borland 7.4 + FivEdit