How to Build on Windows

In the BIN folder where your Harbor was installed, is the file HBMK.BAT. This batch file will help you compile your applications in a Microsoft.
 

"hbmk" tries to produce an executable from your .prg file. It's a simple equivalent of cl.bat from the CA-Clipper distribution.

All these scripts accept command line switches:
-o<outputfilename>   # output file name
-static              # link with static Harbour libs
-fullstatic          # link with all static libs
-shared              # link with shared libs (default)
-mt                  # link with multi-thread libs
-gt<hbgt>            # link with <hbgt> GT driver, can be repeated to
                     # link with more GTs. The first one will be
                     
# the default at runtime
-xbgtk               # link with xbgtk library (xBase GTK+ interface)
-hwgui               # link with HWGUI library (GTK+ interface)
-l<libname>          # link with <libname> library
-L<libpath>          # additional path to search for libraries
-fmstat              # link with the memory statistics lib
-nofmstat            # do not link with the memory statistics lib (default)
-[no]strip           # strip (no strip) binaries
-main=<main_func>    # set the name of main program function/procedure.
                     # if not set then 'MAIN' is used or if it doesn't
                     # exist the name of first public function/procedure
                     # in first linked object module (link)

Link options work only with "hblnk" and "hbmk" and have no effect in "hbcc" and "hbcmp". Other options are passed to Harbour/C compiler/linker.

An example compile/link session looks like:
---------------------------------------------------------------------------------------druzus@uran:~/tmp$ cat foo.prg
function main()
?
"Hello, World!"
return nil
druzus@uran:~/tmp$ hbcmp foo
Harbour Compiler Alpha build 46.2 (Flex)
Copyright 1999-2006, http://harbour-project.org/
Compiling 'foo.prg'...
Lines 5, Functions/Procedures 2
Generating C source output to 'foo.c'... Done.
druzus@uran:~/tmp$ hblnk foo.o
druzus@uran:~/tmp$ strip foo
druzus@uran:~/tmp$ ls -l foo -rwxrwxr-x 1 druzus druzus 3824 maj 17 02:46 foo ---------------------------------------------------------------------------------------

or using hbmk only:
---------------------------------------------------------------------------------------
druzus@uran:~/tmp
$ cat foo.prg
function main()
?
"Hello, World!"
return nil


druzus@uran:~/tmp$ hbmk foo
Harbour Compiler Alpha build 46.2 (Flex)
Copyright 1999-2006, http://harbour-project.org/
Compiling 'foo.prg'...
Lines 5, Functions/Procedures 2
Generating C source output to 'foo.c'... Done.

druzus@uran:~/tmp$ ls -l foo
-rwxrwxr-x 1 druzus druzus 3824 maj 17 02:46 foo
---------------------------------------------------------------------------------------


You will find additional wonderful tools: /usr/bin/hbrun
You can run clipper/xbase compatible source files with it if you only put in their first line: #!/usr/bin/hbrun

For example:
----------------------------------------------------------------------
druzus@uran:~/tmp$ cat foo.prg
#!/usr/bin/hbrun
function main()
?
"Hello, World!, This is a script !!! :-)"
return nil

druzus@uran:~/tmp$ chmod +x foo.prg
druzus@uran:~/tmp$ ./foo.prg

Hello, World!, This is a script !!! :-)

druzus@uran:~/tmp$

I hope you will find this information useful,
Przemyslaw Czerpak (druzus/at/priv.onet.pl)