diff --git a/harbour/ChangeLog b/harbour/ChangeLog index ab0a4741c1..33c8dc09b2 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,13 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-01-28 04:23 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * INSTALL + * external/Makefile + * contrib/Makefile + + Added build option to exclude specific list of contrib/external + libraries using syntax: 'HB_CONTRIBLIBS=no lib1 lib2 libn' + 2010-01-28 04:00 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbct/dummy.c + Indicated that some functions are implemented in diff --git a/harbour/INSTALL b/harbour/INSTALL index d2a146362d..255f9a8633 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -555,114 +555,116 @@ HARBOUR General ------- - - HB_PLATFORM Override platform autodetection - - HB_COMPILER Override C compiler autodetection - See this section for possible values: - SUPPORTED PLATFORMS AND C COMPILERS - See also: HB_CC* settings. + - HB_PLATFORM Override platform autodetection + - HB_COMPILER Override C compiler autodetection + See this section for possible values: + SUPPORTED PLATFORMS AND C COMPILERS + See also: HB_CC* settings. - - HB_USER_PRGFLAGS User Harbour compiler options - - HB_USER_CFLAGS User C compiler options - - 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_USER_PRGFLAGS User Harbour compiler options + - HB_USER_CFLAGS User C compiler options + - 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_INSTALL_PREFIX Target root directory to install Harbour files. - This will default to Harbour source tree on - non-*nix systems. On *nix systems the default - is set to /usr/local/ or $(PREFIX) if specified, - and /usr/local/harbour-- for - cross-builds. It's always set to ./pkg// - when HB_BUILD_PKG is set to 'yes'. - Use absolute paths only. For a peace of mind, - avoid using spaces and quotes in the name. - You have to use path format native to your shell. - F.e. to specify C:\dir on Windows, with Cygwin - you should use /cygdrive/c/dir, with MSYS /c/dir. - It's also possible to use following macros: - {hb_top} - Source tree root dir - {hb_plat} - Target platform - {hb_comp} - Target compiler - {hb_cpu} - Target CPU + - HB_INSTALL_PREFIX Target root directory to install Harbour files. + This will default to Harbour source tree on + non-*nix systems. On *nix systems the default + is set to /usr/local/ or $(PREFIX) if specified, + and /usr/local/harbour-- for + cross-builds. It's always set to ./pkg// + when HB_BUILD_PKG is set to 'yes'. + Use absolute paths only. For a peace of mind, + avoid using spaces and quotes in the name. + You have to use path format native to your shell. + F.e. to specify C:\dir on Windows, with Cygwin + you should use /cygdrive/c/dir, with MSYS /c/dir. + It's also possible to use following macros: + {hb_top} - Source tree root dir + {hb_plat} - Target platform + {hb_comp} - Target compiler + {hb_cpu} - Target CPU - - HB_BIN_INSTALL Override directory to install executables - - HB_LIB_INSTALL Override directory to install libraries - - HB_DYN_INSTALL Override directory to install dynamic libraries - - HB_INC_INSTALL Override directory to install language headers - - HB_DOC_INSTALL Override directory to install documentation + - HB_BIN_INSTALL Override directory to install executables + - HB_LIB_INSTALL Override directory to install libraries + - HB_DYN_INSTALL Override directory to install dynamic libraries + - HB_INC_INSTALL Override directory to install language headers + - HB_DOC_INSTALL Override directory to install documentation Special ------- - - HB_BUILD_NAME=[] Create named build. This allows to keep - multiple builds in parallel for any given - platform/compiler. F.e. debug / release. - NOTE: In current implementation it's - appended to compiler directory name, so all - filesystem/platform name rules and limits - apply. It's valid to use (back)slashes though. - - HB_BUILD_PKG=yes Create release package. Default: no - Requires 'clean install' in root source dir. - (currently on Windows/Windows CE/MS-DOS) - (only when using Windows NT shells) - - HB_BUILD_DLL=no Create Harbour dynamic libraries. Default: yes - - HB_BUILD_SHARED=yes Create Harbour executables in shared mode. - Default: yes when HB_INSTALL_PREFIX points - to a *nix system location, otherwise no. - - HB_BUILD_IMPLIB=yes Create import libraries for external .dll - dependencies (including contribs). Default: no - (for Windows targets created from Windows NT - shells only. Needs GNU Sed.) - - HB_BUILD_DEBUG=yes Create a debug build. Default: no + - HB_BUILD_NAME=[] Create named build. This allows to keep + multiple builds in parallel for any given + platform/compiler. F.e. debug / release. + NOTE: In current implementation it's + appended to compiler directory name, so all + filesystem/platform name rules and limits + apply. It's valid to use (back)slashes though. + - HB_BUILD_PKG=yes Create release package. Default: no + Requires 'clean install' in root source dir. + (currently on Windows/Windows CE/MS-DOS) + (only when using Windows NT shells) + - HB_BUILD_DLL=no Create Harbour dynamic libraries. Default: yes + - HB_BUILD_SHARED=yes Create Harbour executables in shared mode. + Default: yes when HB_INSTALL_PREFIX points + to a *nix system location, otherwise no. + - HB_BUILD_IMPLIB=yes Create import libraries for external .dll + dependencies (including contribs). Default: no + (for Windows targets created from Windows NT + shells only. Needs GNU Sed.) + - HB_BUILD_DEBUG=yes Create a debug build. Default: no - HB_BUILD_STRIP= - [all|bin|lib|no] Strip symbols and debug information from binaries. - Default: no - - HB_BUILD_OPTIM=no Enable C compiler optimizations. Default: yes - - HB_BUILD_UNICODE=yes Create Unicode build (on Windows/Windows CE). - Default: no - - HB_BUILD_MODE=[cpp|c] Change default build mode to C++ or C. - Default: c, except for msvc* compilers, where it's cpp. + [all|bin|lib|no] Strip symbols and debug information from binaries. + Default: no + - HB_BUILD_OPTIM=no Enable C compiler optimizations. Default: yes + - HB_BUILD_UNICODE=yes Create Unicode build (on Windows/Windows CE). + Default: no + - HB_BUILD_MODE=[cpp|c] Change default build mode to C++ or C. + Default: c, except for msvc* compilers, where it's cpp. - HB_BUILD_PARTS= - [all|compiler|lib] Build only specific part of Harbour. - - HB_BUILD_NOGPLLIB=yes Disable components dependent on GPL 3rd party code, - to allow Harbour for commercial (closed-source) - projects. Default: no - - HB_BUILD_EXTDEF=no Enable autodetection of external components - on default systems locations. Default: yes - - HB_CONTRIBLIBS=no Don't build any contrib libraries. Default: yes - - HB_CONTRIBLIBS=[] Build space separated of contrib - libraries. Build all if left empty. - - HB_CONTRIB_ADDONS= Build space separated of additional - libraries stored in the contrib directory. - - HB_EXTERNALLIBS=no Don't build any external libraries. Default: yes - - HB_EXTERNALLIBS=[] Build space separated of external - libraries. Build all if left empty. - - HB_EXTERNAL_ADDONS= Build space separated of additional - libraries stored in the external directory. - - HB_UTIL_ADDONS= Build space separated of additional - utilities stored in the utils directory. - - HB_COMPILER_VER=[] Set C compiler version. This is used with msvc - targets currently, and in the case of this - compiler, it will be autodetected. - format: - <09><00>[.<00>] = [.] - Default: filled by autodetection or empty - - HB_USER_LIBS=[] Add space separated of libs to link process. - Lib names should be without extension and path. - You only need this in special cases, like CodeGuard - build with bcc. - - HB_REBUILD_PARSER=yes Rebuild language parser sources. Typically - you only need this if your are Harbour core - developer modifying grammar rules (.y). - Requires GNU Bison 1.28 or upper in PATH. - Default: no - - HB_CCPATH=[/] 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=[] Used with gcc family to specify - compiler/linker/archive tool name prefix. - - HB_CCPOSTFIX=[] Used with gcc family to specify compiler/linker - tool name postfix (usually version number). + [all|compiler|lib] Build only specific part of Harbour. + - HB_BUILD_NOGPLLIB=yes Disable components dependent on GPL 3rd party code, + to allow Harbour for commercial (closed-source) + projects. Default: no + - HB_BUILD_EXTDEF=no Enable autodetection of external components + on default systems locations. Default: yes + - HB_CONTRIBLIBS=no [] Don't build any (or space separated of) + contrib libraries. + - HB_CONTRIBLIBS=[] Build space separated of contrib + libraries. Build all if left empty (default). + - HB_CONTRIB_ADDONS= Build space separated of additional + libraries stored in the contrib directory. + - HB_EXTERNALLIBS=no [] Don't build any (or space separated of) + external libraries. + - HB_EXTERNALLIBS=[] Build space separated of external + libraries. Build all if left empty (default). + - HB_EXTERNAL_ADDONS= Build space separated of additional + libraries stored in the external directory. + - HB_UTIL_ADDONS= Build space separated of additional + utilities stored in the utils directory. + - HB_COMPILER_VER=[] Set C compiler version. This is used with msvc + targets currently, and in the case of this + compiler, it will be autodetected. + format: + <09><00>[.<00>] = [.] + Default: filled by autodetection or empty + - HB_USER_LIBS=[] Add space separated of libs to link process. + Lib names should be without extension and path. + You only need this in special cases, like CodeGuard + build with bcc. + - HB_REBUILD_PARSER=yes Rebuild language parser sources. Typically + you only need this if your are Harbour core + developer modifying grammar rules (.y). + Requires GNU Bison 1.28 or upper in PATH. + Default: no + - HB_CCPATH=[/] 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=[] Used with gcc family to specify + compiler/linker/archive tool name prefix. + - HB_CCPOSTFIX=[] Used with gcc family to specify compiler/linker + tool name postfix (usually version number). Cross-building -------------- diff --git a/harbour/contrib/Makefile b/harbour/contrib/Makefile index 2168617280..28981da562 100644 --- a/harbour/contrib/Makefile +++ b/harbour/contrib/Makefile @@ -4,8 +4,6 @@ ROOT := ../ -ifeq ($(HB_CONTRIBLIBS),) - # contribs _without_ external dependencies DIRS := \ gtwvg \ @@ -50,14 +48,12 @@ DIRS += \ DIRS += \ hbxbp \ -else - -ifneq ($(HB_CONTRIBLIBS),no) - DIRS := $(HB_CONTRIBLIBS) -else +ifeq ($(HB_CONTRIBLIBS),no) DIRS := -endif - +else ifeq ($(firstword $(HB_CONTRIBLIBS)),no) + DIRS := $(filter-out $(HB_CONTRIBLIBS),$(DIRS)) +else ifneq ($(HB_CONTRIBLIBS),) + DIRS := $(HB_CONTRIBLIBS) endif DIRS += $(HB_CONTRIB_ADDONS) diff --git a/harbour/external/Makefile b/harbour/external/Makefile index 82b2cb4db9..6cbb1ae513 100644 --- a/harbour/external/Makefile +++ b/harbour/external/Makefile @@ -4,8 +4,6 @@ ROOT := ../ -ifeq ($(HB_EXTERNALLIBS),) - # standalone contribs DIRS := \ sqlite3 \ @@ -15,14 +13,12 @@ DIRS := \ pcre \ zlib \ -else - -ifneq ($(HB_EXTERNALLIBS),no) - DIRS := $(HB_EXTERNALLIBS) -else +ifeq ($(HB_EXTERNALLIBS),no) DIRS := -endif - +else ifeq ($(firstword $(HB_EXTERNALLIBS)),no) + DIRS := $(filter-out $(HB_EXTERNALLIBS),$(DIRS)) +else ifneq ($(HB_EXTERNALLIBS),) + DIRS := $(HB_EXTERNALLIBS) endif DIRS += $(HB_EXTERNAL_ADDONS)