Migração de xHarbour para Harbour

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

Moderador: Moderadores

Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Migração de xHarbour para Harbour

Mensagem por Pablo César »

Eu estou entendendo muito bem o que vc está perguntando e a galera aí em cima é que está 'causando confusão'.
Amigo, aqui não trata-se de causar confusão. Isto é um fórum e é normal termos diversas opiniões e até mesmo má interpretações. Peço por favor que sejamos objetivo e não fiquemos com asperezas.

Eu não uso o hbmk2 diretamente, pois uso o IDE da HMG (graças a Deus). Mas acredito que seria só questão de acrescentar o .obj como é feito com o prg. Não sei se vocês fazem algum script, mas seria interessante que mostrem como estão tentando fazer. o hbmk2 diz:
hbmk2 [opções] [<script>] <src[.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot|.hbl|@.clp|.d]>

Opções
-o<outname> nome de arquivo de saída
-l<libname> linkar com a biblioteca <libname>. <libname> deve omitir
path, extensão e o prefixo 'lib' (à menos que faça parte
do nome-de-arquivo).
-L<libpath> path adicional para pesquisar por bibliotecas
-i<p>|-incpath=<p> paths adicionais para pesquisa de arquivos headers
-static|-shared linkar com biliotecas estáticas/compartilhadas
-mt|-st linkar com suporte multi ou single-thread na HVM
-gt<name> linkar com o driver GT selecionado. Este parametro
GT<name> pode ser especificado mais de uma vez e o
primeiro driver GT informado será o padrão no tempo de
execução
-hbexe create executable (default)
-hblib criar biblioteca estática
-hbdyn create dynamic library (without linked Harbour VM)
-hbdynvm criar biblioteca dinâmica
-hbimplib create import library
-help|--help ajuda detalhada


E chamando o hbmk2 com parâmetro -help tras um help com mais opções:
Harbour Make (hbmk2) 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011, Viktor Szakats
http://harbour-project.org/
Translation (pt-BR): Vailton Renato <vailtom@gmail.com>

Sintaxe:

hbmk2 [opções] [<script>] <src[.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot|.h
bl|@.clp|.d]>

Opções
-o<outname> nome de arquivo de saída
-l<libname> linkar com a biblioteca <libname>. <libname> deve omitir
path, extensão e o prefixo 'lib' (à menos que faça parte
do nome-de-arquivo).
-L<libpath> path adicional para pesquisar por bibliotecas
-i<p>|-incpath=<p> paths adicionais para pesquisa de arquivos headers
-static|-shared linkar com biliotecas estáticas/compartilhadas
-mt|-st linkar com suporte multi ou single-thread na HVM
-gt<name> linkar com o driver GT selecionado. Este parametro
GT<name> pode ser especificado mais de uma vez e o
primeiro driver GT informado será o padrão no tempo de
execução
-hbexe create executable (default)
-hblib criar biblioteca estática
-hbdyn create dynamic library (without linked Harbour VM)
-hbdynvm criar biblioteca dinâmica
-hbimplib create import library

