Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.
Moderador: Moderadores
Ruben Dario
Usuário Nível 3
Mensagens: 127 Registrado em: 14 Jun 2015 23:19
Localização: Colombia
Mensagem
por Ruben Dario » 21 Set 2015 18:48
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
Mensagens: 3092 Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil
Mensagem
por alxsts » 21 Set 2015 20:29
Olá!
Em seu arquivo prhmmk2.hbp, troque a linha
por
Para maiores informações, leia o artigo
How to use hbmk2?
[]´s
Alexandre Santos (AlxSts)
Ruben Dario
Usuário Nível 3
Mensagens: 127 Registrado em: 14 Jun 2015 23:19
Localização: Colombia
Mensagem
por Ruben Dario » 21 Set 2015 22:12
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
Mensagens: 3092 Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil
Mensagem
por alxsts » 22 Set 2015 00:12
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)
JoséQuintas
Administrador
Mensagens: 20267 Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Mensagem
por JoséQuintas » 22 Set 2015 11:11
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
Mensagens: 127 Registrado em: 14 Jun 2015 23:19
Localização: Colombia
Mensagem
por Ruben Dario » 23 Set 2015 00:08
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
JoséQuintas
Administrador
Mensagens: 20267 Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Mensagem
por JoséQuintas » 23 Set 2015 07:56
tente:
mas, é realmente necessário -O2 -c ?
Está usando hbmk2 para Harbour ou xHarbour?
Um manual completo:
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/