Harbour Make (hbmk2) 2.0.1dev (Rev. 13476)
Copyright (c) 1999-2010, Viktor Szakats
http://www.harbour-project.org/
Translation (it-IT): (add your name here)
Syntax:
hbmk2 [options] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.po|.pot|.hbl|@.clp|.d]>
Options:
-o<outname> output file name
-l<libname> link with <libname> library. <libname> should be without
path, extension and 'lib' prefix (unless part of libname).
-L<libpath> additional path to search for libraries
-i<p>|-incpath=<p> additional path to search for headers
-static|-shared link with static/shared libs
-mt|-st link with multi/single-thread VM
-gt<name> link with GT<name> GT driver, can be repeated to link with
more GTs. First one will be the default at runtime
-hblib create static library
-hbdyn create dynamic library
-gui|-std create GUI/console executable
-main=<mainfunc> override the name of starting function/procedure
-fullstatic link with all static libs
-[full|fix]shared create shared Harbour binaries without/with absolute dir
reference to Harbour library (default: 'fullshared' when
Harbour is installed on system location, 'fixshared'
otherwise) (fix/full option in *nix only)
-nulrdd[-] link with nulrdd
-[no]debug add/exclude C compiler debug info. For Harbour level
debug, use Harbour option -b as usual
-[no]optim toggle C compiler optimizations (default: on)
-[no]cpp[=def] force C/C++ mode or reset to default
-[no]map create (or not) a map file
-[no]implib create (or not) an import library (in -hbdyn mode)
-[no]strip strip (no strip) binaries
-[no]trace show commands executed
-[no]beep enable (or disable) single beep on successful exit, double
beep on failure
-[no]ignore ignore errors when running compiler tools (default: off)
-nohblib[-] do not use static core Harbour libraries when linking
-nolibgrouping[-] disable library grouping on gcc based compilers
-nomiscsyslib[-] don't add extra list of system libraries to default
library list
-traceonly show commands to be executed, but don't execute them
-[no]warn[=lev] set C compiler warning level
<lev> can be: yes, no, def (default: yes)
-[no]compr[=lev] compress executable/dynamic lib (needs UPX)
<lev> can be: min, max, def
-[no]run run/don't run output executable
-vcshead=<file> generate .ch header file with local repository
information. SVN, CVS, Git, Mercurial, Bazaar and Fossil
are currently supported. Generated header will define
macro _HBMK_VCS_TYPE_ with the name of detected VCS and
_HBMK_VCS_ID_ with the unique ID of local repository
-tshead=<file> generate .ch header file with timestamp information.
Generated header will define macros _HBMK_BUILD_DATE_,
_HBMK_BUILD_TIME_, _HBMK_BUILD_TIMESTAMP_ with the
date/time of build
-icon=<file> set <file> as application icon. <file> should be a
supported format on the target platform (experimental)
-instpath=<path> copy target to <path>. if <path> is a directory, it should
end with path separator. can be specified multiple times
-nohbc do not process .hbc files in current directory
-stop stop without doing anything
-echo=<text> echo text on screen
-bldf[-] inherit all/no (default) flags from Harbour build
-bldf=[p][c][l] inherit .prg/.c/linker flags (or none) from Harbour build
-inctrypath=<p> additional path to autodetect .c header locations
-prgflag=<f> pass flag to Harbour
-cflag=<f> pass flag to C compiler
-resflag=<f> pass flag to resource compiler (Windows only)
-ldflag=<f> pass flag to linker (executable)
-aflag=<f> pass flag to linker (static library)
-dflag=<f> pass flag to linker (dynamic library)
-runflag=<f> pass flag to output executable when -run option is used
-jobs=<n> start n compilation threads (multiprocess platforms only)
-inc enable incremental build mode
-[no]head[=<m>] control source header parsing (in incremental build mode)
<m> can be: native, full, partial (default), off
-rebuild rebuild all (in incremental build mode)
-clean clean (in incremental build mode)
-workdir=<dir> working directory for incremental build mode
(default: .hbmk/plat/comp)
-hbl[=<output>] output .hbl filename. %{hb_lng} macro is accepted in
filename
-lng=<languages> list of languages to be replaced in %{hb_lng} macros in
.pot/.po filenames and output .hbl/.po filenames. Comma
separared list:
-lng=en-EN,hu-HU,de
-po=<output> create/update .po file from source. Merge it with previous
.po file of the same name
-[no]minipo don't (or do) add Harbour version number and source file
reference to .po (default: add them)
-rebuildpo recreate .po file, thus removing all obsolete entries in
it
-target=<script> specify a new build target. <script> can be .prg (or no
extension) or .hbm file (available on command line only)
-target marks beginning of options belonging to a new build target
(available on command line only)
-alltarget marks beginning of common options belonging to all targets
(available on command line only)
-hbrun run target
-hbraw stop after running Harbour compiler
-hbcmp|-clipper stop after creating the object files
create link/copy hbmk2 to hbcmp/clipper for the same
effect
-hbcc stop after creating the object files and accept raw C
flags
create link/copy hbmk2 to hbcc for the same effect
-hblnk accept raw linker flags
-hb10 enable Harbour 1.0.x compatibility mode (experimental)
-xhb enable xhb mode (experimental)
-hbc enable pure C mode (experimental)
-exospace emulate Clipper compatible linker behavior
create link/copy hbmk2 to rtlink/blinker/exospace for the
same effect
-hbmake=<file> convert hbmake project file to .hbp file (experimental)
-xbp=<file> convert .xbp (xbuild) project file to .hbp file
(experimental)
-xhp=<file> convert .xhp (xMate) project file to .hbp file
(experimental)
--hbdirbin output Harbour binary directory
--hbdirdyn output Harbour dynamic library directory
--hbdirlib output Harbour static library directory
--hbdirinc output Harbour header directory
-plat[form]=<plat> select target platform.
-comp[iler]=<comp> select C compiler.
Special value:
- bld: use original build settings (default on *nix)
-build=<name> use a specific build name
-lang=<lang> override default language. Similar to HB_LANG envvar.
--version display version header only
-pause force waiting for a key on exit in case of failure (with
alternate GTs only)
-info turn on informational messages
-quiet suppress all screen messages
Notes:
- <script> can be <@script> (.hbm format), <script.hbm>, <script.hbp> (marks
a new target) or <script.hbc>.
- Multiple -l, -L and <script> parameters are accepted.
- Regular Harbour compiler options are also accepted.
- hbmk.cfg option file in hbmk2 directory is always processed if it exists.
On *nix platforms ~/.harbour, /etc/harbour, <base>/etc/harbour, <base>/etc
are checked (in that order) before the hbmk2 directory. The file format is
the same as .hbc.
- hbmk.hbm make script in current directory is always processed if it exists.
- .hbc config files in current dir are automatically processed.
- .hbc options (they should come in separate lines): libs=[<libname[s]>],
hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[<libname[s]>],
prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource
compiler flags], ldflags=[linker flags], libpaths=[paths], sources=[source
files], incpaths=[paths], inctrypaths=[paths], instpaths=[paths],
gui|mt|shared|nulrdd|debug|opt|map|implib|strip|run|inc=[yes|no],
cpp=[yes|no|def], warn=[yes|no|def], compr=[yes|no|def|min|max],
head=[off|partial|full|native], skip=[yes|no], echo=<text>
Lines starting with '#' char are ignored
- Platform filters are accepted in each .hbc line and with several options.
Filter format: {[!][<plat>|<comp>|<keyword>]}. Filters can be combined
using '&', '|' operators and grouped by parantheses. Ex.: {win}, {gcc},
{linux|darwin}, {win&!pocc}, {(win|linux)&!watcom}, {unix&mt&gui},
-cflag={win}-DMYDEF, -stop{dos}, -stop{!allwin},
{allpocc|allgcc|allmingw|unix}, {allmsvc}, {x86|x86_64|ia64|arm},
{debug|nodebug|gui|std|mt|st|xhb}
- Certain .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=,
inctrypaths=, instpaths=, echo=) and corresponding command line parameters
will accept 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= also accepts %{hb_name} which translates
to the name of the .hbc file under search.
- Options accepting macros also support command substitution. Enclose command
inside ``, and, if the command contains space, also enclose in double
quotes. F.e. "-cflag=`wx-config --cflags`", or
ldflags={unix&gcc}"`wx-config --libs`".
- Defaults and feature support vary by platform/compiler.
- Options can also be specified in environment variable HBMK_OPTIONS
Supported <comp> values for each supported <plat> value:
- linux : gcc, clang, icc, watcom, sunpro, open64
- darwin : gcc, clang, icc
- win : mingw, msvc, bcc, watcom, icc, pocc, cygwin, xcc,
- mingw64, msvc64, msvcia64, iccia64, pocc64
- wce : mingwarm, mingw, msvcarm, poccarm
- os2 : gcc, gccomf, watcom
- dos : djgpp, watcom
- bsd : gcc
- hpux : gcc
- beos : gcc
- sunos : gcc, sunpro