-gui|-std criar um executável GUI/console
-main=<mainfunc> sobrescreva o nome da função/procedimento inicial
-request=<func> force function/procedure to be linked
-fullstatic linkar com todas as bibliotecas estáticas
-pic[-] create position independent object code (always enabled
in -hbdyn/-hbdynvm modes)
-[full|fix]shared criar binário que faça uso da biblioteca compartilhada do
Harbour com referência absoluta (ou não) (padrão:
'fullshared' quando Harbour é instalado no local do
sistema, caso contrário será 'fixshared') (fix/full é
somente para *nix)
-nulrdd[-] linkar com o nulrdd
-[no]debug adicionar/excluir informações de debug do compilador C.
Para compilar com Harbour utilize a opção -b como de
costume.
-[no]optim alterna as optimizações do compilador C (ativado por
padrão)
-[no]cpp[=def] forçar compilação em modo C/C++ ou reseta para o modo
padrão
-[no]map criar (ou não) o arquivo map
-[no]implib create (or not) an import library (in -hbdyn/-hbexe
mode). The name will have a postfix added.
-implib=<output> create import library (in -hbdyn/-hbexe mode) name to
<output> (default: same as output)
-ln=<link> create symbolic link pointing to <output> (<link> is
considered relative to <output>)
-[no]strip strip (ou não) arquivos binários
-[no]trace exibir os comandos executados
-[no]beep ativa (ou desativa) um beep simples em caso de sucesso ou
um beep duplo em caso de erro
-[no]ignore ignore erros quando executar as ferramentas de compilação
(padrão: off)
-[no]hbcppmm override standard C++ memory management functions with
Harbour ones
-winuni[-] select between UNICODE (WIDE) and ANSI compilation modes
(default: ANSI) (Windows only. For WinCE it is always set
to UNICODE)
-nohblib[-] não usar bibliotecas estáticas do núcleo do Harbour
quando linkar
-nodefgt[-] do not link default GTs (effective in -static mode)
-nolibgrouping[-] desativar agrupamento de LIBs em compiladores baseados no
gcc.
-nomiscsyslib[-] não adicione bibliotecas extras do sistema à lista padrão
de bibliotecas
-traceonly exibir os comandos à serem executados, mas não execute-os
-[no]warn[=lev] define o nível de avisos (warnings) do compilador C
<lev> pode ser: max, yes, low, no, def (padrão: yes)
-[no]compr[=lev] comprime o executável/biblioteca dinânica (necessita de
UPX)
<lev> pode ser: min, max, def
-[no]run executar/não executar o aplicativo gerado.
-vcshead=<file> gera um arquivo .ch com informações do repositório local.
SVN, CVS, Git, Mercurial, Bazaar, Fossil e Monotone estão
entre as ferramentas atualmente suportadas. O arquivo
gerado conterá a diretriva _HBMK_VCS_TYPE_ com o nome do
VCS detectado e _HBMK_VCS_ID_ com o unique ID do
repositório local
-tshead=<file> gerar cabeçalho .ch com informação de data/hora.
Cabeçalho gerado conterá as macros _HBMK_BUILD_DATE_,
_HBMK_BUILD_TIME_, _HBMK_BUILD_TIMESTAMP_ com a data/hora
de criação do arquivo.
-icon=<file> seta o ícone para o aplicativo. <file> deve possuir um
formato compatível com a plataforma de destino
-manifest=<file> embed manifest <file> in executable/dynamic lib (Windows
only)
-instfile=<g:file> add <file> in to the list of files to be copied to path
specified by -instpath option. <g> is an optional copy
group, it must be at least two characters long.
-instpath=<g:path> copy target to <path>. if <path> is a directory, it
should end with path separatorm, in this case files
specified by -instfile option will also be copied. can be
specified multiple times. <g> is an optional copy group,
it must be at least two characters long. Build target
will be automatically copied to default (empty) copy
group.
-instforce[-] copy target to install path even if it is up to date
-depimplib[-] enable (or disable) import library generation for import
library sources specified in -depimplibs= options
(default: yes)
-stop[=<text>] interromper sem executar nada
-echo=<text> ecoa texto na tela
-pause forçar pause por uma tela em caso de erro (somente com
driver GT alternativo)
-info ativar mensagens informativas
-quiet[-] suprimir todas as mensagens

-bldf[-] herdar flags do Harbour: todos/nenhum (padrão)
-bldf=[p][c][l] herdar todos os flags .prg/.c/linker (ou nenhum)
provindos do Harbour
-F<framework> link with <framework> framework (Darwin only)
-prgflag=<f> especifica flags para o Harbour
-cflag=<f> especifica flags para o compilador C
-resflag=<f> especifica flags para o compilador de recursos (apenas
windows)
-ldflag=<f> especifica flags para o linkeditor (executável)
-aflag=<f> passa flag para o linkeditor (lib estática)
-dflag=<f> informar flags para o linkeditor (biblioteca dinânica)
-iflag=<f> pass flag to import library creation command
-runflag=<f> argumentos à serem passados ao executável gerado quando
-run for utilizado
-cflag+=<f> pass flag to C compiler overriding C compiler flags added
by hbmk2 itself. Use with caution.
-3rd=<f> options/flags reserved for 3rd party tools, always
ignored by hbmk2 itself
-jobs=<n> dispara <n> threads de compilação (apenas plataformas
multiprocessadas)
-inc habilita o modo de compilação incremental
-[no]head[=<m>] control source header parsing (in incremental build mode)
<m> can be: native (uses compiler to extract
dependencies), full (default, uses simple text parser on
the whole file), dep, off
-rebuild rebuild (in incremental build mode)
-rebuildall rebuild with sub-projects (in incremental build mode)
-clean compilação limpa (em modo de compilação incremental)
-workdir=<dir> working directory
(default: .hbmk/plat/comp in incremental mode, OS temp
directory otherwise)

