Como creo una libreria com HBMK2 ?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Ruben Dario
Usuário Nível 3
Usuário Nível 3
Mensagens: 127
Registrado em: 14 Jun 2015 23:19
Localização: Colombia

Como creo una libreria com HBMK2 ?

Mensagem por Ruben Dario »

Saudos.

Alguine me puede dcir como crear una libreria creando un prhmmk2.hbp

con make lo hago asi.

Código: Selecionar todos



#Borland make sample, (c) FiveTech Software 2005-2009

HBDIR=\harbour
BCDIR=\bcc582
FWDIR=\fwh
fprg =\v_xharb_v3

#change these paths as needed
.path.OBJ = .\obj1
.path.PRG = .\lprg;.\funcs
.path.CH  = $(FWDIR)\include;$(HBDIR)\include;$(FWDIR)\include
.path.C   = .\;.\lc
.path.rc  = .\

HFLAG1 = /l /m /q /es2 /gc1
HCLAG1 = -c -tWM

CINCLU =  $(HBDIR)\include;$(fprg)\include;$(FWDIR)\include
CINCL1 =  $(HBDIR)\include
OBJFIL =  .\obj1

NOMLIB =  librub_h.lib
LIBFIL =  $(fprg)\lib\Harb\$(NOMLIB)

DEFX=__HARBOUR__
DEXP=__EXPORT__


EXTLIBFILES =
DEFFILE =
HBFLAGS =  -w0
CFLAG1 =  -OS $(SHELL)  $(CFLAGS) -d -c -L$(HBDIR)\lib

RFLAGS =
LFLAGS = -L$(BCDIR)\lib\obj;$(BCDIR)\lib;$(HBDIR)\lib -Gn -M -m -s -Tpe -x -ap
IFLAGS =
LINKER = ilink32
 
ALLOBJ = c0x32.obj $(OBJFILES) $(OBJCFILES)
ALLRES = $(RESDEPEN)
ALLLIB = $(LIBFILES) import32.lib cw32.lib

#important: Use Uppercase for filenames extensions, in the next two rules!

PRG =         \
PXP0010.PRG   \
PXP0012.PRG   \
PXP0014.PRG   \
PXP0016.PRG   \
PXPTABLA.PRG  \
PXPTABL1.PRG  \
CATATABLA.PRG  \
CATA0014.PRG   \
PXPBUTON.PRG  \
PXP0021.PRG   \
PXPutil.PRG   \
PXPBROW.PRG   \
PXPCALC.PRG   \
PXPDICT.PRG   \
PXPRWS.PRG    \
PXP0030.PRG  \



# errmsg.PRG  \
# yesno2.PRG  \
# shadowb.PRG  \
# colorset.PRG \
# yesno.PRG  \
# ginkey.PRG  \
# colorpal.PRG \
# colors.PRG  \
# blank4.PRG  \
# boxtitle.PRG \
# RAND.PRG  \
# saveenv.PRG \  
# savegets.PRG \
# reclock.PRG \
# KALEID.PRG  

# GRUMPATT fontload +shadebox; waiton.PRG  \


C =          \


PROJECT    : $(NOMLIB)

$(NOMLIB)  : $(PRG:.PRG=.OBJ) $(C:.C=.OBJ)
  echo off
  del $(OBJFIL)\*.* /Q

.PRG.OBJ:
  $(HBDIR)\bin\harbour $< $(HFLAG1) -D$(DEXP) -D$(DEFX) /O$(OBJFIL)\ /I$(CINCLU) $(HBFLAGS) > comp.log
  $(BCDIR)\bin\bcc32 $(HCLAG1) -I$(CINCL1) -o$(OBJFIL)\$& $(OBJFIL)\$&.c
  $(BCDIR)\bin\tlib $(LIBFIL) -+ $(OBJFIL)\$&.obj,,

.C.OBJ:
  echo $(HCLAG1) -D$(DEFX) > tmp
  echo -I$(CINCL1) >> tmp
  $(BCDIR)\bin\bcc32 -o$(OBJFIL)\$& @tmp $<
  $(BCDIR)\bin\tlib $(LIBFIL) -+ $(OBJFIL)\$&.obj,,
  del tmp

Como seria con hbmk2
este es el archivo que hice pero no funciona.

prhmmk2.hbp

Código: Selecionar todos

#
# Flags do compilador
#
#
-l -m -q -es2 -gc1



-pause

#
# Executar ao finalizar a compilação
#
# -run



-workdir=C:\Temp\loco
-ik:\fwh\include;K:\v_xharb_v3\include
-po=C:\Temp\loco





