{"id":13546227,"url":"https://github.com/harbour/core","last_synced_at":"2026-03-13T01:33:55.133Z","repository":{"id":7437755,"uuid":"8777307","full_name":"harbour/core","owner":"harbour","description":"Portable, xBase compatible programming language and environment","archived":false,"fork":false,"pushed_at":"2026-02-27T20:27:55.000Z","size":172811,"stargazers_count":375,"open_issues_count":50,"forks_count":215,"subscribers_count":78,"default_branch":"master","last_synced_at":"2026-02-28T00:40:35.241Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://harbour.github.io/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harbour.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.txt","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-03-14T14:38:48.000Z","updated_at":"2026-02-27T20:28:00.000Z","dependencies_parsed_at":"2025-08-29T12:20:47.343Z","dependency_job_id":"9deee9a3-1e47-4c32-af48-17a598161527","html_url":"https://github.com/harbour/core","commit_stats":{"total_commits":19727,"total_committers":83,"mean_commits":"237.67469879518072","dds":0.5840218989202616,"last_synced_commit":"b7b69eb00e01b5404adb76bcc6ee481d3cbc44d0"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/harbour/core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbour%2Fcore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbour%2Fcore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbour%2Fcore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbour%2Fcore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harbour","download_url":"https://codeload.github.com/harbour/core/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbour%2Fcore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30453744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T21:31:01.033Z","status":"ssl_error","status_checked_at":"2026-03-12T21:30:43.161Z","response_time":114,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T12:00:34.284Z","updated_at":"2026-03-13T01:33:55.089Z","avatar_url":"https://github.com/harbour.png","language":"C","readme":"# Welcome to Harbour [![linux-ci](https://github.com/harbour/core/actions/workflows/linux-ci.yml/badge.svg)](https://github.com/harbour/core/actions/workflows/linux-ci.yml) [![windows-ci](https://github.com/harbour/core/actions/workflows/windows-ci.yml/badge.svg)](https://github.com/harbour/core/actions/workflows/windows-ci.yml) [![macos-ci](https://github.com/harbour/core/actions/workflows/macos-ci.yml/badge.svg)](https://github.com/harbour/core/actions/workflows/macos-ci.yml) [![vm1-ci](https://github.com/harbour/core/actions/workflows/vm1-ci.yml/badge.svg)](https://github.com/harbour/core/actions/workflows/vm1-ci.yml) [![vm2-ci](https://github.com/harbour/core/actions/workflows/vm2-ci.yml/badge.svg)](https://github.com/harbour/core/actions/workflows/vm2-ci.yml)\n\nHarbour is the free software implementation of a multi-platform,\nmulti-threading, object-oriented, scriptable programming language,\nbackward compatible with Clipper/xBase. Harbour consists of\na compiler and runtime libraries with multiple UI and database\nbackends, its own make system and a large collection of libraries\nand interfaces to many popular APIs.\n\n# Table of Content\n\n1. [Guarantees and Liability](#guarantees-and-liability)\n2. [How to Participate](#how-to-participate)\n3. [How to Get](#how-to-get)\n4. [How to Build](#how-to-build)\n5. [How to Do a Partial Build](#how-to-do-a-partial-build)\n6. [How to Create Distributable Packages](#how-to-create-distributable-packages)\n7. [How to Enable Optional Components](#how-to-enable-optional-components)\n8. [Build Options](#build-options)\n9. [Build Examples](#build-examples)\n10. [Build Your Own Harbour App](#build-your-own-harbour-app)\n11. [Debugging Options](#debugging-options)\n12. [Troubleshooting](#troubleshooting)\n13. [Supported Platforms and C Compilers](#supported-platforms-and-c-compilers)\n14. [Platform Matrix](#platform-matrix)\n15. [External links](#external-links)\n16. [Harbour Links](#harbour-links)\n\n---\n\n# Guarantees and Liability\n\n   This document and all other parts of Harbour are distributed in the\n   hope they will be useful, but there is NO GUARANTEE that they are\n   complete, accurate, non-infringing or usable for any purpose whatsoever.\n   Contributors are NOT LIABLE for any damages that result from using\n   Harbour in any ways. For more legal details, see [LICENSE](LICENSE.txt).\n\n   If you think you can make Harbour better, start to contribute.\n   See [How to Participate](#how-to-participate).\n\n   The information this document is subject to change without notice\n   and does not represent any future commitment by the participants\n   of the project.\n\n\n# How to Participate\n\nThere are several ways to help making Harbour better:\n\n- You can give feedback/suggestions to developers on available\n  channels, see [Harbour Links](#harbour-links).\n- Submit a change:\n  1. Fork Harbour\n  2. Create a branch: `git checkout -b my_mod`\n  3. Do commit pre-check and new log entry: `hbrun bin/commit`\n  4. Commit your changes: `git commit -am \"Added my feature\"`\n  5. Push to the branch: `git push origin my_mod`\n  6. Open a Pull Request\n- Always use the same coding/formatting style as you find in\n  the files you're modifying. The easiest way to achieve this\n  is to use these commands to format the sources:\n\n        $ uncrustify -c \u003charbour_dir\u003e/bin/harbour.ucf \u003csource(.c|.h)\u003e\n        $ \u003charbour_dir\u003e/bin/hbformat \u003csource(.prg|.hb|.ch)\u003e\n\n- Text editor setting for Harbour files\n  - Encoding is either 7-bit ASCII or UTF-8 (without [BOM](https://en.wikipedia.org/wiki/Byte_order_mark))\n  - Always use spaces, never tabs\n  - Remove trailing spaces from lines\n  - Always keep one (not zero or multiple) newline at the end of file\n  - Use platform native newline (CRLF or LF)\n- In the rare case you need to send something large (\u003e 100KB),\n  use this [free service](http://dropcanvas.com).\n- Of course, there is more into Harbour contribution than writing\n  code, so you're welcome to do so in other areas like documentation,\n  helping fellow users, giving input on decisions, testing in\n  various environments, volunteering in administration tasks, etc.\n- Participate in localization:\u003cbr /\u003e\n  [![Localization Status](https://www.transifex.com/projects/p/harbour/resource/hbmk2/chart/image_png)](https://www.transifex.com/projects/p/harbour/)\n\n\n# How to Get\n\n## Stable versions\n\n### Harbour stable binary download\n\nDownload binary archive from this page and unpack or install:\n\n* \u003chttp://sourceforge.net/projects/harbour-project/files/\u003e\u003cbr /\u003e\n(choose the highest version number)\n\n### Harbour stable source download\n\nDownload source archive from this page and unpack:\n\n* \u003chttp://sourceforge.net/projects/harbour-project/files/source/\u003e\u003cbr /\u003e\n(choose the highest version number)\n\n\n## Unstable versions\n\n\u003e WARNING:\n\u003e Recommended\n\u003e [for](https://groups.google.com/forum/#!msg/harbour-users/2fwUzdKwpKA/32nI4WhZLfYJ)\n\u003e [users](https://groups.google.com/forum/#!msg/harbour-users/Ro99f8S6my0/KvfjhCx_jE4J)\n\u003e contributing to Harbour development, following the development mailing list,\n\u003e commits and reading [ChangeLog.txt](ChangeLog.txt?raw=true).\n\n### Harbour live source repository\n\nYou'll need Git version control software installed on your system,\nand issue this command:\n\n    git clone https://github.com/harbour/core.git harbour-core\n\nYou can get subsequent updates using this command:\n\n    git pull\n\n### Harbour unstable sources\n\nDownload source archive from any of these links and unpack:\n\n* \u003chttps://github.com/harbour/core/archive/master.zip\u003e\n* \u003chttps://github.com/harbour/core/archive/master.tar.gz\u003e\n\n### Harbour unstable binaries (updated once a day from live source repository)\n\nWindows (unified):\n\n* \u003chttp://sourceforge.net/projects/harbour-project/files/binaries-windows/nightly/harbour-nightly-win.exe/download\u003e\u003cbr /\u003e\n* \u003chttp://sourceforge.net/projects/harbour-project/files/binaries-windows/nightly/harbour-nightly-win.7z/download\u003e\n\n### Follow commits using any of these facilities\n\n* [Web](https://github.com/harbour/core/commits/master)\n* [RSS](https://github.com/harbour/core/commits/master.atom)\n* [Twitter](https://twitter.com/harbourdev)\n* [E-mail](https://groups.google.com/forum/?fromgroups=#!forum/harbour-commits)\n* [Mac app](https://itunes.apple.com/us/app/committed/id560767719)\n* [Mac tool](https://github.com/marcocampana/git-notifier)\n\n\n# How to Build\n\n\u003e Before reporting a problem to developers, make sure to read\n\u003e [Troubleshooting](#troubleshooting) and try the suggestions\n\u003e you find there.\n\nFor all platforms you'll need:\n\n* Supported ANSI C compiler\n* GNU Make (3.81 recommended, minimum 3.79 required, see also platform details)\n* Harbour sources (2.0.0 or upper)\n\n## on Windows hosts (possible cross-build targets: Windows CE, MS-DOS, OS/2, Linux)\n\nPlatform specific prerequisites:\n\n1. Windows XP or upper system is recommended to build Harbour.\n2. Make sure to have your C compiler of choice properly installed\n   in PATH. Refer to your C compiler installation and setup\n   instructions for details. It's recommended to make sure no tools\n   in your PATH belonging to other C compilers are interfering with\n   your setup. It's also highly discouraged to keep multiple copies\n   of the same compiler, or different versions of the same compiler\n   in PATH at the same time. For the list of supported compilers,\n   look up [Supported Platforms and C Compilers](#supported-platforms-and-c-compilers).\n3. GNU Make 3.81 or upper is required. A copy of this tool\n   is included in all Harbour packages, so you don't have to do\n   anything.\n   If you want to get it separately, you can find it [here](http://sourceforge.net/projects/mingw/files/MinGW/Extension/make/)\n   Unpack it to your PATH or Harbour source root directory,\n   and run it as `mingw32-make`.\n\nTo build:\n\n    \u003e win-make [install]\n\nTo test it, type:\n\n    \u003e cd tests\n    \u003e ..\\bin\\hbmk2 hello.prg\n    \u003e hello\n\nYou should see ``Hello, world!`` on screen.\n\n## on Windows hosts with POSIX shells (MSYS/Cygwin)\n\n\u003e Though you can use these alternative shells to build Harbour on Windows,\n\u003e it's generally recommended to use the native one.\n\nTo build:\n\n    \u003e sh -c make [install]\n\nTo test it, type:\n\n    \u003e cd tests\n    \u003e ..\\bin\\hbmk2 hello.prg\n    \u003e hello\n\nYou should see ``Hello, world!`` on screen.\n\n\u003e When building for Borland C++ make sure that GNU Make\n\u003e is executed when typing ``make``, Borland Make has the same name.\n\n## on MS-DOS hosts (possible cross-build targets: Windows, OS/2, Linux)\n\nMake sure to have your C compiler of choice properly installed in PATH.\n\nTo build:\n\n    \u003e dos-make [install]\n\nTo test it, type:\n\n    \u003e cd tests\n    \u003e ..\\bin\\hbmk2 hello.prg\n    \u003e hello\n\n You should see ``Hello, world!`` on screen.\n\n## on OS/2 hosts (possible cross-build targets: MS-DOS, OS/2, Linux)\n\nTo build:\n\n    \u003e os2-make [install]\n\nTo test it, type:\n\n    \u003e cd tests\n    \u003e ..\\bin\\hbmk2 hello.prg\n    \u003e hello\n\nYou should see ``Hello, world!`` on screen.\n\n## on Linux hosts (possible cross-build targets: Windows, Windows CE, MS-DOS, OS/2)\n\nTo build:\n\n    $ make [install] [HB_PLATFORM=\u003c...\u003e]\n\nTo test it, type:\n\n    $ cd tests\n    $ hbmk2 hello.prg\n    $ ./hello\n\nYou should see ``Hello, world!`` on screen.\n\n## on Darwin (OS X) hosts (possible cross-build targets: Windows, Windows CE, MS-DOS)\n\nPlatform specific prerequisite:\n   Xcode or Command Line Tools for Xcode installed\n\nTo build:\n\n    $ make [install] [HB_PLATFORM=\u003c...\u003e]\n\nTo test it, type:\n\n    $ cd tests\n    $ hbmk2 hello.prg\n    $ ./hello\n\nYou should see ``Hello, world!`` on screen.\n\n\u003e You can override default (host) architecture by adding\n\u003e values below to `HB_USER_CFLAGS`, `HB_USER_LDFLAGS` envvars,\n\u003e you can use multiple values:\u003cbr /\u003e\n\u003e \u003cbr /\u003e\n\u003e Intel 32-bit: `-arch i386`\u003cbr /\u003e\n\u003e Intel 64-bit: `-arch x86_64`\u003cbr /\u003e\n\u003e PPC 32-bit:   `-arch ppc`\u003cbr /\u003e\n\u003e PPC 64-bit:   `-arch ppc64`\n\n## on FreeBSD hosts\n\nPlatform specific prerequisites:\n\n1. You'll need to have the developer tools installed.\n2. Then you'll need to install gmake and optionally bison.\n   If you installed the ports collection, then all you need\n   to do to install bison and gmake is to run the following\n   commands, which may require that you run su root first to\n   get the correct permissions:\n\n        $ cd /usr/ports/devel/gmake\n        $ make\n        $ make install\n        $ make clean\n        $ cd /usr/ports/devel/bison\n        $ make\n        $ make install\n        $ make clean\n\nTo build:\n\n    $ gmake install\n\nTo test it, type:\n\n    $ cd tests\n    $ hbmk2 hello.prg\n    $ ./hello\n\nYou should see ``Hello, world!`` on screen.\n\n## on Minix hosts\n\nInstall GNU make from the Minix pkgsrc repository; for details see [here](http://wiki.minix3.org/en/UsersGuide/InstallingBinaryPackages).\n\nOptionally, GCC may also be installed if you wish to use that instead\nof Clang, the Minix system compiler.\n\n## on other *nix hosts (possible cross-build targets: Windows, Windows CE, MS-DOS)\n\nTo build:\n\n    $ gmake [install] [HB_PLATFORM=\u003c...\u003e]\n\nOr\n\n    $ make [install] [HB_PLATFORM=\u003c...\u003e]\n\nTo test it, type:\n\n    $ cd tests\n    $ hbmk2 hello.prg\n    $ ./hello\n\nYou should see ``Hello, world!`` on screen.\n\n\u003e For sunpro on Solaris:\u003cbr /\u003e\n\u003e If you have any GNU binutils stuff installed, do make sure\n\u003e `/usr/ccs/bin` (the location of the native Sun C compilation\n\u003e system tools) come *before* the GNU binutils components in\n\u003e your `$PATH`.\n\n\n# How to Do a Partial Build\n\nIf you want to build only a specific part of Harbour, like\none core library or all core libraries, or all contrib packages,\nyou have to do everything the same way as for a full build, the\nonly difference is that you first have to go into the specific\nsource directory you want to build. When starting GNU Make,\nall components under that dir will be built:\n\n    cd src/rtl\n    \u003cmake\u003e [clean] [install]\n\nIf you want to rebuild one specific contrib package, use this:\n\n    cd contrib\n    hbmk2 make.hb \u003cname\u003e [clean] [custom hbmk2 options]\n\n\n# How to Create Distributable Packages\n\n## Source .tgz on *nix\n\n    $ package/mpkg_src.sh\n\n## Binary .tgz on *nix\n\n    $ export HB_BUILD_PKG=yes\n    $ make clean install\n\n## Binary .deb on Linux\n\n    $ fakeroot debian/rules binary\n\n## Binary .rpm on Linux\n\n    $ package/mpkg_rpm.sh\n\nYou can fine-tune the build with these options:\n\n    --with static      - link all binaries with static libs\n    --with ads         - build components dependent on ads (rddads)\n    --with allegro     - build components dependent on allegro (gtalleg)\n    --with cups        - build components dependent on cups (hbcups)\n    --with cairo       - build components dependent on cairo (hbcairo)\n    --with curl        - build components dependent on libcurl (hbcurl)\n    --with firebird    - build components dependent on firebird (hbfbird, sddfb)\n    --with freeimage   - build components dependent on freeimage (hbfimage)\n    --with gd          - build components dependent on gd (hbgd)\n    --with mysql       - build components dependent on mysql (hbmysql, sddmy)\n    --with odbc        - build components dependent on odbc (hbodbc, sddodbc)\n    --with pgsql       - build components dependent on pgsql (hbpgsql, sddpg)\n    --with localzlib   - build local copy of zlib library\n    --with localpcre   - build local copy of pcre library\n    --with localpng    - build local copy of png library\n    --with localbz2    - build local copy of bz2 library\n    --without x11      - do not build components dependent on x11 (gtxwc)\n    --without curses   - do not build components dependent on curses (gtcrs)\n    --without slang    - do not build components dependent on slang (gtsln)\n    --without gpllib   - do not build components dependent on GPL 3rd party code\n    --without gpm      - build components without gpm support (gttrm, gtsln, gtcrs)\n\n## Binary .rpm on Linux (cross-builds)\n\n### for Windows:\n\n    $ package/mpkg_rpm_win.sh\n\n### for Windows CE:\n\n    $ package/mpkg_rpm_wce.sh\n\n## Binary .zip and .exe on Windows for all targets (except Linux)\n\n    $ set HB_DIR_NSIS=%ProgramFiles%\\NSIS\\\n    $ set HB_DIR_ZIP=C:\\info-zip\\\n    $ set HB_BUILD_PKG=yes\n\nThen run build as usual with `clean install` options.\nSee: [How to Build](#how-to-build)\n\n## Binary .zip on MS-DOS for all targets (except Linux)\n\n    $ set HB_DIR_ZIP=C:\\info-zip\\\n    $ set HB_BUILD_PKG=yes\n\nThen run build as usual with `clean install` options.\nSee: [How to Build](#how-to-build)\n\n## Unified .7z and .exe installer for Windows\n\n    $ package\\winuni\\mpkg_win_uni.bat\n\n\u003e Carefully read in-file instructions and do the necessary\n\u003e steps before calling the script.\n\n\n# How to Enable Optional Components\n\nCertain Harbour parts \u0026ndash; typically contrib packages \u0026ndash; depend\non 3rd party components. To make these Harbour parts built,you need\nto tell Harbour where to find the headers for these 3rd party\ncomponents.\n\nOn *nix systems most of these 3rd party components will\nautomatically be picked up if installed on well-known standard\nsystem locations.\n\nYou only need to use manual setup if the dependency isn't available\non your platform on a system location, or you wish to use\na non-standard location. Typically you need to do this on non-*nix\n(Windows, MS-DOS, OS/2) systems for all packages and for a few packages\non *nix which aren't available through official package managers\n(f.e. ADS Client).\n\nNote that Harbour is tuned to use 3rd party binary packages in their\ndefault, unmodified \u0026ndash; \"vanilla\" \u0026ndash; install layout created by their\nofficial/mainstream install kits. If you manually move, rename,\ndelete or add files under the 3rd party packages' root directory,\nthe default Harbour build process (especially Windows implib\ngeneration) might not work as expected.\n\nYou can set these environment variables before starting\nthe build. Make sure to adjust them to your own directories:\n\n    HB_WITH_ADS=C:\\ads\\acesdk\n    HB_WITH_ALLEGRO=C:\\allegro\\include\n    HB_WITH_BLAT=C:\\blat\\full\\source\n    HB_WITH_BZIP2=C:\\bzip2 (defaults to locally hosted version if not found)\n    HB_WITH_CAIRO=C:\\cairo\\include\\cairo\n    HB_WITH_CUPS= (on *nix only)\n    HB_WITH_CURL=C:\\curl\\include\n    HB_WITH_CURSES= (on *nix systems and DJGPP, where it's autodetected)\n    HB_WITH_EXPAT=C:\\expat\\lib (defaults to locally hosted version)\n    HB_WITH_FIREBIRD=C:\\Firebird\\include\n    HB_WITH_FREEIMAGE=C:\\FreeImage\\Dist\n    HB_WITH_GD=C:\\gd\\include\n    HB_WITH_GPM= (on Linux only)\n    HB_WITH_GS=C:\\ghostscript-9.01\\psi\n    HB_WITH_GS_BIN=C:\\ghostscript-9.01\\bin (on Windows)\n    HB_WITH_JPEG=C:\\jpeglib (defaults to locally hosted version if not found)\n    HB_WITH_LIBHARU=C:\\libharu\\include (defaults to locally hosted version)\n    HB_WITH_LIBMAGIC= (currently on *nix systems)\n    HB_WITH_LZF=C:\\liblzf (defaults to locally hosted version if not found)\n    HB_WITH_MINILZO=C:\\minilzo\\ (defaults to locally hosted version if not found)\n    HB_WITH_MINIZIP=C:\\zlib\\contrib\\minizip (defaults to locally hosted version if not found)\n    HB_WITH_MXML=C:\\minixml (defaults to locally hosted version if not found)\n    HB_WITH_MYSQL=C:\\mysql\\include\n    HB_WITH_OCILIB=C:\\ocilib\\include\n    HB_WITH_ODBC= (may only be needed on non-Windows systems)\n    HB_WITH_OPENSSL=C:\\openssl\\inc32 OR C:\\openssl\\include\n    HB_WITH_PCRE=C:\\pcre (defaults to locally hosted version if not found)\n    HB_WITH_PGSQL=C:\\pgsql\\include\n    HB_WITH_PNG=C:\\libpng (defaults to locally hosted version if not found)\n    HB_WITH_QT=C:\\Qt\\include (version 4.5.0 or upper is required)\n    HB_WITH_SLANG= (on *nix systems)\n    HB_WITH_SQLITE3=C:\\sqlite3 (defaults to locally hosted version if not found)\n    HB_WITH_TINYMT=C:\\tinymt\\tinymt (defaults to locally hosted version)\n    HB_WITH_WATT= (on MS-DOS systems)\n    HB_WITH_X11= (on *nix systems)\n    HB_WITH_XDIFF=C:\\libxdiff-0.23\\xdiff (defaults to locally hosted version if not found)\n    HB_WITH_ZLIB=C:\\zlib (defaults to locally hosted version if not found)\n\nTo explicitly disable any given components, use the value `no`.\nThis may be useful to avoid autodetection of installed packages\non *nix systems. You may also use the value `local` to force using the\nlocally hosted copy (inside Harbour source repository) of these packages,\nwhere applicable. `nolocal` will explicitly disable using locally hosted\ncopy.\n\nYou can override autodetection of QT 'moc' tool by using HB_QTPATH and\noptionally HB_QTPOSTFIX envvars. This may only be necessary on some *nix\nsystems. F.e.:\n\n   HB_QTPATH=/opt/qt5/bin/\n   HB_QTPOSTFIX=\n\nCertain contribs can be instructed \u0026ndash; when using .hbc files \u0026ndash; to\nlink against static build of their 3rd party lib dependencies (for\nadvanced users only):\n\n    HB_STATIC_ALLEGRO=yes\n    HB_STATIC_CURL=yes\n    HB_STATIC_OPENSSL=yes\n\n\u003e NOTES:\n\u003e\n\u003e    * you need to use native path format to your shell/OS\n\u003e    * spaces in directory names aren't currently supported\n\u003e      (you *can* use 8.3 name alias on Windows platform, though)\n\u003e    * don't put directory names inside double quotes\n\u003e    * use absolute paths\n\n## Darwin (OS X)\n\n1. Install [Homebrew](http://mxcl.github.com/homebrew/)\n2. Install packages:\n\n        $ brew install pcre slang cairo freeimage libgd mysql postgresql qt5\n        $ brew install upx uncrustify ack optipng jpegoptim\n\n## Linux (generic)\n\n### For contrib/rddads lib:\n   Download and install *Advantage Client Engine API for Linux* package\n   (f.e. `aceapi-10.00.0.3.tar.gz`)\n\n### For contrib/hbhpdf lib, if you don't wish to use locally hosted version:\n   Download libharu from \u003chttp://libharu.org/\u003e -\u003e `./configure` -\u003e `make install`\n\n## Linux (.deb based distros: Debian, Ubuntu)\n\nYou'll need these base packages to build/package/test/use Harbour:\n\n    $ sudo apt-get install bash git gcc binutils fakeroot debhelper valgrind upx uncrustify\n\nYou'll need these packages to compile certain contribs and optional Harbour features:\n\n      for gtcrs terminal lib:    $ sudo apt-get install libncurses-dev\n      for gtsln terminal lib:    $ sudo apt-get install libslang2-dev OR\n                                 $ sudo apt-get install libslang1-dev\n      for gtxwc terminal lib:    $ sudo apt-get install libx11-dev\n      for console mouse support: $ sudo apt-get install libgpm-dev OR\n                                 $ sudo apt-get install libgpmg1-dev\n      for contrib/gtalleg lib:   $ sudo apt-get install liballegro4.2-dev\n      for contrib/hbcairo lib:   $ sudo apt-get install libcairo2-dev\n      for contrib/hbcups lib:    $ sudo apt-get install libcups2-dev\n      for contrib/hbcurl lib:    $ sudo apt-get install libcurl4-openssl-dev OR\n                                 $ sudo apt-get install libcurl4-gnutls-dev\n      for contrib/hbfbird lib:   $ sudo apt-get install firebird2.1-dev OR\n                                 $ sudo apt-get install libfirebird2.0-dev\n      for contrib/hbfimage lib:  $ sudo apt-get install libfreeimage-dev\n      for contrib/hbgd lib:      $ sudo apt-get install libgd2-xpm-dev OR\n                                 $ sudo apt-get install libgd-xpm-dev\n      for contrib/hbgs lib:      $ sudo apt-get install libgs-dev\n      for contrib/hbmagic lib:   $ sudo apt-get install libmagic-dev\n      for contrib/hbmysql lib:   $ sudo apt-get install libmysqlclient15-dev\n      for contrib/hbodbc lib:    $ sudo apt-get install unixodbc-dev\n      for contrib/hbpgsql lib:   $ sudo apt-get install libpq-dev\n      for contrib/hbqt lib:      $ sudo apt-get install libqt5-dev\n\nOptional, to override locally hosted sources:\n\n      for bzip2 support:         $ sudo apt-get install libbz2-dev\n      for zlib support:          $ sudo apt-get install zlib1g-dev\n      for pcre (regex) support:  $ sudo apt-get install libpcre3-dev\n      for contrib/hbsqlit3 lib:  $ sudo apt-get install libsqlite3-dev\n      for contrib/hbexpat lib:   $ sudo apt-get install libexpat1-dev\n\n## Linux (.rpm based distros: openSUSE, Fedora, CentOS, Mandriva)\n\nYou'll need these base packages to build/package/test/use Harbour:\n\n    bash git gcc make glibc-devel rpm valgrind upx uncrustify\n\nYou'll need these packages to compile certain contribs and optional Harbour features:\n\n      for gtcrs terminal lib:    ncurses-devel ncurses\n      for gtsln terminal lib:    slang-devel slang\n      for gtxwc terminal lib:    xorg-x11-devel\n                                 XFree86-devel\n      for console mouse support: gpm-devel OR\n                                 gpm\n      for contrib/gtalleg lib:   allegro-devel\n      for contrib/hbcairo lib:   cairo-devel\n      for contrib/hbcups lib:    libcups2-devel\n      for contrib/hbcurl lib:    curl-devel\n      for contrib/hbfbird lib:   firebird-devel\n      for contrib/hbfimage lib:  freeimage-devel\n      for contrib/hbgd lib:      gd-devel\n      for contrib/hbmysql lib:   libmysqlclient-devel OR\n                                 mysql-devel OR\n                                 MySQL-devel\n      for contrib/hbodbc lib:    unixodbc-devel OR\n                                 unixODBC-devel\n      for contrib/hbpgsql lib:   postgresql-devel\n      for contrib/hbqt lib:      qt5-devel\n\n\u003e NOTES:\n\u003e\n\u003e    * You can use following commands on different distros to install packages:\n\u003e\n\u003e         openSUSE:       $ sudo zypper install \u003cpkg\u003e\n\u003e         Fedora, CentOS: $ sudo yum install \u003cpkg\u003e\n\u003e         Mandriva:       $ sudo urpmi \u003cpkg\u003e\n\u003e\n\u003e   * Check [this](http://distrowatch.com/dwres.php?resource=package-management) for more\n\u003e   * On openSUSE, if you want to build 32-bit Harbour on a 64-bit host, install\n\u003e       above packages with `-32bit` appended to their names, f.e. `slang-devel-32bit`\n\n## OpenSolaris\n\n    $ pkg install SUNWgit SUNWgcc SUNWgmake\n\n## FreeBSD\n\nIf you want to use the gtsln library instead of gtstd or gtcrs,\nthen you also need to install libslang. If you installed the ports\ncollection, then all you need to do to install libslang is to run\nthe following commands, which may require that you run su first to\nget the correct permissions:\n\n    $ cd /usr/ports/devel/libslang\n    $ make\n    $ make install\n    $ make clean\n\n\n# Build Options\n\nYou can fine-tune Harbour builds with below listed\nenvironment variables. You can add most of these via the\nGNU Make command line also, using `make VARNAME=value` syntax.\nAll of these settings are optional and all settings are case\nsensitive.\n\n## General\n\n   - `HB_INSTALL_PREFIX`\n\n     Target root directory to install Harbour files.\n     On \\*nix systems the default is set to `/usr/local/`\n     or `$(PREFIX)` if specified, and\n     `/usr/local/harbour-\u003carch\u003e-\u003ccomp\u003e` for cross-builds.\n     It's always set to `./pkg/\u003carch\u003e/\u003ccomp\u003e` when\n     `HB_BUILD_PKG` is set to `yes`. On non-*nix systems,\n     you must set it to a valid directory when using\n     ``install``. Use absolute paths only. For a peace of\n     mind, avoid using spaces and quotes in the name.\n     You have to use path format native to your shell.\n     F.e. to specify `C:\\dir` on Windows, with Cygwin\n     you should use `/cygdrive/c/dir`, with MSYS `/c/dir`.\n\n   - `HB_USER_PRGFLAGS`        User Harbour compiler options\n   - `HB_USER_CFLAGS`          User C compiler options\n   - `HB_USER_RESFLAGS`        User resource compiler options (on win, wce, os2)\n   - `HB_USER_LDFLAGS`         User linker options for executables\n   - `HB_USER_AFLAGS`          User linker options for libraries\n   - `HB_USER_DFLAGS`          User linker options for dynamic libraries\n\n   Set these only if autodetection doesn't suit your purpose:\n\n   - `HB_PLATFORM`             Override platform autodetection\n   - `HB_COMPILER`             Override C compiler autodetection\n\n     See this for possible values:\n     [Supported Platforms and C Compilers](#supported-platforms-and-c-compilers)\n     See also: `HB_CC*` settings.\n\n## Special\n\n   - `HB_BUILD_NAME=[\u003cname\u003e]`\n\n     Create named build. This allows to keep multiple builds in parallel for any\n     given platform/compiler. F.e. debug / release.\n\n     \u003e In current implementation it's appended to compiler directory name, so\n     \u003e all filesystem/platform name rules and limits apply. (Back)slashes will be\n     \u003e stripped from the name though.\n\n   - `HB_BUILD_PKG=yes`\n\n     Create release package. Default: `no`\n     Requires `clean install` in root source dir.\n\n   - `HB_BUILD_DYN=no`\n\n     Create Harbour dynamic libraries. Default: `yes`\n\n   - `HB_BUILD_CONTRIB_DYN=no`\n\n     Create contrib dynamic libraries. Default: `yes`\n\n   - `HB_BUILD_SHARED=yes`\n\n     Create Harbour executables in shared mode.\n     Default: `yes` when `HB_INSTALL_PREFIX` points\n     to a *nix system location, otherwise `no`.\n\n   - `HB_BUILD_DEBUG=yes`\n\n     Create a debug build. Default: `no`\n\n   - `HB_BUILD_STRIP=[all|bin|lib|no]`\n\n     Strip symbols and debug information from binaries.\n     Default: `no`\n\n   - `HB_BUILD_OPTIM=no`\n\n     Enable C compiler optimizations. Default: `yes`\n\n   - `HB_BUILD_MODE=[cpp|c]`\n\n     Change default build mode to C++ or C.\n     Default: `c`, except for msvc* compilers, where it's `cpp`.\n\n   - `HB_BUILD_PARTS=[all|compiler|lib]`\n\n     Build only specific part of Harbour.\n\n   - `HB_BUILD_NOGPLLIB=yes`\n\n     Disable components dependent on GPL 3rd party code,\n     to allow Harbour for commercial (closed source)\n     projects. Default: `no`\n\n   - `HB_BUILD_3RDEXT=no`\n\n     Enable autodetection of 3rd party components\n     on default system locations. Default: `yes`\n\n   - `HB_BUILD_CONTRIBS=no [\u003cl\u003e]`\n\n     Don't build any, or space separated `\u003cl\u003e` list of,\n     contrib packages. Please note it won't prevent\n     building packages which are dependencies of\n     other \u0026ndash; enabled \u0026ndash; packages.\n\n   - `HB_BUILD_CONTRIBS=[\u003cl\u003e]`\n\n     Build space separated `\u003cl\u003e` list of contrib\n     libraries. Build all if left empty (default).\n\n   - `HB_BUILD_ADDONS=\u003cl\u003e`\n\n     Build space separated \u003cl\u003e list of additional .hbp\n     projects.\n\n   - `HB_COMPILER_VER=[\u003cver\u003e]`\n\n     Set C compiler version. This is used with win/msvc,\n     win/mingw and cygwin/gcc targets currently.\n     `\u003cver\u003e` format:\n\n         \u003c15\u003e\u003c0\u003e[\u003c0\u003e] = \u003cmajor\u003e\u003cminor\u003e[.\u003crevision\u003e]\n\n     Default: filled by compiler autodetection or empty\n\n   - `HB_USER_LIBS=[\u003clist\u003e]`\n\n     Add space separated `\u003clist\u003e` of libs to link process.\n     Lib names should be without extension and path.\n     You only need this in special cases, like CodeGuard\n     build with win/bcc.\n\n   - `HB_INSTALL_IMPLIB=no`\n\n     Copy import libraries created for external .dll\n     dependencies to the library install directory in\n     ``install`` build phase. Default: `yes`\n     For Windows/OS/2 targets only. Please note\n     that this feature doesn't work with all possible\n     binary distributions of 3rd party packages.\n     We test only the official/mainstream ones. Also\n     note that the generated implibs will require .dlls\n     compatible with the ones used at build time.\n\n   - `HB_INSTALL_3RDDYN=yes`\n\n     Copy dynamic libraries of external .dll dependencies\n     to the dynamic library directory in ``install`` build\n     phase. Default: no\n\n   - `HB_SRC_ROOTPATH=\u003cdir\u003e`\n\n     When using GNU Make older than 3.81, you shall set\n     the root directory of Harbour source tree as an\n     absolute path. If not set, some build functionality\n     may fail, like detection of 3rd party packages with\n     locally hosted sources.\n     With newer make versions, this variable is ignored.\n\n   - `HB_REBUILD_EXTERN=yes`\n\n     Rebuild extern headers. This is typically used by\n     developers after code modifications or before\n     release. Default: no\n\n   - `HB_REBUILD_PARSER=yes`\n\n     Rebuild language parser sources. Typically\n     you only need this if your are Harbour core\n     developer modifying grammar rules (.y).\n     Requires GNU Bison 1.28 or upper in PATH.\n     Default: no\n\n   - `HB_CCPATH=[\u003cdir\u003e/]`\n\n     Used with non-*nix gcc family compilers (and\n     sunpro) to specify path to compiler/linker/archive\n     tool to help them run from *nix hosts as cross-build\n     tools. Ending slash must be added.\n\n   - `HB_CCPREFIX=[\u003cprefix\u003e]`\n\n     Used with gcc or clang compiler family to specify\n     compiler/linker/archive tool name prefix.\n\n   - `HB_CCSUFFIX=[\u003csuffix\u003e]`\n\n     Used with gcc compiler family to specify\n     compiler/linker tool name suffix \u0026ndash; usually\n     version number.\n\n## Cross-building\n\nYou can build Harbour for target platforms different than host\nplatform. F.e. you can create Windows build on *nix systems, Linux\nbuilds on Windows systems, etc. It's also possible to build targets\nfor different than host CPU architectures. F.e. you can create\nWindows 64-bit build on 32-bit Windows platform, or Linux x86-64\nbuild on x86 hosts, or Linux MIPS build on x86 host, etc.\n\nPoint this envvar to the directory where native Harbour executables\nfor your host platform can be found:\n\n      HB_HOST_BIN=\u003charbour_native_build_dir\u003e\\bin\n\nIf you leave this value empty, the make system will try to autodetect it,\nso in practice all you have to do is to create a native build first (no\n``install`` required), then create the cross-build. If you set this value\nmanually, it may be useful to know that harbour, hbpp and hbmk2\nexecutables are required for a cross-build process to succeed.\n\n\n# Build Examples\n\n## on Windows 32-bit hosts\n\n\u003e NOTES:\n\u003e\n\u003e - All code below should be copied to batch files or typed at command\n\u003e   line.\n\u003e - Naturally, you'll need to adapt dirs to valid ones on your system.\n\u003e   Don't use spaces in dirs.\n\u003e - You can use additional `clean`, `install` or `clean install`\n\u003e   make parameters depending on what you want to do.\n\u003e - To redirect all output to a log file, append this after the make\n\u003e   command: `\u003e log.txt 2\u003e\u00261`\n\n```batchfile\nrem MSVC 2012\ncall \"%ProgramFiles%\\Microsoft Visual Studio 11.0\\VC\\vcvarsall.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2012 for Windows x86-64\nrem (requires preceding build for native target)\ncall \"%ProgramFiles%\\Microsoft Visual Studio 11.0\\VC\\vcvarsall.bat\" x86_amd64\nwin-make\n```\n\n```batchfile\nrem MSVC 2010 and Windows SDK 7.1\ncall \"%ProgramFiles%\\Microsoft Visual Studio 10.0\\VC\\vcvarsall.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2010 (Professional or above) and Windows SDK 7.1 for Windows x86-64\nrem (requires preceding build for native target)\ncall \"%ProgramFiles%\\Microsoft Visual Studio 10.0\\VC\\vcvarsall.bat\" x86_amd64\nwin-make\n```\n\n```batchfile\nrem Windows SDK 7\ncall \"%ProgramFiles%\\Microsoft Visual Studio 9.0\\VC\\bin\\vcvars32.bat\"\nwin-make\n```\n\n```batchfile\nrem Windows SDK 7 for Windows x86-64\nrem (requires preceding build for native target)\ncall \"%ProgramFiles%\\Microsoft Visual Studio 9.0\\VC\\bin\\vcvarsx86_amd64.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2008 + SDK\nset WindowsSDKDir=%ProgramFiles%\\Microsoft SDKs\\Windows\\v6.0A\\\ncall \"%ProgramFiles%\\Microsoft Visual Studio 9.0\\VC\\vcvarsall.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2008\ncall \"%ProgramFiles%\\Microsoft Visual Studio 9.0\\VC\\vcvarsall.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2008 (Standard or above) for Windows x86-64\nrem (requires preceding build for native target)\ncall \"%ProgramFiles%\\Microsoft Visual Studio 9.0\\VC\\vcvarsall.bat\" x86_amd64\nwin-make\n```\n\n```batchfile\nrem MSVC 2008 (Team Suite) for Windows IA-64 Itanium\nrem (requires preceding build for native target)\ncall \"%ProgramFiles%\\Microsoft Visual Studio 9.0\\VC\\vcvarsall.bat\" x86_ia64\nwin-make\n```\n\n```batchfile\nrem MSVC 2008 for Windows CE ARM\nrem (requires preceding build for native target)\nset INCLUDE=%ProgramFiles%\\Microsoft Visual Studio 9.0\\VC\\ce\\include;%ProgramFiles%\\Windows Mobile 5.0 SDK R2\\PocketPC\\Include\\Armv4i\nset LIB=%ProgramFiles%\\Microsoft Visual Studio 9.0\\VC\\ce\\lib\\armv4i;%ProgramFiles%\\Windows Mobile 5.0 SDK R2\\PocketPC\\Lib\\ARMV4I\nset PATH=%ProgramFiles%\\Microsoft Visual Studio 9.0\\VC\\ce\\bin\\x86_arm;%ProgramFiles%\\Microsoft Visual Studio 9.0\\Common7\\IDE;%PATH%\nwin-make\n```\n\n```batchfile\nrem MSVC 2005\ncall \"%ProgramFiles%\\Microsoft Visual Studio 8\\VC\\vcvarsall.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2005 for Windows CE ARM\nrem (requires preceding build for native target)\nset INCLUDE=%ProgramFiles%\\Microsoft Visual Studio 8\\VC\\ce\\include;%ProgramFiles%\\Windows Mobile 5.0 SDK R2\\PocketPC\\Include\\Armv4i\nset LIB=%ProgramFiles%\\Microsoft Visual Studio 8\\VC\\ce\\lib\\armv4i;%ProgramFiles%\\Windows Mobile 5.0 SDK R2\\PocketPC\\Lib\\ARMV4I\nset PATH=%ProgramFiles%\\Microsoft Visual Studio 8\\VC\\ce\\bin\\x86_arm;%ProgramFiles%\\Microsoft Visual Studio 8\\Common7\\IDE;%PATH%\nwin-make\n```\n\n```batchfile\nrem MSVC .NET 2003 (untested)\ncall \"%ProgramFiles%\\Microsoft Visual Studio .NET 2003\\VC7\\vcvarsall.bat\"\nwin-make\n```\n\n```batchfile\nrem MinGW GCC\nset PATH=C:\\mingw\\bin;%PATH%\nwin-make\n```\n\n```batchfile\nrem MinGW GCC using MSYS shell\nset PATH=C:\\msys\\1.0.11\\bin;C:\\mingw\\bin;%PATH%\nsh -c make\n```\n\n```batchfile\nrem MinGW GCC for Windows x86-64\nrem (requires preceding build for native target)\nset PATH=C:\\mingw64\\bin;%PATH%\nwin-make\n```\n\n```batchfile\nrem MinGW GCC for Windows CE ARM\nrem (requires Cygwin + preceding build for native target)\nset PATH=C:\\mingwce\\opt\\mingw32ce\\bin;C:\\cygwin\\bin;%PATH%\nrem optional:\nset CYGWIN=nodosfilewarning\nwin-make\n```\n\n```batchfile\nrem Intel(R) C++\ncall \"%ProgramFiles%\\Intel\\Compiler\\C++\\10.1.014\\IA32\\Bin\\iclvars.bat\"\nwin-make\n```\n\n```batchfile\nrem Intel(R) C++ for Windows IA-64 Itanium\nrem (requires preceding build for native target)\ncall \"%ProgramFiles%\\Intel\\Compiler\\C++\\10.1.025\\Itanium\\Bin\\iclvars.bat\"\nwin-make\n```\n\n```batchfile\nrem Borland C++ 5.5.1\nset PATH=C:\\Borland\\BCC55\\Bin;%PATH%\nwin-make\n```\n\n```batchfile\nrem Pelles C\nset PATH=%ProgramFiles%\\PellesC\\Bin;%PATH%\nset INCLUDE=%ProgramFiles%\\PellesC\\Include;%ProgramFiles%\\PellesC\\Include\\Win;%INCLUDE%\nset LIB=%ProgramFiles%\\PellesC\\Lib;%ProgramFiles%\\PellesC\\Lib\\Win;%LIB%\nwin-make\n```\n\n```batchfile\nrem Pelles C for Windows x86-64\nrem (requires preceding build for native target)\nset PATH=%ProgramFiles%\\PellesC\\Bin;%PATH%\nset INCLUDE=%ProgramFiles%\\PellesC\\Include;%ProgramFiles%\\PellesC\\Include\\Win;%INCLUDE%\nset LIB=%ProgramFiles%\\PellesC\\Lib;%ProgramFiles%\\PellesC\\Lib\\Win64;%LIB%\nwin-make\n```\n\n```batchfile\nrem Pelles C for Windows CE ARM\nrem (requires preceding build for native target)\nset PATH=%ProgramFiles%\\PellesC\\Bin;%PATH%\nset INCLUDE=%ProgramFiles%\\PellesC\\Include\\WinCE;%ProgramFiles%\\PellesC\\Include;%INCLUDE%\nset LIB=%ProgramFiles%\\PellesC\\Lib;%ProgramFiles%\\PellesC\\Lib\\WinCE;%LIB%\nwin-make\n```\n\n```batchfile\nrem Delorie GNU C for MS-DOS (on Intel 32-bit Windows hosts only)\nset DJGPP=C:\\djgpp\\djgpp.env\nset PATH=C:\\djgpp\\bin;%PATH%\nwin-make\n```\n\n```batchfile\nrem Open Watcom C/C++\nSET WATCOM=C:\\watcom\nSET PATH=%WATCOM%\\BINNT;%WATCOM%\\BINW;%PATH%\nSET EDPATH=%WATCOM%\\EDDAT\nSET INCLUDE=%WATCOM%\\H;%WATCOM%\\H\\NT\nwin-make\n```\n\n```batchfile\nrem Open Watcom C/C++ for MS-DOS\nSET WATCOM=C:\\watcom\nSET PATH=%WATCOM%\\BINNT;%PATH%\nSET EDPATH=%WATCOM%\\EDDAT\nSET INCLUDE=%WATCOM%\\H\nwin-make\n```\n\n```batchfile\nrem Open Watcom C/C++ for OS/2\nrem (requires preceding build for Windows target)\nSET WATCOM=C:\\watcom\nSET PATH=%WATCOM%\\BINNT;%WATCOM%\\BINW;%PATH%\nSET BEGINLIBPATH=%WATCOM%\\BINP\\DLL\nSET EDPATH=%WATCOM%\\EDDAT\nSET INCLUDE=%WATCOM%\\H;%WATCOM%\\H\\OS2\nwin-make\n```\n\n```batchfile\nrem Open Watcom C/C++ for Linux\nrem (requires preceding build for Windows target)\nSET WATCOM=C:\\watcom\nSET PATH=%WATCOM%\\BINNT;%WATCOM%\\BINW;%PATH%\nSET EDPATH=%WATCOM%\\EDDAT\nSET INCLUDE=%WATCOM%\\LH\nwin-make\n```\n\n```batchfile\nrem VxWorks GCC x86\nrem (requires preceding build for Windows target)\nwrenv -p vxworks-6.8\nset HB_COMPILER=gcc\nwin-make\n```\n\n```batchfile\nrem VxWorks GCC ARM\nrem (requires preceding build for Windows target)\nwrenv -p vxworks-6.8\nset HB_COMPILER=gcc\nset HB_CPU=arm\nset HB_BUILD_NAME=arm\nwin-make\n```\n\n```batchfile\nrem VxWorks Wind River Compiler x86\nrem (requires preceding build for Windows target)\nwrenv -p vxworks-6.8\nset HB_COMPILER=diab\nwin-make\n```\n\n```batchfile\nrem Symbian OS\nrem (requires preceding build for Windows target)\nset PATH=C:\\Symbian\\CSL Arm Toolchain\\bin;%PATH%\nset HB_PLATFORM=symbian\nset HB_COMPILER=gcc\nset HB_CCPREFIX=arm-none-symbianelf-\nset HB_USER_CFLAGS=-IC:\\Symbian\\SDK\\S60\\devices\\S60_5th_Edition_SDK_v1.0\\epoc32\\include\\stdapis -IC:\\Symbian\\SDK\\S60\\devices\\S60_5th_Edition_SDK_v1.0\\epoc32\\include -D__GCC32__ -D__SYMBIAN32__\nwin-make\n```\n\n```batchfile\nrem Cygwin GCC using Cygwin shell\nset PATH=C:\\cygwin\\bin\nsh -c make\n```\n\n```batchfile\nrem Add these *before* above sample scripts to configure 3rd party dependencies.\nrem When using MSYS or Cygwin shell you'll have to use forward slashes and\nrem also Cygwin drive notation for Cygwin.\nset HB_WITH_ADS=C:\\ads\\acesdk\nset HB_WITH_ALLEGRO=C:\\allegro\\include\nset HB_WITH_BLAT=C:\\blat\\full\\source\nset HB_WITH_CAIRO=C:\\cairo\\include\\cairo\nset HB_WITH_CURL=C:\\curl\\include\nset HB_WITH_FIREBIRD=C:\\Firebird\\include\nset HB_WITH_FREEIMAGE=C:\\FreeImage\\Dist\nset HB_WITH_GD=C:\\gd\\include\nset HB_WITH_MYSQL=C:\\mysql\\include\nset HB_WITH_OCILIB=C:\\ocilib\\include\nset HB_WITH_OPENSSL=C:\\openssl\\inc32\nset HB_WITH_PGSQL=C:\\pgsql\\include\nset HB_WITH_QT=C:\\Qt\\include\n```\n\n## on Windows x86-64 (64-bit) hosts\n\nSame as 32-bit Windows, but, you'll have to change `%ProgramFiles%` to\n`%ProgramFiles(x86)%` for 32-bit and mixed tools, you can build for\nboth x86 and x64 without building a native target first, and potential\ndifferences with some compilers in using native binaries if\nthey are available.\n\n```batchfile\nrem MinGW GCC for Windows x86-64\nset PATH=C:\\mingw64\\bin;%PATH%\nwin-make\n```\n\n```batchfile\nrem MSVC 2012 for Windows x86\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 11.0\\VC\\vcvarsall.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2012 for Windows x86-64\nrem (requires preceding build for native target)\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 11.0\\VC\\vcvarsall.bat\" x86_amd64\nwin-make\n```\n\n```batchfile\nrem MSVC 2010 and Windows SDK 7.1 for Windows x86\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 10.0\\VC\\vcvarsall.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2010 (Professional or above) and Windows SDK 7.1 for Windows x86-64\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 10.0\\VC\\vcvarsall.bat\" amd64\nwin-make\n```\n\n```batchfile\nrem Windows SDK 7 for Windows x86\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 9.0\\VC\\bin\\vcvars32.bat\"\nwin-make\n```\n\n```batchfile\nrem Windows SDK 7 for Windows x86-64\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 9.0\\VC\\bin\\vcvars64.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2008 for Windows x86\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 9.0\\VC\\vcvarsall.bat\"\nwin-make\n```\n\n```batchfile\nrem MSVC 2008 (Standard or above) for Windows x86-64\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 9.0\\VC\\vcvarsall.bat\" amd64\nwin-make\n```\n\n```batchfile\nrem MSVC 2008 (Team Suite) for Windows IA-64 Itanium\nrem (requires preceding build for native target)\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 9.0\\VC\\vcvarsall.bat\" x86_ia64\nwin-make\n```\n\n```batchfile\nrem MSVC 2022 targeting ARM64\nrem (requires preceding build for native target)\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 17.10\\BuildTools\\VC\\Auxiliary\\Build\\vcvarsall.bat\" amd64_arm64\nwin-make\n```\n\n```batchfile\nrem Clang distributed by Visual Studio\nset PATH=\"%ProgramFiles(x86)%\\Microsoft Visual Studio 17.10\\BuildTools\\VC\\Tools\\Llvm\\x64\\bin\";%PATH%\nwin-make\n```\n\n```batchfile\nrem Clang from winlibs.com\nset PATH=C:\\winlibs\\mingw64\\bin;%PATH%\nset HB_COMPILER=clang\nwin-make\n```\n\n```batchfile\nrem Clang x86_64 distributed by MSYS2 from cmd\nset PATH=C:\\msys64\\clang64\\bin;%PATH%\nwin-make\n```\n\n## on Windows ARM64 hosts\n\n```batchfile\nrem MSVC 2022 for ARM64\ncall \"%ProgramFiles(x86)%\\Microsoft Visual Studio 17.10\\BuildTools\\VC\\Auxiliary\\Build\\vcvarsall.bat\" arm64\nrem set HB_COMPILER=msvcarm64 (may be needed if Clang is also in resulting PATH)\nwin-make\n```\n\n```batchfile\nrem Clang/MS ARM64\nset PATH=%ProgramFiles%\\Microsoft Visual Studio 17.10\\BuildTools\\VC\\Tools\\Llvm\\ARM64\\bin;%PATH%\nwin-make\n```\n\n```batchfile\nrem Clang/MSYS ARM64 called from cmd\nset PATH=C:\\msys64\\clangarm64\\bin;%PATH%\nwin-make\n```\n\n## on MS-DOS hosts\n\n```batchfile\nrem Delorie GNU C\nset DJGPP=C:\\djgpp\\djgpp.env\nset PATH=C:\\djgpp\\bin;%PATH%\ndos-make\n```\n\n```batchfile\nrem Open Watcom C/C++\nSET WATCOM=C:\\watcom\nSET PATH=%WATCOM%\\BINW;%PATH%\nSET EDPATH=%WATCOM%\\EDDAT\nSET INCLUDE=%WATCOM%\\H\ndos-make\n```\n\n```batchfile\nrem Add these *before* above sample scripts to configure 3rd party dependencies.\nrem You have to use 8.3 path notation.\nset HB_WITH_ALLEGRO=C:\\ALLEGR~1.2\\include\nset HB_WITH_FIREBIRD=C:\\FIREBI~1.4\\include\nset HB_WITH_GD=C:\\GD-20~1.34\\include\nset HB_WITH_MYSQL=C:\\MYSQL-~1.67\\include\nset HB_WITH_PGSQL=C:\\PGSQL-~1.3\\include\nset HB_WITH_WATT=C:\\WATT\\inc\n```\n\n## on OS/2 hosts\n\n```batchfile\nrem GCC 3.3.4 and GCC 3.3.5\nC:\\usr\\bin\\gccenv.cmd\nos2-make\n```\n\n```batchfile\nrem GCC 4.x\nC:\\usr\\local433\\gcc440.cmd\nset HB_COMPILER=gccomf\nos2-make\n```\n\n```batchfile\nrem Open Watcom C/C++\nSET WATCOM=C:\\watcom\nSET PATH=%WATCOM%\\BINP;%WATCOM%\\BINW;%PATH%\nSET BEGINLIBPATH=%WATCOM%\\BINP\\DLL\nSET EDPATH=%WATCOM%\\EDDAT\nSET INCLUDE=%WATCOM%\\H;%WATCOM%\\H\\OS2\nSET HELP=%WATCOM%\\BINP\\HELP;%HELP%\nSET BOOKSHELF=%WATCOM%\\BINP\\HELP;%BOOKSHELF%\nos2-make\n```\n\n## on Linux hosts\n\n```bash\n# Open Watcom C/C++ for OS/2\n# (requires preceding build for Linux target)\nexport WATCOM=\"/opt/lng/watcom\"\nexport INCLUDE=\"${WATCOM}/h:${WATCOM}/h/os2\"\nexport PATH=\"${WATCOM}/binl:$PATH\"\nexport HB_BUILD_3RDEXT=no\nmake \"$@\"\n```\n\n```bash\n# Borland C++ 5.5.1\nexport PATH=~/.wine/drive_c/Borland/BCC55/Bin:$PATH\nexport HB_PLATFORM=win\nexport HB_COMPILER=bcc\nexport HB_BUILD_3RDEXT=no\nmake\n```\n\n## on Darwin (OS X) hosts\n\n```bash\n# To create \"Universal\" binaries, compatible with pre-Snow Leopard PowerPC and Intel systems\nexport HB_USER_LDFLAGS=\"-arch i386 -arch ppc\"\nexport HB_USER_CFLAGS=\"$HB_USER_LDFLAGS\"\nexport HB_COMPILER=gcc\nmake\n```\n\n## on *nix hosts in general\n\n```bash\n[g]make\n```\n\n```bash\n# MinGW GCC for Windows x86\n[g]make HB_PLATFORM=win\n```\n\n```bash\n# MinGW GCC for Windows CE ARM\n[g]make HB_PLATFORM=wce\n```\n\n\n# Build Your Own Harbour App\n\nFor all platforms you'll need two things:\n\n* Harbour binaries\n\n    Either a Harbour binary distribution or a local Harbour\n    build will be okay. If you're reading this text, it's\n    very likely you have one of these already.\n\n* Supported ANSI C compiler\n\n    Your compiler of choice has to be placed in the PATH \u0026ndash; and\n    configured appropriately according to instructions.\n    If you use official Harbour binary distribution on Windows,\n    you already have MinGW compiler embedded in the installation,\n    which will automatically be used, so you don't have to\n    make any extra steps here.\n\nUse hbmk2 to build your app from source. It's recommended to put\nit in the PATH (f.e. by using `set PATH=C:\\harbour\\bin;%PATH%` on Windows).\n\nSee hbmk2 [documentation, with examples](utils/hbmk2/doc/hbmk2.en.md).\n\n\n# Debugging Options\n\n## Tracing\n\nBuild Harbour with:\n\n    HB_BUILD_DEBUG=yes\n\nRun app with:\n\n    HB_TR_LEVEL=debug\n    # to override default stderr output:\n    HB_TR_OUTPUT=\u003cfilename\u003e\n    # to enable additional system specific logging output,\n    # OutputDebugString() on Windows, syslog() on *nix systems:\n    HB_TR_SYSOUT=yes\n\n## Memory statistics/tracking\n\nBuild Harbour with:\n\n    HB_USER_CFLAGS=-DHB_FM_STATISTICS\n\n## Valgrind (on linux and darwin targets)\n\nBuild Harbour with:\n\n    HB_BUILD_DEBUG=yes\n\nBuild app with:\n\n    $ hbmk2 myapp -debug\n\nRun app with:\n\n    $ valgrind --tool=memcheck --leak-check=yes --num-callers=16 -v ./myapp 2\u003e myapp.log\n\n## CodeGuard (on win/bcc target only)\n\nBuild Harbour with:\n\n    HB_USER_CFLAGS=-vG\n    HB_USER_LIBS=cg32\n\n## Harbour Debugger\n\nBuild app with:\n\n    $ hbmk2 myapp -b -run\n\nor run script with:\n\n    $ hbrun myapp --hb:debug\n\nPress `\u003cAlt+D\u003e` in the app.\n\n\n# Troubleshooting\n\nAlways evaluate these points before reporting an issue on the developers'\nmailing list.\n\n1.  Make sure to have carefully read this document.\n2.  Make sure to do a ``make clean`` before doing a build after refreshing\n    the sources.\n3.  If that still fails, make sure to install fresh source tree in a new\n    local directory and start over. See [How to Get](#how-to-get)\n    for instructions to get the source.\n    In case you installed Harbour into system locations (this used to be\n    the case with some *nix users, albeit mostly completely unnecessarily\n    or wrongly - f.e. for unstable versions), you will need to remember\n    cleaning off Harbour from all of these locations, too.\n    Advice: Never install unstable Harbour versions to system locations.\n4.  If you are doing a cross-build, make sure to have rebuilt the native\n    Harbour executables for your host platform. See `HB_HOST_BIN`\n    build messages to find their location.\n5.  Keep your PATH clean from old, mixed compiler tools or other Harbour\n    versions when building Harbour. The surest way to achieve this is to\n    leave only C compiler directory in PATH:\n\n        set PATH=C:\\\u003cc_compiler_bin_dir\u003e\n\n    \u003e If you use Harbour official binary distro on Windows, even above is\n    \u003e unnecessary and not recommended.\n6.  Remove all old, unnecessary environment variables (for both Harbour\n    and C compiler) from your environment. Also remove any custom settings\n    for your C compiler.\n    Use only those documented in this file.\n    Follows some environment variable settings which are commonly believed\n    by users to be useful, but which in reality are either not needed or\n    not even used by Harbour build process and hbmk2.\n7.  Remove any Harbour build settings documented in [Build Options](#build-options).\n8.  Try to do no or only small modifications at once to examples\n    included in [Build Examples](#build-examples).\n    If it doesn't work, fall back to documented examples _as is_.\n9.  If everything fails and you are to report a build problem to Harbour\n    developers, make sure to include your OS version/language/CPU architecture,\n    Harbour revision, C compiler name/release and version, environment\n    variables and verbose log output containing **both stderr and stdout in\n    one combined stream** (use `make \u003e log.txt 2\u003e\u00261`). Enable verbose\n    mode using `HB_BUILD_VERBOSE=yes`.\n    Complete log output is rarely necessary, but always make sure to include\n    the top of the output (lines starting with ``!``) and the area where\n    problematic behavior occurred _first_. Make sure to not only include\n    a link failure or a make tool failure, as it's most of the time not\n    enough information. Compress your log using zip if it is larger\n    than 25KB. (use the extension `.zip`)\n    With these, you have much better chance to get useful or any response.\n10. Do not alter the directory layout and files in Harbour and 3rd party\n    packages.\n11. If you are to report a build problem with a Harbour application,\n    all of the above points apply, plus make sure to use ``-trace``\n    command line option when running hbmk2 and redirect the result to\n    a file (see above how).\n    It's good idea to first remove all manual references to Harbour\n    core components from makefiles and custom environment. F.e. it's\n    commom mistake to add C compiler header and/or lib dirs, Harbour core\n    header and/or lib dirs, built-in constants to makefiles or environment.\n    No such thing is necessary as all of these are automatically handled\n    by hbmk2. IOW start simple and don't be overbusy with *fine-tuning*\n    your configuration. If you need to, the problem is most probably\n    elsewhere. It's also good idea to try with Harbour nightly binary or\n    official stable release first.\n12. If you are to report a problem with Harbour itself, always provide\n    self-contained, minimal source code example. Do not use xhb contrib\n    library, or any 3rd party Harbour libraries. The example shall reproduce\n    the problem using official stable or nightly Harbour build.\n    Do not post executables and other binary files. If your source contains\n    non-ASCII (national, accented, special) chars, clearly mark the\n    codepage/encoding used (UTF-8 recommended) and attach the files\n    compressed with zip. (use the extension `.zip`)\u003cbr /\u003e\n    See more on self-contained examples:\n       \u003chttp://sscce.org/\u003e\n13. If your example involves compatibility components, make sure to test\n    it against original implementation (for example, test legacy Clipper\n    core language elements against real CA-Clipper 5.2e or 5.3b, or hbct\n    functions against CT3 library, etc)\n\n\n# Supported Platforms and C Compilers\n\n## You can override target platform autodetection with these `HB_PLATFORM` values:\n\n* linux    - Linux\n* darwin   - OS X\n* bsd      - FreeBSD / OpenBSD / NetBSD / DragonFly BSD / *BSD\n* beos     - BeOS / Haiku\n* hpux     - HP-UX\n* sunos    - Sun Solaris / OpenSolaris\n* qnx      - QNX\n* android  - Android\n* vxworks  - VxWorks\n* symbian  - Symbian OS (experimental)\n* minix    - Minix 3 (tested on 3.2.1; earlier releases won't work)\n* aix      - IBM AIX\n* win      - MS Windows (all flavors)\n             (see [External links](#external-links) for Win9x requirements)\n* wce      - MS Windows CE\n* dos      - MS-DOS (32-bit protected mode only)\n             (MS-DOS compatible systems also work, like dosemu)\n* os2      - OS/2 Warp 4 / eComStation\n\n## You can override C compiler autodetection with these `HB_COMPILER` values:\n\n### linux\n* gcc      - GNU C\n* clang    - Clang\n* watcom   - Open Watcom C/C++\n* icc      - Intel(R) C/C++\n* sunpro   - Sun Studio C/C++\n* open64   - Open64 C/C++\n\n### darwin\n* gcc      - GNU C\n* clang    - Clang\n* icc      - Intel(R) C/C++\n\n### bsd\n* gcc      - GNU C\n* clang    - Clang\n* pcc      - Portable C Compiler (experimental)\n\n### hpux\n* gcc      - GNU C\n\n### beos\n* gcc      - GNU C\n\n### qnx\n* gcc      - GNU C\n\n### android\n* gcc      - GNU C x86\n* gccarm   - GNU C ARM\n\n### vxworks\n* gcc      - GNU C\n* diab     - Wind River Compiler\n\n### symbian\n* gcc      - GNU C\n\n### minix\n* clang    - Clang\n* gcc      - GNU C\n\n### aix\n* gcc      - GNU C\n\n### cygwin\n* gcc      - GNU C\n\n### sunos\n* gcc      - GNU C\n* sunpro   - Sun Studio C/C++\n\n### win\n* mingw      - MinGW GNU C 3.4.2 and above\n* mingw64    - MinGW GNU C x86-64\n* msvc       - Microsoft Visual C++\n* msvc64     - Microsoft Visual C++ x86-64\n* msvcarm    - Microsoft Visual C++ ARM\n* msvcarm64  - Microsoft Visual C++ ARM64\n* msvcia64   - Microsoft Visual C++ IA-64 (Itanium)\n* clang      - Clang (various flavours supported)\n\n### win (partial support, some features may be missing)\n* watcom   - Open Watcom C/C++\n* bcc      - Borland/CodeGear/Embarcadero C++ 4.x and above\n* bcc64    - Embarcadero C++ 6.5 and above\n* icc      - Intel(R) C/C++\n* iccia64  - Intel(R) C/C++ IA-64 (Itanium)\n* pocc     - Pelles C 4.5 and above\n* pocc64   - Pelles C x86-64 5.0 and above\n* xcc      - Pelles C for xhb\n\n### wce\n* mingw    - MinGW GNU C x86\n* mingwarm - MinGW GNU C ARM (CEGCC 0.55 and above)\n* msvcarm  - Microsoft Visual C++ ARM\n* poccarm  - Pelles C ARM 5.0 and above\n\n### dos\n* djgpp    - Delorie GNU C\n* watcom   - Open Watcom C/C++\n\n### os2\n* gcc      - EMX GNU C 3.3.5 or lower\n* gccomf   - EMX GNU C 3.3.5 or upper\n* watcom   - Open Watcom C/C++\n\n\n# Platform Matrix\n\n \u0026nbsp;| host\u003cbr /\u003eplatform | target\u003cbr /\u003eplatform/compiler | target cpu\n :---- | :------- | :---------------- | :---------------------------------------\n       | win      | win/bcc           | x86\n       | win      | win/bcc64         | x86-64\n       | win      | win/clang         | (CPU cross-builds possible: x86, x86-64, arm64)\n       | win      | win/gcc           | x86\n       | win      | win/global        | x86\n       | win      | win/icc           | x86\n       | win      | win/icc64         | x86-64 (not supported yet)\n       | win      | win/iccia64       | ia64\n       | win      | win/mingw         | x86\n       | win      | win/mingw64       | x86-64\n       | win      | win/msvc          | x86\n       | win      | win/msvc64        | x86-64\n       | win      | win/msvcarm       | arm\n       | win      | win/msvcarm64     | arm64\n       | win      | win/msvcia64      | ia64\n       | win      | win/pocc          | x86\n       | win      | win/pocc64        | x86-64\n       | win      | win/watcom        | x86\n       | win      | win/xcc           | x86\n     x | win      | wce/mingwarm      | arm\n     x | win      | wce/mingw         | x86   (not fully supported yet)\n     x | win      | wce/poccarm       | arm\n     x | win      | wce/msvcarm       | arm\n     x | win      | wce/msvcmips      | mips  (not supported yet)\n     x | win      | wce/msvcsh        | sh    (not supported yet)\n     x | win      | wce/msvc          | x86   (not supported yet)\n     x | win      | dos/djgpp         | x86   (on Windows x86 hosts only)\n     x | win      | dos/watcom        | x86\n     x | win      | os2/watcom        | x86\n     x | win      | linux/watcom      | x86\n     x | win      | android/gcc       | x86\n     x | win      | android/gccarm    | arm\n     x | win      | vxworks/gcc       | (CPU cross-builds possible: x86, arm, mips, ppc)\n     x | win      | vxworks/diab      | (CPU cross-builds possible: x86, arm, mips, ppc, sparc)\n     x | win      | symbian/gcc       | arm\n     x | win      | cygwin/gcc        | x86\n       | dos      | dos/djgpp         | x86\n       | dos      | dos/watcom        | x86\n     x | dos      | win/watcom        | x86\n     x | dos      | os2/watcom        | x86\n     x | dos      | linux/watcom      | x86\n       | os2      | os2/gcc           | x86\n       | os2      | os2/watcom        | x86\n     x | os2      | win/watcom        | x86\n     x | os2      | dos/watcom        | x86\n     x | os2      | linux/watcom      | x86\n       | linux    | linux/gcc         | (CPU cross-builds possible)\n       | linux    | linux/clang       | (CPU cross-builds possible)\n       | linux    | linux/icc         | (CPU cross-builds possible: x86, x86-64, ia64)\n       | linux    | linux/sunpro      | (CPU cross-builds possible: x86, x86-64)\n       | linux    | linux/open64      | (CPU cross-builds possible: x86-64, ia64, ...)\n     x | linux    | wce/mingwarm      | arm\n     x | linux    | wce/mingw         | x86\n     x | linux    | win/mingw         | x86\n     x | linux    | win/mingw64       | x86-64\n     x | linux    | win/watcom        | x86\n     x | linux    | win/bcc           | x86 (requires WINE)\n     x | linux    | win/bcc64         | x86-64 (requires WINE)\n     x | linux    | os2/watcom        | x86\n     x | linux    | dos/watcom        | x86\n     x | linux    | dos/djgpp         | x86\n     x | linux    | android/gcc       | x86\n     x | linux    | android/gccarm    | arm\n     x | linux    | vxworks/gcc       | (CPU cross-builds possible: x86, arm, mips, ppc)\n     x | linux    | vxworks/diab      | (CPU cross-builds possible: x86, arm, mips, ppc, sparc)\n       | bsd      | bsd/gcc           | (CPU cross-builds possible)\n       | bsd      | bsd/clang         | (CPU cross-builds possible)\n       | bsd      | bsd/pcc           | (experimental)\n     x | bsd      | wce/mingwarm      | arm\n     x | bsd      | wce/mingw         | x86\n     x | bsd      | win/mingw         | x86\n     x | bsd      | dos/djgpp         | x86\n       | darwin   | darwin/clang      | (CPU cross-builds possible: x86, x86-64, unibin)\n       | darwin   | darwin/gcc        | (CPU cross-builds possible: x86, x86-64, ppc, ppc64, unibin)\n       | darwin   | darwin/icc        | (CPU cross-builds possible: x86, x86-64)\n     x | darwin   | wce/mingwarm      | arm\n     x | darwin   | wce/mingw         | x86\n     x | darwin   | win/mingw         | x86\n     x | darwin   | win/mingw64       | x86-64\n     x | darwin   | dos/djgpp         | x86\n     x | darwin   | android/gcc       | x86\n     x | darwin   | android/gccarm    | arm\n       | hpux     | hpux/gcc          | (CPU cross-builds possible)\n       | qnx      | qnx/gcc           | (CPU cross-builds possible - no tested)\n       | beos     | beos/gcc          | x86\n     x | hpux     | wce/mingwarm      | arm\n     x | hpux     | wce/mingw         | x86\n     x | hpux     | win/mingw         | x86\n     x | hpux     | dos/djgpp         | x86\n       | minix    | minix/clang       | x86\n       | minix    | minix/gcc         | x86\n       | aix      | aix/gcc           | (CPU cross-builds possible: ppc, ppc64)\n       | sunos    | sunos/gcc         | (CPU cross-builds possible)\n       | sunos    | sunos/sunpro      | (CPU cross-builds possible: x86, x86-64, sparc32, sparc64)\n     x | sunos    | wce/mingwarm      | arm\n     x | sunos    | wce/mingw         | x86\n     x | sunos    | win/mingw         | x86\n     x | sunos    | dos/djgpp         | x86\n     x | sunos    | vxworks/gcc       | (CPU cross-builds possible: x86, arm, mips, ppc)\n     x | sunos    | vxworks/diab      | (CPU cross-builds possible: x86, arm, mips, ppc, sparc)\n\n\u003e Leading **x** marks cross-platform scenarios.\n\nSupported shells per host platforms:\n\n* win  / NT shell (cmd.exe)\n* win  / POSIX shell (MSYS or Cygwin sh.exe)\n* win  / MS-DOS shell (command.com)\n* dos  / MS-DOS shell (command.com)\n* dos  / POSIX shell (bash.exe)\n* os/2 / OS/2 shell (cmd.exe)\n* os/2 / POSIX shell (bash.exe)\n* *nix / POSIX shell\n\n\n# External links\n\n* C/C++ Compilers/Shells:\n\n     * MinGW/MinGW-64 [win, *nix, free, open-source]\n        * \u003chttp://sourceforge.net/projects/mingwbuilds/\u003e (unofficial, recommended)\n        * \u003chttp://tdm-gcc.tdragon.net/\u003e, \u003chttp://sourceforge.net/projects/tdm-gcc/\u003e (unofficial) [NOTE: 4.5.1 is broken, 4.5.2, 4.6.1 x86 OK, for x64 use the official release]\n        * \u003chttp://www.mingw.org/\u003e, \u003chttp://sourceforge.net/projects/mingw/\u003e (official 32-bit, MSYS home, broken as of 4.5.0-1)\n        * \u003chttp://mingw-w64.sourceforge.net/\u003e, \u003chttp://sourceforge.net/projects/mingw-w64/\u003e (official 64-bit, MSYS home)\n        * \u003chttp://nuwen.net/mingw.html\u003e (unofficial)\n     * MinGW CEGCC [win, *nix, free, open-source]\n        * \u003chttp://cegcc.sourceforge.net/\u003e\n     * Cygwin [win, free, open-source]\n        * \u003chttp://www.cygwin.com/\u003e\n     * OS/2 GCC [os2, free, open-source]\n        * \u003cftp://ftp.netlabs.org/pub/gcc/\u003e\n        * \u003cftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip\u003e\n        * \u003cftp://ftp.netlabs.org/pub/gcc/libc-0_6_3-csd3.exe\u003e\n        * \u003chttp://os2ports.smedley.info/index.php?page=gcc\u003e\n        * \u003chttp://os2ports.smedley.info/index.php?page=gcc44\u003e\n        * \u003chttp://download.smedley.info/gcc-4.4.5-os2-20101004.zip\u003e\n        * \u003chttps://dl.dropboxusercontent.com/u/76425158/gcc-4.5.4-os2-20130803.zip\u003e\n     * DJGPP [dos, *nix, free, open-source]\n        * \u003chttp://www.delorie.com/djgpp/\u003e\n     * Open Watcom [win, dos, os2, linux, free, open-source]\n        * \u003chttp://www.openwatcom.org/\u003e\n     * Xcode / Command Line Tools for Xcode [darwin, free, hybrid-source]\n        * \u003chttps://itunes.apple.com/us/app/xcode/id497799835\u003e\n        * \u003chttp://developer.apple.com/downloads/\u003e\n     * MS Windows SDK [win, free, closed-source]\n        * \u003chttp://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx\u003e\n         (7.0 and above contains compilers for x86, x86_64 and IA-64)\n     * MS Windows Mobile SDK [wce, free]\n        * \u003chttp://www.microsoft.com/downloads/details.aspx?familyid=83A52AF2-F524-4EC5-9155-717CBE5D25ED\u003e\n     * MS Visual Studio Express [win, free, closed-source]\n        * \u003chttp://www.microsoft.com/express/\u003e\n     * MS Visual Studio [win, commercial, closed-source]\n        * \u003chttp://www.microsoft.com/visualstudio/\u003e\n     * Pelles C [win, wce, free, closed-source]\n        * \u003chttp://www.smorgasbordet.com/pellesc/\u003e\n     * Borland/CodeGear/Embarcadero Compiler [win, free, closed-source]\n        * \u003chttps://downloads.embarcadero.com/free/c_builder\u003e\n     * Intel Compiler [win, linux, darwin, commercial, closed-source]\n        * \u003chttp://software.intel.com/en-us/intel-compilers/\u003e\n\n* Libraries:\n\n     * HB_WITH_ADS - Advantage Client Engine API [win, linux, free, closed-source]\n        * \u003chttps://devzone.advantagedatabase.com/dz/content.aspx?key=20\u0026Release=19\u0026Product=5\u003e\n     * HB_WITH_ALLEGRO - Allegro (GUI) [multiplatform, free, open-source]\n        * \u003chttp://alleg.sourceforge.net/\u003e\n     * HB_WITH_BLAT - Blat (SMTP client) [win, free, open-source]\n        * \u003chttps://www.blat.net/\u003e\n     * HB_WITH_BZIP2 - libbzip2 [multiplatform, free, open-source]\n        * \u003chttp://www.bzip.org/\u003e\n     * HB_WITH_CAIRO - Cairo [multiplatform, open-source]\n        * \u003chttps://www.gtk.org/download/windows.php\u003e\u003cbr /\u003e\n        GTK for Windows has a side effect of including a build of Cairo libs.\n        After installation look for: libcairo-*.dll, libpng*.dll, zlib*.dll\n     * HB_WITH_CUPS - libcups (printing) [*nix, free, open-source]\n        * \u003chttps://www.cups.org/\u003e\n     * HB_WITH_CURL - libcurl (file transfer) [multiplatform, free, open-source]\n        * \u003chttps://curl.haxx.se/\u003e\n     * HB_WITH_EXPAT - Expat (XML parser) [multiplatform, free, open-source]\n        * \u003chttp://expat.sourceforge.net/\u003e\n     * HB_WITH_FIREBIRD - firebird SQL [multiplatform, free, open-source]\n        * \u003chttps://www.firebirdsql.org/\u003e\n     * HB_WITH_FREEIMAGE - FreeImage [multiplatform, free, open-source]\n        * \u003chttp://freeimage.sourceforge.net/\u003e\n     * HB_WITH_GD - GD Graphics Library [multiplatform, free, open-source]\n        * \u003chttp://www.libgd.org/\u003e\n     * HB_WITH_GS - Ghostscript [multiplatform, free, open-source]\n        * \u003chttps://www.ghostscript.com/\u003e\n        * \u003chttp://pages.cs.wisc.edu/~ghost/\u003e\n     * HB_WITH_JPEG - jpeglib [multiplatform, free, open-source]\n        * \u003chttps://www.ijg.org/\u003e\n     * HB_WITH_LIBHARU - libharu (PDF creation) [multiplatform, free, open-source]\n        * \u003chttp://libharu.org/\u003e\n     * HB_WITH_LIBMAGIC - libmagic, file recognition [multiplatform, free, open-source]\n        * \u003cftp://ftp.astron.com/pub/file/\u003e\n     * HB_WITH_LZF - lzf library (RT data compression) [multiplatform, free, open-source]\n        * \u003chttp://liblzf.plan9.de/\u003e\n     * HB_WITH_MINILZO - miniLZO library (RT data compression) [multiplatform, free, open-source]\n        * \u003chttps://www.oberhumer.com/opensource/lzo/\u003e\n     * HB_WITH_MINIZIP - minizip library [multiplatform, free, open-source]\n        * \u003chttps://www.winimage.com/zLibDll/minizip.html\u003e\n     * HB_WITH_MXML - miniXML library (small XML library) [multiplatform, free, open-source]\n        * \u003chttps://www.msweet.org/mxml/\u003e\n     * HB_WITH_MYSQL - MySQL [multiplatform, free, open-source]\n        * \u003chttps://dev.mysql.com/downloads/\u003e\n     * HB_WITH_OCILIB - OCILIB (C Driver for Oracle) [multiplatform, free, open-source]\n        * \u003chttps://vrogier.github.io/ocilib/\u003e\n        * \u003chttps://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index.html\u003e\n     * HB_WITH_OPENSSL - OpenSSL [multiplatform, free, open-source]\n        * \u003chttps://www.openssl.org/\u003e\n        * \u003chttps://wiki.openssl.org/index.php/Binaries\u003e\n        * \u003chttps://wiki.openssl.org/index.php/Main_Page\u003e\n     * HB_WITH_PCRE - Perl Compatible Regular Expressions [multiplatform, free, open-source]\n        * \u003chttps://www.pcre.org/\u003e\n     * HB_WITH_PGSQL - PostgreSQL [multiplatform, free, open-source]\n        * \u003chttps://www.postgresql.org/\u003e\n     * HB_WITH_PNG - libpng [multiplatform, free, open-source]\n        * \u003chttp://www.libpng.org/pub/png/libpng.html\u003e\n     * HB_WITH_QT - QT (GUI) [multiplatform, free, open-source]\n        * \u003chttps://qt-project.org/\u003e\n        * \u003chttps://download.qt-project.org/official_releases/qt/\u003e\n     * HB_WITH_SQLITE3 - sqlite3 [multiplatform, free, open-source]\n        * \u003chttps://www.sqlite.org/\u003e\n     * HB_WITH_TINYMT - TinyMT (Mersenne Twister) [multiplatform, free, open-source]\n        * \u003chttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/TINYMT/\u003e\n     * HB_WITH_WATT - Watt-32 (TCP/IP sockets) [dos, free, open-source]\n        * \u003chttp://www.watt-32.net/\u003e\n     * HB_WITH_ZLIB - zlib [multiplatform, free, open-source]\n        * \u003chttps://www.zlib.net/\u003e\n     * HB_WITH_XDIFF - libxdiff (file differences/patches) [multiplatform, free, open-source]\n        * \u003chttp://www.xmailserver.org/xdiff-lib.html\u003e\n\n     * Windows 95 Winsock2 [win, free, closed-source]\n        * Information: Microsoft KB182108 \"Availability of Windows Sockets 2.0 for Windows 95\"\n        * Search for `w95ws2setup.exe`\n            (required for Win95 support to run applications built with Harbour)\n     * Windows UNICOWS .dll [win, free, closed-source]\n        * (via web.archive.org)[https://web.archive.org/web/20130305122340/http://download.microsoft.com/download/b/7/5/b75eace3-00e2-4aa0-9a6f-0b6882c71642/unicows.exe]\n            (required for Win9x/ME support to run applications built with Harbour in UNICODE mode)\n     * Windows UNICOWS runtime/import library [win, free, open-source]\n        * \u003chttp://libunicows.sourceforge.net/\u003e\n            (required for Win9x/ME support at application built-time)\n\n* Tools:\n\n     * Git (1.7 or upper) [multiplatform, free, open-source]\n        * \u003chttps://git-scm.com/\u003e\n     * GitHub Desktop Client [multiplatform, free]\n        * \u003chttps://github.com/apps/desktop\u003e\n     * GNU Bison (grammer paser generator) [multiplatform, free, open-source]\n        * Windows binary:\n           * \u003chttps://gnuwin32.sourceforge.net/packages/bison.htm\u003e\n               (not verified with current Harbour version)\n     * Valgrind (dynamic executable analysis tool) [linux, darwin-x86, free, open-source]\n        * \u003chttps://valgrind.org/\u003e\n     * ack (programmer grep) [multiplatform, free, open-source]\n        * \u003chttps://beyondgrep.com/\u003e\n     * Uncrustify (source formatter) [multiplatform, free, open-source]\n        * \u003chttps://uncrustify.sourceforge.net/\u003e\n     * UPX (executable compressor) [win, dos, *nix, free, open-source]\n        * \u003chttps://upx.sourceforge.net/\u003e\n     * Nullsoft Installer [win, free, open-source]\n        * \u003chttps://nsis.sourceforge.net/\u003e\n     * 7-Zip [multiplatform, free, open-source]\n        * \u003chttps://www.7-zip.org/\u003e\n     * Info-ZIP [multiplatform, free, open-source]\n        * \u003chttp://www.info-zip.org/\u003e\n     * bzip2 [multiplatform, free, open-source]\n         Windows binary:\n           * \u003chttps://gnuwin32.sourceforge.net/packages/bzip2.htm\u003e\n     * Chocolatey (Windows package manager) [free, open-source]\n        * \u003chttps://chocolatey.org/\u003e\n     * GNU Make\n\n        Windows binary + source:\n\n         * \u003chttp://sourceforge.net/projects/mingw/files/MinGW/Extension/make/\u003e\n         * \u003chttp://sourceforge.net/projects/mingw/files/MinGW/Extension/make/make-3.82-mingw32/make-3.82-5-mingw32-bin.tar.lzma/download\u003e\n         * \u003chttp://sourceforge.net/projects/mingw/files/MinGW/Extension/make/make-3.82-mingw32/make-3.82-5-mingw32-src.tar.lzma/download\u003e\n         * `cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/make co make`\n          \u003cbr /\u003e(included in Harbour as [win-make.exe](win-make.exe))\n\n        MS-DOS binary + source:\n\n         * \u003cftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/\u003e\n         * \u003cftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/mak381b.zip\u003e\n         * \u003cftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/mak381s.zip\u003e\n          \u003cbr /\u003e(included in Harbour as [dos-make.exe](dos-make.exe))\n\n        OS/2 binary + source (3.81r3 or upper):\n\n         * \u003cftp://hobbes.nmsu.edu/pub/os2/dev/util/make-3.81-r3-bin-static.zip\u003e\n         * \u003cftp://hobbes.nmsu.edu/pub/os2/dev/util/\u003e\n          \u003cbr /\u003e(included in Harbour as [os2-make.exe](os2-make.exe))\n     * GNU core utils (mkdir, rm, cp, echo)\n\n        MS-DOS binary + source:\n\n         * \u003cftp://ftp.delorie.com/pub/djgpp/current/v2gnu/\u003e\n         * \u003cftp://ftp.delorie.com/pub/djgpp/current/v2gnu/fil41b.zip\u003e\n         * \u003cftp://ftp.delorie.com/pub/djgpp/current/v2gnu/fil41s.zip\u003e\n         * \u003cftp://ftp.delorie.com/pub/djgpp/current/v2gnu/shl2011b.zip\u003e\n         * \u003cftp://ftp.delorie.com/pub/djgpp/current/v2gnu/shtl208s.zip\u003e\n         * \u003cftp://ftp.delorie.com/pub/djgpp/current/v2/djdev203.zip\u003e\n         * \u003cftp://ftp.delorie.com/pub/djgpp/current/v2/djlsr203.zip\u003e\n          \u003cbr /\u003e(included in Harbour as [dosmkdir.exe](config/dosmkdir.exe), [dosrm.exe](config/dosrm.exe), [doscp.exe](config/doscp.exe), [dosecho.exe](config/dosecho.exe))\n\n        OS/2 binary:\n\n         * \u003chttp://os2ports.smedley.info/index.php?page=build-environment\u003e\n         * \u003chttp://download.smedley.info/buildenv_20071022.zip\u003e\n          \u003cbr /\u003e(included in Harbour as [os2mkdir.exe](config/os2mkdir.exe), [os2rm.exe](config/os2rm.exe), [os2cp.exe](config/os2cp.exe))\n\n* Documentation:\n\n     * [Netiquette Guidelines](http://tools.ietf.org/html/rfc1855)\n     * [Setting up Git](https://help.github.com/articles/set-up-git)\n     * [Git book](https://git-scm.com/book/en/v2) [free]\n     * [Git crash course for Subversion users](https://web.archive.org/web/20220520212103/http://git.or.cz/course/svn.html)\n     * Using gettext (.po files)\n       * \u003chttp://help.transifex.com/features/formats.html#po-files\u003e\n       * \u003chttp://www.heiner-eichmann.de/autotools/using_gettext.html\u003e\n\n\n# Harbour Links\n\n  * [Homepage](https://harbour.github.io/)\n  * [Users' Mailing List](https://groups.google.com/group/harbour-users/) (English language)\n  * [Development Mailing List](https://groups.google.com/group/harbour-devel/) (English language)\n  * [Source code](https://github.com/harbour/core)\n  * [Localization](https://www.transifex.com/projects/p/harbour/)\n  * [Issues](https://github.com/harbour/core/issues)\n  * Documents:\n     * [hbmk2 documentation](utils/hbmk2/doc/hbmk2.en.md)\n     * [hbrun documentation](contrib/hbrun/doc/hbrun.en.md)\n     * [ChangeLog](ChangeLog.txt?raw=true)\n     * Comparing [Harbour to xHarbour](doc/xhb-diff.txt?raw=true)\n     * CA-Cl*pper 5.3 [online documentation](http://x-hacker.org/ng/53guide/)\n     * Harbour [online documentation](https://harbour.github.io/doc/)\n     * Harbour [internal documents](doc/)\n     * [Wikipedia](https://en.wikipedia.org/wiki/Harbour_compiler)\n\n---\nThis document Copyright \u0026copy;\u0026nbsp;2009\u0026ndash;present Viktor Szakats (vszakats.net/harbour)\u003cbr /\u003e\n[![Creative Commons Attribution-ShareAlike 4.0](https://mirrors.creativecommons.org/presskit/buttons/80x15/svg/by-sa.svg)](https://creativecommons.org/licenses/by-sa/4.0/)\n","funding_links":[],"categories":["C","Uncategorized"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharbour%2Fcore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharbour%2Fcore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharbour%2Fcore/lists"}