BlackTDN Search

quinta-feira, 28 de março de 2013

BlackTDN :: Harbour, Opções do Compilador

Harbour Make (hbmk2) 3.2.0dev (Rev. 18805)
Copyright (c) 1999-2013, Viktor Szak ts
http://harbour-project.org/
Translation (pt-BR): Vailton Renato <vailtom@gmail.com>

Sintaxe:

hbmk2 [opçäes] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot|.hbl|@.clp|.d|.ch]>
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 bibliotecas estáticas/compartilhadas
-mt|-st linkar com suporte multi ou single-thread na HVM
-gt<name> linkar com o driver GT selecionado. Este parâmetro
GT<name> pode ser especificado mais de uma vez e o
primeiro driver GT informado ser  o padrão no tempo de
execução
-inc[-] habilita o modo de compilação incremental
-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
-debug[-] adicionar/excluir informações de debug do compilador C.
Para compilar com Harbour utilize a opção -b como de
costume.
-optim[-] alterna as otimizações do compilador C (ativado por
padrão)
-cpp[-] forçar compilação em modo C/C++
-cpp=<value> select C++ mode. Allowed values are: def, yes, no
-map[-] criar (ou não) o arquivo map
-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>)
-strip[-] strip (ou não) arquivos binários
-trace[-] exibir os comandos executados
-beep[-] ativa (ou desativa) um beep simples em caso de sucesso ou
um beep duplo em caso de erro
-ignore[-] ignore erros quando executar as ferramentas de compilação
(padrão: off)
-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
-warn=<lev> define o nível de avisos (warnings) do compilador C
<lev> pode ser: max, yes, low, no, def (padrão: yes)
-compr=<lev> comprime o execut vel/biblioteca dinƒnica (necessita de
UPX)
<lev> pode ser: yes, no, min, max
-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 diretiva _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)
-sign=<key> sign executable with <key> (Windows and Darwin only)
-signpw=<pw> use <pw> as password when signing executable (Windows and
Darwin 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 (case sensitive), it must be at least two
characters long. In case you don't specify <file>, the
list of files in that group will be emptied.
-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)
-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 single flag to import library creation command
-prgflag=<f> especifica flags para o Harbour
-runflag=<f> argumentos … serem passados ao executável gerado quando
-run for utilizado
-cflag+=<f> pass single 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
-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.
-jobs=<n> dispara <n> threads de compilação (apenas plataformas
multiprocessadas)
-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 substituídos 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.
-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. Empty parameter will disable it.
-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
HBMK_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.
-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.
-depimplibd=<d:lib> <d> is the name of the dependency. Set generated import
library name to <lib>

-plugin=<filename> add plugin. <filename> can be: .hb, .prg, .hrb
-pi=<filename> pass input file to plugins
-pflag=<f> pass single 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.

-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 accept raw C flags
create link/copy hbmk2 to hbcc for the same effect
-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

-hbreg[=global] register Harbour Script (.hb) with hbmk2 (Windows only)
-hbunreg[=global] unregister Harbour Script (.hb) from hbmk2 (Windows only)

-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[=nested] output Harbour build information. Output is in JSON
format. The included paths always contain forward
slashes. Each JSON block is followed by an 0x0A byte.

-plat=<platform> force/select target platform (default: autodetection)
-comp=<compiler> force/select C compiler (default: autodetection)
Special value:
- bld: use original build settings (default on *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, -i 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 hbmk2.
- O script hbmk.hbm no diretório atual ser  sempre processado se existir.
- .hbc options (they should come in separate lines): libs=[<libname[s]>],
hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[<libname[s]>],
frameworks=[<framework[s]>], prgflags=[Harbour flags], cflags=[C compiler
flags], resflags=[resource compiler flags], ldflags=[linker flags],
pflags=[flags for plugins], libpaths=[paths], sources=[source files],
headers=[Harbour header files], psources=[source files for plugins],
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|min|max], head=[off|full|native|dep], skip=<reason>,
stop=<reason>, echo=<text>
Lines starting with '#' char are ignored
- 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|allbcc|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_dirname}, ${hb_name}, ${hb_self}, ${hb_curdir}, ${hb_tempdir},
${hb_targetname}, ${hb_targettype}, ${hb_plat}, ${hb_comp}, ${hb_comp_ver},
${hb_build}, ${hb_cpu}, ${hb_work}, ${hb_workdynsub}, ${hb_dynprefix},
${hb_dynsuffix}, ${hb_dynext}, ${hb_ver}, ${hb_verstr}, ${hb_major},
${hb_minor}, ${hb_release}, ${hb_status}, ${hb_revision}, ${hb_host_plat},
${hb_host_plat_unix}, ${hb_bin}, ${hb_lib}, ${hb_lib3rd}, ${hb_dyn},
${hb_inc}, ${hb_first}, ${hb_outputdir}, ${hb_outputname}, ${hb_level},
${<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`".
- Libraries and object files built with/for CA-Cl*pper won't work with any
supported platform/compiler.
- Defaults and feature support may vary by platform/compiler.
- As opções tamb‚m podem ser especificados na vari vel de ambiente
HBMK_OPTIONS
- .hb or .hrb file passed as first parameter will be run as Harbour script.
Note, for Harbour scripts, the codepage is set to UTF-8 by default.
- . (dot) passed as first parameter will enter the interactive Harbour shell.

Valores suportados para <comp> conforme a <plat> disponível:
- linux : gcc, clang, icc, watcom, sunpro, open64
- darwin : gcc, clang, icc
- win : mingw, msvc, clang, bcc, bcc64, 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
- aix : gcc
- sunos : gcc, sunpro


 


[]s
иαldσ dj

2 comentários:

  1. Preciso saber como criar uma .LIB com o Harbour 3.0.
    Criei o seguinte .hbp:
    # SIBRAHB3
    -inc
    -b
    -m
    -rebuild
    -hblib
    -oSIBRAHB3
    SIUVERAO.PRG
    SUBSIBRA.PRG

    Entretanto, criou um arquivo libSIBRAHB3.a
    Quero criar SIBRAHB.LIB

    ResponderExcluir
  2. Utitilze o Barland C para compilar a sua .lib.

    ResponderExcluir