forked from harbour/core
-
Notifications
You must be signed in to change notification settings - Fork 4
Build settings
Pete edited this page Apr 26, 2018
·
3 revisions
List of environment variables being used to build Harbour itself and/or applications.
They can been set using SET VARNAME=value syntax. All settings are optional and all settings are case-sensitive.
| Environment variable | Effect |
|---|---|
| HB_BUILD_VERBOSE=yes | Default: no. Setting yes enables verbose build output. Redirect it to file by appending this to the build command: > log.txt 2>&1 |
| HB_PLATFORM | Override platform auto-detection |
| HB_COMPILER | Override C compiler auto-detection. Set these only if auto-detection doesn't suit your purpose. |
| HB_BUILD_CONTRIBS=no [<lib>] | Do not build any, or space separated <lib> list of, contrib packages. Please note that packages which are dependencies of other — enabled — packages will still be built, unless their dependents are disabled as well. |
| HB_BUILD_CONTRIBS=[<lib>] | Build space separated <lib> list of contrib libraries. Build all if left empty (default). |
| HB_BUILD_STRIP=[all|bin|lib|no] | Strip symbols and debug information from binaries. Default: no |
| HB_BUILD_3RDEXT=no | Enable auto-detection of 3rd party components on default system locations. Default: yes |
| HB_BUILD_NOGPLLIB=yes | Disable components dependent on GPL 3rd party code, to allow using Harbour for nonfree/proprietary projects. Default: no |
| HB_CCPATH=[<dir>/] | Used with non-*nix gcc family compilers (and sunpro) to specify path to compiler/linker/archive tool to help them run from *nix hosts as cross-build tools. Ending slash must be added. |
| HB_CCPREFIX=[<prefix>] | Used with gcc compiler family to specify compiler/linker/archive tool name prefix. |
| HB_CCSUFFIX=[<suffix>] | Used with gcc/clang compiler families to specify compiler/linker tool name suffix — usually version number. |
| HB_INSTALL_PREFIX | Target root directory to install Harbour files. On *nix systems the default is set to /usr/local/ or $(PREFIX) if specified, and /usr/local/harbour-<arch>-<comp> for cross-builds. It's always set to ./pkg/<arch>/<comp> when HB_BUILD_PKG is set to yes. On non-*nix systems, you must set it to a valid directory when using install. Use absolute paths only. You have to use path format native to your shell. E.g. to specify C:\dir on Windows. |
| HB_USER_PRGFLAGS | User Harbour compiler options |
| HB_USER_CFLAGS | User C compiler options |
| HB_USER_DCFLAGS | User C compiler options (for dynamic libraries only) |
| HB_USER_RESFLAGS | User resource compiler options (on win, wce, os2) |
| HB_USER_LDFLAGS | User linker options for executables |
| HB_USER_AFLAGS | User linker options for libraries |
| HB_USER_DFLAGS | User linker options for dynamic libraries |
| HB_BUILD_DEBUG=yes | Create debug build. Default: no |
| HB_BUILD_OPTIM=no | Enable C compiler optimizations. Default: yes |
| HB_BUILD_PKG=yes | Create release package. Default: no Requires clean install in root source dir. |
| HB_BUILD_CONTRIB_DYN=yes | Create contrib dynamic libraries (in addition to static). Default: no, except Windows and darwin platforms, where it's yes. |
| HB_BUILD_3RD_DYN=yes | Create dynamic libraries of vendored 3rd party libaries (in addition to static). Default: no |
| HB_BUILD_SHARED=yes | Create Harbour executables in shared mode. Default: yes on non-*nix platforms that support is and on *nix when HB_INSTALL_PREFIX points to a system location, otherwise no. |
| HB_BUILD_PARTS=[all|compiler|lib] | Build only specific part of Harbour. |
| HB_BUILD_NAME=[<name>] | Create named build. This allows keeping multiple builds in parallel for any given platform/compiler. E.g. debug / release. In current implementation it's appended to compiler directory name, so all file-system/platform name rules and limits apply. (Back)slashes will be stripped from the name though. |
| HB_USER_LIBS=[<list>] | Add space separated <list> of libs to link process. Lib names should be without extension and path. You only need this in special cases, like CodeGuard build with win/bcc. |
| HB_BUILD_LIBPATH | Use extra library path when building contrib packages. It will be passed to hbmk2 via its -L option, after any other custom option. |
| HB_INSTALL_IMPLIB=no | Copy import libraries created for external .dll dependencies to the library install directory in install build phase. Default: yes For Windows and OS/2 targets only. Please note that this feature doesn't work with all possible binary distributions of 3rd party packages. We test only the official/mainstream ones. Also note that the generated implibs will require .dlls compatible with the ones used at build time. |
| HB_INSTALL_3RDDYN=yes | Copy dynamic libraries of external .dll dependencies to the dynamic library directory in install build phase. Default: no |
Harbour Functions Dictionary
Many of the entries presented in this wiki, have been obtained from various sources (see References); however, a good number of them have been written «from scratch» (or rewritten/corrected), particularly those referring to newer Harbour functions. Anyway, it's a 'work in progress', so there might be omissions, oversights and / or errors. That said, any suggestion/correction/comment are more than welcome --many thanks, to those few who already have made contributions!
| Harbour exclusive functions | Clipper compatible functions |
|---|---|
| hb_A | A |
| hb_B | B |
| hb_C | C |
| hb_D | D |
| hb_E | E |
| hb_F | F |
| hb_G | G |
| hb_H | H |
| hb_I | I |
| hb_J_K | J K |
| hb_L | L |
| hb_M | M |
| hb_N_O | N O |
| hb_P | P |
| hb_R | Q R |
| hb_S | S |
| hb_T | T |
| hb_U | U |
| hb_V | V W |
| hb_W | X Y |
- Contrib. Libraries
| HBWIN WinAPI Library | Compress Libraries |
| HBHPDF Library (Haru) | Multi Threading |
| Harbour Socket API | hbCT (Cl*pper tools) |
| Serial API | hbNF (NanForum library) |
| [HBCURL] cURL API Library | Mini-XML docs |
| HBBMP Library |
-
praeterea lectio...
Miscellaneous Readings
* Copyright © 2016–present Pete D.