-hbl[=<output>] nome-de-arquivo .hbl resultante. A macro %{hb_lng} é
aceita no nome-de-arquivo.
-lng=<languages> lista de idiomas à serem substituidos nas macros
%{hb_lng} nos arquivos .pot/.po e nos nomes de arquivos
de saída .hbl/.po. Lista separada por vírgula:
-lng=en,hu-HU,de
-po=<output> criar/atualizar arquivo .po à partir dos fontes. Se um
arquivo .po com o mesmo nome existir, o arquivo será
mesclado.
-[no]minipo adicionar (ou não) a referência do número da versão do
Harbour e o arquivo de origem ao .po (ativo por padrão)
-rebuildpo recria o arquivo .po removendo assim todas as entradas
obsoletas no mesmo

-hbx=<.ch> Create Harbour header (in .hbx format) with all external
symbols.
-autohbc=<.ch:.hbc> <.ch> is a header file name. <.hbc> is a .hbc filename to
be automatically included in case the header is found in
any of the compiled sources. (EXPERIMENTAL)

-deppkgname=<d:n> <d> is the name of the dependency. <n> name of the
package depedency. Can be specified multiple times.
-depkeyhead=<d:h> <d> is the name of the dependency. <h> is the key header
(.h) of the package dependency. Multiple alternative
headers can be specified.
-depoptional=<d:f> <d> is the name of the dependency. <f> can be 'yes' or
'no', specifies whether the dependency is optional.
Default: no
-depcontrol=<d:v> <d> is the name of the dependency. <v> is a value that
controls how detection is done. Accepted values: no, yes,
force, nolocal, local. Default: content of envvar
HBMK2_WITH_<d>
-depincroot=<d:r> <d> is the name of the dependency. Set <r> as root
directory for paths specified in -depincpath options.
-depincpath=<d:i> <d> is the name of the dependency. Add <i> to the header
detection path list. May be ';' delimited list of paths.
-depincpathlocal= <d> is the name of the dependency. Add <i> to the header
<d:i> detection path list, where <i> is pointing to a directory
local to the project and containing an embedded (or
locally hosted) dependency.
-depimplibs=<d:dll> <d> is the name of the dependency. Add <dll> to the
import library source list. May be ';' delimited list of
paths.
-depimplibd=<d:lib> <d> is the name of the dependency. Set generated import
library name to <lib>

-plugin=<.prg|.hbs|.add plugin
b>
-pi=<filename> pass input file to plugins
-pflag=<f> pass flag to plugins

Options below are available on command line only:

-target=<script> specify a new build target. <script> can be .prg (or no
extension) or .hbp file. Note that .hbp files are
automatically considered as separate targets.

-env:<e>[<o>[<v>]] alter local environment. <e> is the name of the
environment variable to alter. <o> can be '=' to
set/override, '-' to delete, '+' to append to the end of
existing value, '#' to insert to the beginning of
existing value. <v> is the value to set/append/insert. If
multiple options are passed, they are processed from left
to right.

-hbrun executar alvo
-hbraw interromper após executar o compilador Harbour
-hbcmp|-clipper interromper após criar os arquivos objetos
criar um link ou copiar o hbmk2 para hbcmp/clipper
resultará no mesmo efeito
-hbcc interromper após criar os arquivos objetos e processa-los
com o compilador C
criar um link ou copiar o hbmk2 para hbcc resultará no
mesmo efeito
-hblnk parâmetros específicos do linkeditor.
-autohbm[-] enable (or disable) processing of hbmk.hbm in current
directory (default: yes)
-hb10 habilita modo de compatibilidade 'Harbour 1.0.x'
-hb20 enable Harbour 2.0.x compatibility mode
-xhb habilitar modo xHb
-hbc ativa modo C puro
-rtlink
-blinker
-exospace emula o comportamento de um linkeditor compatível com
clipper
criar um link ou copiar o hbmk2 para
rtlink/blinker/exospace resultará no mesmo efeito