#
# exe: nome do executavel
#
#

#-hblib

-olibrub_h.lib

#
# prg principal
#

PXP0010.prg
PXP0012.prg
PXP0014.prg
PXP0016.prg
PXPTABLA.prg
PXPTABL1.prg
CATATABLA.prg
CATA0014.prg
PXPBUTON.prg
PXP0021.prg
PXPutil.prg
PXPBROW.prg
PXPCALC.prg
PXPDICT.prg
PXPRWS.prg
PXP0030.prg 

#
# prg(s) adicional(is)
#

#
# .C Source Files
#

#
# .rc Resource Files
#
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Como creo una libreria com HBMK2 ?

Mensagem por alxsts »

Olá!

Em seu arquivo prhmmk2.hbp, troque a linha

Código: Selecionar todos

#-hblib
por

Código: Selecionar todos

-hblib
Para maiores informações, leia o artigo How to use hbmk2?
[]´s
Alexandre Santos (AlxSts)
Ruben Dario
Usuário Nível 3
Usuário Nível 3
Mensagens: 127
Registrado em: 14 Jun 2015 23:19
Localização: Colombia

Como creo una libreria com HBMK2 ?

Mensagem por Ruben Dario »

Gracias,

Me funciono.

Ahora. como hago para direccionar los PRG que los tengo en otra carpeta, se puede dat un parametro para dar dicha direccion , como se hace con make.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Como creo una libreria com HBMK2 ?

Mensagem por alxsts »

Olá!

Especifique os caminhos. Exemplo:

Código: Selecionar todos

35	#
36	# prg principal
37	#
38	 
39	\root\PXP0010.prg
40	\root\PXP0012.prg
41	\root\PXP0014.prg
42	\root\PXP0016.prg
43	\tablas\PXPTABLA.prg
44	\tablas\PXPTABL1.prg
45	\tablas\CATATABLA.prg
46	\tablas\CATA0014.prg
47	\px\PXPBUTON.prg
48	\px\PXP0021.prg
49	\px\PXPutil.prg
50	\px\PXPBROW.prg
51	\px\PXPCALC.prg
52	\px\PXPDICT.prg
53	\px\PXPRWS.prg
54	\px\PXP0030.prg
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como creo una libreria com HBMK2 ?

Mensagem por JoséQuintas »

Já foi respondido, mas acrescentar um que uso, pra compilar LIB e EXE ao mesmo tempo.

hl.hbp: aciona libjose.hbp e usa libjose.lib

Código: Selecionar todos

libjose.hbp

*.prg
-ohl
-llibjose

hbhpdf.hbc
hbtip.hbc

-I..\integra\
-m
-w3
-es2
-strip
-compr
-inc
-workdir=c:\temp
-jobs=1
libjose.hbp, gera a libjose.lib

Código: Selecionar todos

..\integra\ze_FrmCadClass.prg
..\integra\ze_FrmMainClass.prg
..\integra\ze_PDFClass.prg
..\integra\ze_SendMailClass.prg
-olibjose

hbhpdf.hbc
hbtip.hbc
-m
-w3
-es2
-strip
-compr
-inc
-workdir=c:\temp
-quiet

-hblib
Garante que hl.exe seja criado com libjose.lib atualizada.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Ruben Dario
Usuário Nível 3
Usuário Nível 3
Mensagens: 127
Registrado em: 14 Jun 2015 23:19
Localização: Colombia

Como creo una libreria com HBMK2 ?

Mensagem por Ruben Dario »

Gracias. Todo funciono bien.


Tengo una duda, cuado se compila un archivo en C. con make daba este parametro -O2 -c y tambien otro para Harbour
con make asi
Para Harbour --> HFLAG1 = /n
Para C --> HCLAG1 = -O2 -c

como seria para hbmk2

la otra duda, segun el ejemplo que me proporciono ,para direccionar la carpeta de los PRG, hay alguna manera de definir una varaible donde contenga la direccion
es decir
fprg = k:\v_xharb_v3\prg
seria factible este manejo con hbmk2

Ejemplo.

\v_xharb_v3\TPDF\pdfhbdoc.C
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como creo una libreria com HBMK2 ?

Mensagem por JoséQuintas »

tente:

Código: Selecionar todos

arquivo.prg
\v_xharb_v3\TPDF\pdfhbdoc.C
-n
-O2
-c
mas, é realmente necessário -O2 -c ?

Está usando hbmk2 para Harbour ou xHarbour?


Um manual completo:

Código: Selecionar todos

hbmk2 -longhelp
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder