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 estou entendendo muito bem o que vc está perguntando e a galera aí em cima é que está 'causando confusão'.
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 ?