-hbmake=<file> converte um projeto do hbmake em um arquivo .hbp
-xbp=<file> converte um projeto .xbp (xbuild) em um arquivo .hbp
-xhp=<file> converte um projeto .xhp (xMate) em um arquivo .hbp

--hbdirbin exibe o diretório dos binários do Harbour
--hbdirdyn exibe o diretório das bibliotecas dinâmicas do Harbour
--hbdirlib exibe o diretório das bibliotecas estáticas do Harbour
--hbdirinc exibe o diretório dos headers do Harbour
--hbinfo output Harbour build information. The data output comes
in the format: '<name>{{<value>}}'. The included paths
always contain forward slashes.

-plat[form]=<plat> assume uma arquitetura específica.
-comp[iler]=<comp> use o compilador C específico.
Valor especial:
- bld: use a configuração original (padrão em *nix)
-cpu=<cpu> select target CPU. (EXPERIMENTAL)
-build=<name> utilizar um nome de build especifico
-lang=<lang> sobrepor o idioma padrão. Semelhante à variavel HB_LANG.
-width=<n> set output width to <n> characters (0=unlimited).
-shl show sub-project level in output lines
--version exibir somente o cabeçalho com a versão do hbmk

Notas:
- <script> can be:
<@script> or <script.hbm>: command line options in file
<script.hbp>: command line options in file, it also marks a new target if
specified on the command line
<script.hbc>: package configuration file
- Multiplos parâmetros -l, -L e <script> são aceitos.
- Opções usadas com o compilador Harbour também são aceitas.
- O arquivo de configuração hbmk.hbc no diretório do hbmk2 sempre ser
processado caso exista. Em plataformas *nix este arquivo é sempre procurado
nas pastas ~/.harbour, /etc/harbour, <base>/etc/harbour, <base>/etc
(exatamente nesta ordem) antes da pasta que contém o hbmk.
- O script hbmk.hbm no diretório atual será sempre processado se existir.
- As opções em um arquivo .hbc devem estar em linhas separadas e são:
libs=[<libname>], hbcs=[<.hbc file>], gt=[gtname],
syslibs=[<libname>], frameworks=[<framework>], prgflags=[flags do
Harbour], cflags=[flags do compilador C], resflags=[flags do compilador de
recursos], ldflags=[flags do linkeditor], libpaths=[paths],
sources=[módulos fontes], incpaths=[paths], requests=[func],
instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>],
plugins=[plugins],
gui|mt|pic|shared|nulrdd|nodefgt|debug|opt|map|strip|hbcppmm|winuni|implib|
run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def],
compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=[yes|no],
echo=<text>
Linhas iniciadas com '#' são interpretadas como comentários e serão
ignoradas
- Os filtros para plataformas são aceitos para cada uma das linhas de um
arquivo .hbc e possuem diversas opções.
Formato de um filtro:
{[!][<arquitetura>|<compilador>|<cpu>|<palavra-chave>]}. Os filtros podem
ser combinados usando os operadores '&', '|' e agrupados por parênteses.
Ex.: {win}, {gcc}, {linux|darwin}, {win&!pocc}, {(win|linux)&!watcom},
{unix&mt&gui}, -cflag={win}-DMYDEF, -stop{dos}, -stop{!allwin},
{allwin|allmsvc|allgcc|allmingw|allicc|allpocc|unix},
{x86|x86_64|ia64|arm|mips|sh},
{debug|nodebug|gui|std|mt|st|shared|static|winuni|winansi|xhb}
- Algumas opções do .hbc (libs=, hbcs=, prgflags=, cflags=, ldflags=,
libpaths=, instfiles=, instpaths=, echo=) e seus correspondentes parâmetros
de linha-de-comando aceitam as seguintes macros: ${hb_root}, ${hb_dir},
${hb_name}, ${hb_plat}, ${hb_comp}, ${hb_build}, ${hb_cpu}, ${hb_bin},
${hb_lib}, ${hb_dyn}, ${hb_inc}, ${<envvar>}. libpaths= também aceitam
%{hb_name} que se traduz como o nome do arquivo .hbc sob pesquisa.
- Opções aceitando macros também suportam linhas de comando. Neste caso basta
rodeiar o comando dentro de ``, e, se o comando contiver espaço, também
adicione aspas duplas. i.e. "-cflag=`wx-config --cflags`", ou
ldflags={unix&gcc}"`wx-config --libs`".
- As opções default e suas características variam de arquitetura/compilador.
- As opções também podem ser especificados na variável de ambiente
HBMK_OPTIONS
- .hbs or .hrb file passed as first parameter will be run as Harbour script.
(EXPERIMENTAL)

Valores suportados para <comp> conforme a <plat> disponível:
- linux : gcc, clang, icc, watcom, sunpro, open64, pcc
- darwin : gcc, clang, icc, pcc
- win : mingw, msvc, bcc, watcom, icc, pocc, xcc,
- mingw64, msvc64, msvcia64, iccia64, pocc64
- wce : mingwarm, mingw, msvcarm, poccarm
- os2 : gcc, gccomf, watcom
- dos : djgpp, watcom
- bsd : gcc, clang, pcc
- hpux : gcc
- beos : gcc
- qnx : gcc
- android : gcc, gccarm
- vxworks : gcc, diab
- symbian : gcc
- cygwin : gcc
- minix : gcc, clang, ack
- sunos : gcc, sunpro, pcc


Interessante ler este artigo: http://www.google.com.br/#q=hbmk2+%22.o ... 24&bih=677

Seria assim colega Itamar ? Ou alguém que saiba dizer ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Migração de xHarbour para Harbour

Mensagem por Itamar M. Lins Jr. »

Ola!
Então Amigos acho que minha duvida é bem iniciante mesmo
mas é questão é que o fonte não esta comigo mas esta compilado na mesma versão do harbour
que eu compilo os outros fontes, portanto não existe diferença nisso estão todos .
obj na mesma versão do harbour só que foram compilados em lugares diferentes. E eu apenas quero pegar o obj
que ela compilou e linkar no meu .hbp de compilação ?
Então no projeto.hbp voce pode:

Código: Selecionar todos

#Colocar um comentario como esse por exemplo compilar só o prg alterado.
-inc
#Executar o exe final.
-run
-oNomeDoMeu.exe
c:\fontes\programa.prg
d:\fontes\arquivo.rc
c:\outrodir\maisumdir\seuobj.obj
Então entenda que não é necessário ficar gerando obj e depois ficar linkando na unha. O HBMK2 faz isso de forma muito transparente.
O que estou tentando explicar para você é que a HBIDE+HBMK2 faz isso tudo de forma muito simples.
Por exemplo eu tenho mais de 10 pastas com projetos diferentes. Com a hbmk2 é só informar os arquivos com a localização de cada prg, etc que ele vai gerar um arquivo e compilar eles independente da pasta onde se encontre, não é necessário ficar gerando obj e depois criar um batizinho para linkar, isso é coisa do passado.
Nem é preciso ficar mexendo no PATH colocando:

Código: Selecionar todos

LIB=C:\dir\daminhalib\linb;f:\outra\lib.lib
OBJ=f:\dirdosobjtal\tal.obj
Isso ai em cima é coisa do passado.
Basta cria um arquivo com extenção hbc informando a localização das libs e linkar junto.
por exemplo:

Código: Selecionar todos

{win}incpaths=c:\hwgui\include;c:\letodb\include
{win}libpaths=c:\hwgui\lib
{win}libpaths=c:\letodb\lib
{win}libpaths=c:\blat\blat262\full

{win}gt=gtgui

{win}libs=hwgui hbxml procmisc hwg_qhtm
{win}libs=hbwin hbct hbnf
{win}libs=rddleto hbxpp
{win}libs=xhb hbblat blat
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Migração de xHarbour para Harbour

Mensagem por Stanis Luksys »

Gralak,

Conforme eu tinha te falado e todos aqui já explicaram, você pode adicionar somente o objeto no arquivo *.hbp e compilar com o hbmk2, mas evidentemente o referido obj também precisa ter sido gerado através do harbour.

Ou seja, se você tem os objs mas não tem os fontes, pode esquecer que não vai funcionar de jeito nenhum. Se você utilizar o mesmo compilador C que utilizava com XHarbour, seja BCC, MinGW, MSVC, GCC ou o que for, se der muita, mas muuuuita sorte mesmo, pode ser que consiga fazer funcionar adicionando o arquivo .o, mas não o .obj. Isso porque o .o já é o produto final gerado pelo compilador. Se você fizer isso e adiocnar a biblioteca xhb.lib no seu projeto, utilizando o mesmo compilador C, existe uma remota chance de funcionar quando passar pelo linker.

Abraços.

PS: Com relação ao mediator e outras ferramentas que só disponibilizam os objetos, precisa aguardar a boa vontade deles de gerar novas libs e objs, não tem solução e isso não é um problema do Harbour, mas sim de decisão. Desde muitos anos atrás, uns 5 pelo menos, eu alertei aqui mesmo neste forum sobre este fato. Se essas empresas tipo a otc (dona do mediator) morrer, seu programa vai parar na ultima versão que eles pararam.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Migração de xHarbour para Harbour

Mensagem por Stanis Luksys »

Opa,

Se isso ajuda, vou dar um exemplo de como eu compilo aqui usando o hbmk2. Na minha opinião é o melhor método hoje disponível. Não tem surpresas, uso Linux o dia todo, e no final do dia compilo no Windows e voila, tudo funciona normalmente. Eu deixo os prgs no servidor de arquivos, uso o CentOs do meu pc e compilo lá mesmo, e gero o executável, depois reinicio, entro pelo windows, acesso o mesmo caminho via mapeamento de rede, compilo com o mesmo comando e pronto, já tenho o programa pros dois sistemas.

Ai fazer isso, o hbmk2 criar uma pasta oculta .hbmk e dentro dela, outras duas, .win e .linux. De acordo com o ambiente que estou, ele já avalia os objs e tudo mais. Ou seja, na mesma pasta eu gero dois executáveis, uma para Windows e outro para Linux. E usando a Qt, fica show viu...


Eu crio um arquivo projeto.hbp mais ou menos assim:

Código: Selecionar todos

# BIBLIOTECAS QT
{allwin}C:\harbour\contrib\hbqt\qtcore\hbqtcore.hbc
{allwin}C:\harbour\contrib\hbqt\qtgui\hbqtgui.hbc
{allwin}C:\harbour\contrib\hbqt\qtnetwork\hbqtnetwork.hbc
{linux}/usr/src/harbour/contrib/hbqt/qtcore/hbqtcore.hbc
{linux}/usr/src/harbour/contrib/hbqt/qtgui/hbqtgui.hbc
{linux}/usr/src/harbour/contrib/hbqt/qtnetwork/hbqtnetwork.hbc

# BIBLIOTECA MYSQL
{allwin}C:\harbour\contrib\hbmysql\hbmysql.hbc
{linux}/usr/src/harbour/contrib/hbmysql/hbmysql.hbc

# BIBLIOTECA CURL
{linux}/usr/src/harbour/contrib/hbcurl/hbcurl.hbc
{allwin}C:\harbour\contrib\hbcurl\hbcurl.hbc

# BIBLIOTECA CT
-lhbct

# PARAMETROS DE COMPILACAO
-inc
-w3 -es2
-static
-opdv

# PRGS PRINCIPAIS
main.prg
TPdvVendaTela.prg
TPdvVendaControle.prg
TPdvVendaModelo.prg
TPdvUsuarioTela.prg
TPdvUsuarioControle.prg
TPdvUsuarioModelo.prg
(.... etc varios outros)

#CLASSE DO MYSQL (alterada)
TMySQL.prg


# PRGS DE FUNCOES
func_qt.prg
func_db.prg
func_geral.prg

# ARQUIVOS DE TELAS - Abrir com Qt Designer
ui/usuarioLogin.ui
ui/usuarioPermissoes.ui
(etc ...)

# ARQUIVOS DE RECURSOS
res/recursos.qrc
Eu aponto os arquivos .hbc originais das libs do contrib, pois em uma eventual atualização do Harbour, não mexo no meu script...

Para compilar eu uso:

Código: Selecionar todos

hbmk2 projeto.hbp
Como eu compilo com o parametro -inc, ele só compila o que foi modificado, então se eu preciso recompilar tudo, quando mexo no meu arquivo .ch por exemplo, então eu uso o rebuild:

Código: Selecionar todos

hbmk2 projeto.hbp -rebuild
Eu não uso nenhum objeto nem lib própria.

Bom, é por aí.

Abraços.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Responder