From 84b016778c50beddf0963f40daf1745b5513dc4e Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 11 Sep 2009 01:37:44 +0000 Subject: [PATCH] 2009-09-11 03:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * INSTALL + Added Ubuntu pcre and zlib pkg information. + Documented HB_INC_ZLIB and HB_INC_PCRE settings. + Documented 'local' setting of HB_INC_* values. * external/libhpdf/Makefile * external/libpng/Makefile * source/rtl/Makefile * contrib/xhb/Makefile * contrib/hbmzip/Makefile * contrib/hbsqlit3/Makefile * contrib/hbhpdf/Makefile * config/detfun.mk * config/detect.mk % Avoid redetection for local packages. + Integrated logic to find out whether we're using the local copy of any given package. This is now returned in a variable called HB_HAS_*_LOCAL, if this value is non-empty we're using the local version. + Added HB_INC_* option 'local', which will force using the locally hosted version of given package. + HB_HAS_* variable will now contain only the first dir where header was detected. + Locally hosted headers will always be detected now, if they weren't found at any default system locations. + Added 'nolocal' HB_INC_* option which disables above behaviour. ; TODO: Delete _DET_LOC_PLAT variable if current system turns out to work well. ; NOTE: I've yet to test all this on *nix. * config/global.mk + Added HB_HOST_PLAT_UNIX variable. * contrib/hbhpdf/Makefile ! Fixed mistake in prev commit. * contrib/gtwvg/Makefile * source/rtl/gttrm/Makefile * external/sqlite3/Makefile * external/libhpdf/Makefile * external/libpng/Makefile % Optimization in make logic in GTWVG Makefile. - HB_WITH_* vars changed to not aid user override. + Displaying more meaningful reason if skipped. + compiler/platform availability checks laxed to reflect real buildability (will most probably need refinements), so that it becomes possible to use these even on *nix platforms, in case the system hosted copy is not good for us or not available. + Now these will be built if autodetections reveals that local version is to be used. * Renamed HB_WITH_* vars to HB_SUPPORTED to not collide with HB_WITH_* concept which is due to replace HB_INC_*. ; IOW: Now it should be possible to enable these locally hosted components on any systems/scenarios where compilation of the given component is supported. This happens automatically according to HB_INC_* variables. --- harbour/ChangeLog | 58 ++++++++++++++++++++ harbour/INSTALL | 10 +++- harbour/config/detect.mk | 40 +++++--------- harbour/config/detfun.mk | 31 +++++++++-- harbour/config/global.mk | 6 ++ harbour/contrib/gtwvg/Makefile | 28 ++-------- harbour/contrib/hbhpdf/Makefile | 8 +-- harbour/contrib/hbmzip/Makefile | 17 ------ harbour/contrib/hbsqlit3/Makefile | 7 +-- harbour/contrib/xhb/Makefile | 17 ------ harbour/external/libhpdf/Makefile | 91 +++++++++++++++---------------- harbour/external/libpng/Makefile | 64 +++++++++------------- harbour/external/pcre/Makefile | 8 +-- harbour/external/sqlite3/Makefile | 79 +++++++++++++++------------ harbour/external/zlib/Makefile | 10 +--- harbour/source/rtl/Makefile | 36 ------------ harbour/source/rtl/gttrm/Makefile | 17 +++--- 17 files changed, 250 insertions(+), 277 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 9d28a809d2..49ffdf3cce 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,64 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-09-11 03:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * INSTALL + + Added Ubuntu pcre and zlib pkg information. + + Documented HB_INC_ZLIB and HB_INC_PCRE settings. + + Documented 'local' setting of HB_INC_* values. + + * external/libhpdf/Makefile + * external/libpng/Makefile + * source/rtl/Makefile + * contrib/xhb/Makefile + * contrib/hbmzip/Makefile + * contrib/hbsqlit3/Makefile + * contrib/hbhpdf/Makefile + * config/detfun.mk + * config/detect.mk + % Avoid redetection for local packages. + + Integrated logic to find out whether we're using the local + copy of any given package. This is now returned in a + variable called HB_HAS_*_LOCAL, if this value is non-empty + we're using the local version. + + Added HB_INC_* option 'local', which will force using the + locally hosted version of given package. + + HB_HAS_* variable will now contain only the first dir where + header was detected. + + Locally hosted headers will always be detected now, if they + weren't found at any default system locations. + + Added 'nolocal' HB_INC_* option which disables above behaviour. + ; TODO: Delete _DET_LOC_PLAT variable if current system turns + out to work well. + ; NOTE: I've yet to test all this on *nix. + + * config/global.mk + + Added HB_HOST_PLAT_UNIX variable. + + * contrib/hbhpdf/Makefile + ! Fixed mistake in prev commit. + + * contrib/gtwvg/Makefile + * source/rtl/gttrm/Makefile + * external/sqlite3/Makefile + * external/libhpdf/Makefile + * external/libpng/Makefile + % Optimization in make logic in GTWVG Makefile. + - HB_WITH_* vars changed to not aid user override. + + Displaying more meaningful reason if skipped. + + compiler/platform availability checks laxed to reflect real buildability + (will most probably need refinements), so that it becomes possible to + use these even on *nix platforms, in case the system hosted copy is not + good for us or not available. + + Now these will be built if autodetections reveals that local version + is to be used. + * Renamed HB_WITH_* vars to HB_SUPPORTED to not collide with HB_WITH_* + concept which is due to replace HB_INC_*. + ; IOW: Now it should be possible to enable these locally hosted components + on any systems/scenarios where compilation of the given component + is supported. This happens automatically according to HB_INC_* + variables. + 2009-09-10 21:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * INSTALL + Added new section "HOW TO CONTRIBUTE". Very short, ideas are diff --git a/harbour/INSTALL b/harbour/INSTALL index a4bf85a9f2..9c2f229d6d 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -220,17 +220,21 @@ HOW TO ENABLE OPTIONAL COMPONENTS BEFORE BUILD HB_INC_MYSQL=C:\mysql\include HB_INC_ODBC= (may only be needed on non-Windows systems) HB_INC_OPENSSL=C:\openssl\inc32 OR C:\openssl\include + HB_INC_PCRE=C:\pcre (defaults to locally hosted version on win/dos/os2) HB_INC_PNG= (defaults to locally hosted version on non-*nix and Darwin systems) HB_INC_PGSQL=C:\pgsql\include HB_INC_QT=C:\Qt\include HB_INC_SLANG= (on *nix systems) HB_INC_SQLITE3=C:\sqlite3 (defaults to locally hosted version on win/dos/os2) HB_INC_X11= (on *nix systems) + HB_INC_ZLIB=C:\zlib (defaults to locally hosted version on win/dos/os2) HB_INC_WATT= (on MS-DOS systems) To explicitly disable any given components, use the value 'no' (without quotes). This may be useful to avoid autodetection of installed packages - on *nix systems. + on *nix systems. You may also use the value 'local' to force using the + locally hosted copy of these packages, where applicable. 'nolocal' will + explicitly disable using locally hosted copies. NOTES: - You need to use native path format to your shell/OS. - Spaces in directory names aren't currently supported. @@ -243,7 +247,7 @@ HOW TO ENABLE OPTIONAL COMPONENTS BEFORE BUILD Some contribs support build mode in which they can be linked *statically* with 3rd party components: - HB_QT_STATIC=yes (only for Windows/Windows CE targets) + HB_QT_STATIC=yes Darwin (Mac OS X) ----------------- @@ -265,6 +269,8 @@ HOW TO ENABLE OPTIONAL COMPONENTS BEFORE BUILD ---------------------- (tested with Ubuntu 7.04, 8.04, 9.04) + for zlib support: sudo apt-get install zlib1g-dev + for pcre regex support: sudo apt-get install libpcre3-dev for gtcrs terminal lib: sudo apt-get install libncurses-dev for gtsln terminal lib: sudo apt-get install libslang2-dev for gtxwc terminal lib: sudo apt-get install libx11-dev diff --git a/harbour/config/detect.mk b/harbour/config/detect.mk index 75ae1cbdcb..0b64414559 100644 --- a/harbour/config/detect.mk +++ b/harbour/config/detect.mk @@ -18,14 +18,16 @@ export DETECT_MK_ := yes _DET_OPT_VERB := very # Reset everything to default -export HB_HAS_ZLIB := -export HB_HAS_PCRE := -export HB_HAS_OPENSSL := -export HB_HAS_GPM := -export HB_HAS_SLANG := -export HB_HAS_CURSES := -export HB_HAS_X11 := -export HB_HAS_WATT := +export HB_HAS_ZLIB := +export HB_HAS_ZLIB_LOCAL := +export HB_HAS_PCRE := +export HB_HAS_PCRE_LOCAL := +export HB_HAS_OPENSSL := +export HB_HAS_GPM := +export HB_HAS_SLANG := +export HB_HAS_CURSES := +export HB_HAS_X11 := +export HB_HAS_WATT := # Exclude Harbour-wide features prohibiting commercial use @@ -46,19 +48,12 @@ _DET_VAR_HAS_ := HB_HAS_ZLIB _DET_FLT_PLAT := _DET_FLT_COMP := _DET_INC_DEFP := /usr/include -_DET_INC_LOCL := -ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/zlib -endif +_DET_INC_LOCL := $(realpath $(TOP)$(ROOT)external/zlib) +_DET_LOC_PLAT := win wce os2 dos _DET_INC_HEAD := /zlib.h include $(TOP)$(ROOT)config/detfun.mk -export HB_HAS_ZLIB_LOCAL := no -ifneq ($(findstring /external/,$(HB_HAS_ZLIB)),) - HB_HAS_ZLIB_LOCAL := yes -endif - # Detect pcre _DET_DSP_NAME := pcre @@ -67,19 +62,12 @@ _DET_VAR_HAS_ := HB_HAS_PCRE _DET_FLT_PLAT := _DET_FLT_COMP := _DET_INC_DEFP := /usr/include /opt/local/include -_DET_INC_LOCL := -ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/pcre -endif +_DET_INC_LOCL := $(realpath $(TOP)$(ROOT)external/pcre) +_DET_LOC_PLAT := win wce os2 dos _DET_INC_HEAD := /pcre.h include $(TOP)$(ROOT)config/detfun.mk -export HB_HAS_PCRE_LOCAL := no -ifneq ($(findstring /external/,$(HB_HAS_PCRE)),) - HB_HAS_PCRE_LOCAL := yes -endif - # Detect OpenSSL _DET_DSP_NAME := openssl diff --git a/harbour/config/detfun.mk b/harbour/config/detfun.mk index 70add47469..46a22576ba 100644 --- a/harbour/config/detfun.mk +++ b/harbour/config/detfun.mk @@ -19,12 +19,16 @@ # _DET_FLT_COMP - positive and negative compiler filters. Prefix negative ones with '!' char. # _DET_INC_DEFP - default location to look at. Not effective in 'HB_BUILD_EXTDEF=no' mode. # _DET_INC_LOCL - embedded location to look at. +# _DET_LOC_PLAT - positive and negative platform filters where embedded location is utilized. # _DET_INC_HEAD - header filename to look for. Unless looking for a directory, prefix with forward slash. # - variable name specified by _DET_VAR_INC_ (typically "HB_INC_*") should contains: # (empty) or yes - will enable external component if found on default locations. # no - will disable external component. -# force - will forcibly enable external component, bypass location checks, -# HB_HAS_* will have the content '.' (as local dir). +# force - will forcibly enable external component, bypassing location checks, +# HB_HAS_* will have the content '.' (as local dir). In this case user +# is responsible to pass -I C compiler option manually. +# local - will choose locally hosted version of external component. +# nolocal - will disable using locally hosted version of external component. # - will specify locations to check for the external component. # ON RETURN: # - above variables cleared. @@ -33,6 +37,8 @@ # have any these values: # (empty) - we can't use this component # - component headers were found at these locations (typically one) +# - variable name specified in _DET_VAR_HAS_ + "_LOCAL" (typically "HB_HAS_*_LOCAL") will +# be non-empty if we're using the locally hosted version of the package. # show verbose information (empty|yes|very) ifneq ($(_DET_OPT_VERB),) @@ -72,15 +78,31 @@ ifeq ($($(_DET_VAR_HAS_)),) $(_DET_VAR_HAS_) := $(_DET_INC_DEFP) endif $(_DET_VAR_HAS_) += $(_DET_INC_LOCL) + else + ifeq ($($(_DET_VAR_HAS_)),nolocal) + ifneq ($(HB_BUILD_EXTDEF),no) + $(_DET_VAR_HAS_) := $(_DET_INC_DEFP) + endif + endif + endif + ifeq ($($(_DET_VAR_INC_)),local) + $(_DET_VAR_HAS_) := $(_DET_INC_LOCL) endif ifneq ($($(_DET_VAR_HAS_)),) ifneq ($($(_DET_VAR_HAS_)),.) - $(_DET_VAR_HAS_) := $(strip $(foreach d,$($(_DET_VAR_HAS_)),$(if $(wildcard $(d)$(_DET_INC_HEAD)),$(d),))) + $(_DET_VAR_HAS_) := $(strip $(firstword $(foreach d,$($(_DET_VAR_HAS_)),$(if $(wildcard $(d)$(_DET_INC_HEAD)),$(d),)))) ifeq ($($(_DET_VAR_HAS_)),) _DET_RES_TEXT := '$(_DET_DSP_NAME)' not found $(call do_info,$(_DET_RES_TEXT)) else - _DET_RES_TEXT := '$(_DET_DSP_NAME)' found in $($(_DET_VAR_HAS_)) + # detect if the component was found in locally hosted dir + $(_DET_VAR_HAS_)_LOCAL := + ifneq ($(_DET_INC_LOCL),) + ifneq ($(filter $(_DET_INC_LOCL),$($(_DET_VAR_HAS_))),) + $(_DET_VAR_HAS_)_LOCAL := (local) + endif + endif + _DET_RES_TEXT := '$(_DET_DSP_NAME)' found in $($(_DET_VAR_HAS_)) $($(_DET_VAR_HAS_)_LOCAL) ifeq ($(_DET_OPT_VERB),very) $(call do_info,$(_DET_RES_TEXT)) endif @@ -121,4 +143,5 @@ _DET_FLT_PLAT := _DET_FLT_COMP := _DET_INC_DEFP := _DET_INC_LOCL := +_DET_LOC_PLAT := _DET_INC_HEAD := diff --git a/harbour/config/global.mk b/harbour/config/global.mk index e40cae2f51..65889e4fc4 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -807,6 +807,12 @@ export HB_PLATFORM export HB_COMPILER export HB_SHELL +ifneq ($(filter $(HB_HOST_PLAT),win wce dos os2),) + HB_HOST_PLAT_UNIX := +else + HB_HOST_PLAT_UNIX := yes +endif + ifneq ($(filter $(HB_PLATFORM),win wce dos os2),) HB_PLATFORM_UNIX := else diff --git a/harbour/contrib/gtwvg/Makefile b/harbour/contrib/gtwvg/Makefile index 16df2fa398..46a8d8a1a0 100644 --- a/harbour/contrib/gtwvg/Makefile +++ b/harbour/contrib/gtwvg/Makefile @@ -54,36 +54,20 @@ PRG_HEADERS := \ wvtwin.ch \ wvgparts.ch \ -ifeq ($(HB_WITH_GTWVG),) - ifeq ($(HB_PLATFORM),win) - ifeq ($(HB_COMPILER),mingw) - HB_WITH_GTWVG := yes - endif - ifeq ($(HB_COMPILER),msvc) - HB_WITH_GTWVG := yes - endif - ifeq ($(HB_COMPILER),watcom) - HB_WITH_GTWVG := yes - endif - ifeq ($(HB_COMPILER),pocc) - HB_WITH_GTWVG := yes - endif - ifeq ($(HB_COMPILER),icc) - HB_WITH_GTWVG := yes - endif - ifeq ($(HB_COMPILER),bcc) - HB_WITH_GTWVG := yes - endif +HB_SUPPORTED := no +ifeq ($(HB_PLATFORM),win) + ifneq ($(filter $(HB_COMPILER),mingw msvc watcom pocc icc bcc),) + HB_SUPPORTED := yes endif endif -ifeq ($(HB_WITH_GTWVG),yes) +ifeq ($(HB_SUPPORTED),yes) HB_INC_DEPEND := -I$(TOP)$(ROOT)contrib/hbwin include $(TOP)$(ROOT)config/header.mk include $(TOP)$(ROOT)config/lib.mk - else + HB_SKIP_REASON := platform or compiler not supported include $(TOP)$(ROOT)config/none.mk endif diff --git a/harbour/contrib/hbhpdf/Makefile b/harbour/contrib/hbhpdf/Makefile index ddcf853652..4f9d6981af 100644 --- a/harbour/contrib/hbhpdf/Makefile +++ b/harbour/contrib/hbhpdf/Makefile @@ -19,11 +19,9 @@ _DET_VAR_INC_ := HB_INC_LIBHARU _DET_VAR_HAS_ := HB_HAS_LIBHARU _DET_FLT_PLAT := _DET_FLT_COMP := -_DET_INC_DEFP := -_DET_INC_LOCL := -ifneq ($(HB_HOST_PLAT),dos) - _DET_INC_LOCL += /usr/include /usr/local/include $(TOP)$(ROOT)external/libhpdf -endif +_DET_INC_DEFP := /usr/include /usr/local/include +_DET_INC_LOCL := $(TOP)$(ROOT)external/libhpdf +_DET_LOC_PLAT := !dos _DET_INC_HEAD := /hpdf.h include $(TOP)$(ROOT)config/detfun.mk diff --git a/harbour/contrib/hbmzip/Makefile b/harbour/contrib/hbmzip/Makefile index d6d4dd7f32..97dcbde5fd 100644 --- a/harbour/contrib/hbmzip/Makefile +++ b/harbour/contrib/hbmzip/Makefile @@ -17,23 +17,6 @@ C_SOURCES := \ PRG_HEADERS := \ hbmzip.ch -# force redetection -HB_HAS_ZLIB := - -_DET_DSP_NAME := zlib -_DET_VAR_INC_ := HB_INC_ZLIB -_DET_VAR_HAS_ := HB_HAS_ZLIB -_DET_FLT_PLAT := -_DET_FLT_COMP := -_DET_INC_DEFP := /usr/include -_DET_INC_LOCL := -ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/zlib -endif -_DET_INC_HEAD := /zlib.h - -include $(TOP)$(ROOT)config/detfun.mk - ifneq ($(HB_HAS_ZLIB),) HB_CFLAGS += -DHB_HAS_ZLIB $(foreach d,$(HB_HAS_ZLIB),-I$(d)) diff --git a/harbour/contrib/hbsqlit3/Makefile b/harbour/contrib/hbsqlit3/Makefile index 13ad211bb2..388751e73d 100644 --- a/harbour/contrib/hbsqlit3/Makefile +++ b/harbour/contrib/hbsqlit3/Makefile @@ -20,10 +20,8 @@ _DET_VAR_HAS_ := HB_HAS_SQLITE3 _DET_FLT_PLAT := _DET_FLT_COMP := _DET_INC_DEFP := /usr/include -_DET_INC_LOCL := -ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/sqlite3 -endif +_DET_INC_LOCL := $(TOP)$(ROOT)external/sqlite3 +_DET_LOC_PLAT := win wce os2 dos _DET_INC_HEAD := /sqlite3.h include $(TOP)$(ROOT)config/detfun.mk @@ -33,7 +31,6 @@ ifneq ($(HB_HAS_SQLITE3),) include $(TOP)$(ROOT)config/header.mk include $(TOP)$(ROOT)config/lib.mk - else HB_SKIP_REASON := $(_DET_RES_TEXT) include $(TOP)$(ROOT)config/none.mk diff --git a/harbour/contrib/xhb/Makefile b/harbour/contrib/xhb/Makefile index a0895d64be..ae59e0e230 100644 --- a/harbour/contrib/xhb/Makefile +++ b/harbour/contrib/xhb/Makefile @@ -83,23 +83,6 @@ PRG_HEADERS := \ hbcompat.ch \ xhb.ch \ -# force redetection -HB_HAS_ZLIB := - -_DET_DSP_NAME := zlib -_DET_VAR_INC_ := HB_INC_ZLIB -_DET_VAR_HAS_ := HB_HAS_ZLIB -_DET_FLT_PLAT := -_DET_FLT_COMP := -_DET_INC_DEFP := /usr/include -_DET_INC_LOCL := -ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/zlib -endif -_DET_INC_HEAD := /zlib.h - -include $(TOP)$(ROOT)config/detfun.mk - ifneq ($(HB_HAS_ZLIB),) HB_CFLAGS += -DHB_HAS_ZLIB $(foreach d,$(HB_HAS_ZLIB),-I$(d)) diff --git a/harbour/external/libhpdf/Makefile b/harbour/external/libhpdf/Makefile index 279d96aaa5..9942084e6f 100644 --- a/harbour/external/libhpdf/Makefile +++ b/harbour/external/libhpdf/Makefile @@ -65,76 +65,73 @@ C_SOURCES := \ hpdfutil.c \ hpdfxref.c \ -# decide whether to build it locally -ifeq ($(HB_INC_LIBHARU),) - HB_INC_LIBHARU := yes - ifeq ($(HB_PLATFORM)-$(HB_COMPILER),win-watcom) - HB_INC_LIBHARU := no - endif - ifeq ($(HB_COMPILER),pocc64) - HB_INC_LIBHARU := no - endif - ifeq ($(HB_PLATFORM),wce) - HB_INC_LIBHARU := no - endif - ifeq ($(HB_COMPILER),mingwarm) - HB_INC_LIBHARU := yes - endif +# decide if it's supported at all +HB_SUPPORTED := yes +ifeq ($(HB_PLATFORM)-$(HB_COMPILER),win-watcom) + HB_SUPPORTED := no +endif +ifeq ($(HB_COMPILER),pocc64) + HB_SUPPORTED := no +endif +ifeq ($(HB_PLATFORM),wce) + HB_SUPPORTED := no +endif +ifeq ($(HB_COMPILER),mingwarm) + HB_SUPPORTED := yes endif -ifneq ($(HB_INC_LIBHARU),no) +ifeq ($(HB_SUPPORTED),yes) - _DET_DSP_NAME := libpng - _DET_VAR_INC_ := HB_INC_PNG - _DET_VAR_HAS_ := HB_HAS_PNG + _DET_DSP_NAME := libharu + _DET_VAR_INC_ := HB_INC_LIBHARU + _DET_VAR_HAS_ := HB_HAS_LIBHARU _DET_FLT_PLAT := _DET_FLT_COMP := - _DET_INC_DEFP := /usr/include - _DET_INC_LOCL := - ifneq ($(filter $(HB_PLATFORM),win wce os2 dos darwin),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/libpng - endif - _DET_INC_HEAD := /png.h + _DET_INC_DEFP := /usr/include /usr/local/include + _DET_INC_LOCL := $(TOP)$(ROOT)external/libhpdf + _DET_LOC_PLAT := !dos + _DET_INC_HEAD := /hpdf.h include $(TOP)$(ROOT)config/detfun.mk - ifneq ($(HB_HAS_PNG),) + ifneq ($(HB_HAS_LIBHARU_LOCAL),) - # force redetection - HB_HAS_ZLIB := - - _DET_DSP_NAME := zlib - _DET_VAR_INC_ := HB_INC_ZLIB - _DET_VAR_HAS_ := HB_HAS_ZLIB + _DET_DSP_NAME := libpng + _DET_VAR_INC_ := HB_INC_PNG + _DET_VAR_HAS_ := HB_HAS_PNG _DET_FLT_PLAT := _DET_FLT_COMP := _DET_INC_DEFP := /usr/include - _DET_INC_LOCL := - ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/zlib - endif - _DET_INC_HEAD := /zlib.h - + _DET_INC_LOCL := $(TOP)$(ROOT)external/libpng + _DET_LOC_PLAT := win wce os2 dos darwin + _DET_INC_HEAD := /png.h include $(TOP)$(ROOT)config/detfun.mk - ifneq ($(HB_HAS_ZLIB),) + ifneq ($(HB_HAS_PNG),) - HB_CFLAGS += $(foreach d,$(HB_HAS_ZLIB),-I$(d)) - HB_CFLAGS += $(foreach d,$(HB_HAS_PNG),-I$(d)) + ifneq ($(HB_HAS_ZLIB),) - ifeq ($(HB_COMPILER),mingwarm) - HB_CFLAGS += -U__COREDLL__ + HB_CFLAGS += $(foreach d,$(HB_HAS_ZLIB),-I$(d)) + HB_CFLAGS += $(foreach d,$(HB_HAS_PNG),-I$(d)) + + ifeq ($(HB_COMPILER),mingwarm) + HB_CFLAGS += -U__COREDLL__ + endif + + include $(TOP)$(ROOT)config/header.mk + include $(TOP)$(ROOT)config/lib.mk + else + HB_SKIP_REASON := $(_DET_RES_TEXT) + include $(TOP)$(ROOT)config/none.mk endif - - include $(TOP)$(ROOT)config/header.mk - include $(TOP)$(ROOT)config/lib.mk else HB_SKIP_REASON := $(_DET_RES_TEXT) include $(TOP)$(ROOT)config/none.mk endif else - HB_SKIP_REASON := $(_DET_RES_TEXT) + HB_SKIP_REASON := unused include $(TOP)$(ROOT)config/none.mk endif else + HB_SKIP_REASON := platform or compiler not supported include $(TOP)$(ROOT)config/none.mk endif diff --git a/harbour/external/libpng/Makefile b/harbour/external/libpng/Makefile index 124fb40b8b..171fa26298 100644 --- a/harbour/external/libpng/Makefile +++ b/harbour/external/libpng/Makefile @@ -29,59 +29,45 @@ C_SOURCES := \ pngwtran.c \ pngwutil.c \ -ifeq ($(HB_WITH_LIBPNG),) - ifeq ($(HB_PLATFORM),win) - HB_WITH_LIBPNG := yes - endif - ifeq ($(HB_PLATFORM),wce) - HB_WITH_LIBPNG := yes - endif - ifeq ($(HB_PLATFORM),os2) - HB_WITH_LIBPNG := yes - endif - ifeq ($(HB_PLATFORM),dos) - HB_WITH_LIBPNG := yes - endif - ifeq ($(HB_PLATFORM),darwin) - HB_WITH_LIBPNG := yes - endif - ifeq ($(HB_COMPILER),poccarm) - HB_WITH_LIBPNG := no - endif +# decide if it's supported at all +HB_SUPPORTED := yes +ifeq ($(HB_COMPILER),poccarm) + HB_SUPPORTED := no endif -ifeq ($(HB_WITH_LIBPNG),yes) +ifeq ($(HB_SUPPORTED),yes) - # force redetection - HB_HAS_ZLIB := - - _DET_DSP_NAME := zlib - _DET_VAR_INC_ := HB_INC_ZLIB - _DET_VAR_HAS_ := HB_HAS_ZLIB + _DET_DSP_NAME := libpng + _DET_VAR_INC_ := HB_INC_PNG + _DET_VAR_HAS_ := HB_HAS_PNG _DET_FLT_PLAT := _DET_FLT_COMP := _DET_INC_DEFP := /usr/include - _DET_INC_LOCL := - ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/zlib - endif - _DET_INC_HEAD := /zlib.h - + _DET_INC_LOCL := $(TOP)$(ROOT)external/libpng + _DET_LOC_PLAT := win wce os2 dos darwin + _DET_INC_HEAD := /png.h include $(TOP)$(ROOT)config/detfun.mk - ifneq ($(HB_HAS_ZLIB),) + ifneq ($(HB_HAS_PNG_LOCAL),) - HB_CFLAGS += $(foreach d,$(HB_HAS_ZLIB),-I$(d)) + ifneq ($(HB_HAS_ZLIB),) - ifeq ($(HB_COMPILER),djgpp) - HB_CFLAGS += -DPNG_NO_SNPRINTF + HB_CFLAGS += $(foreach d,$(HB_HAS_ZLIB),-I$(d)) + + ifeq ($(HB_COMPILER),djgpp) + HB_CFLAGS += -DPNG_NO_SNPRINTF + endif + + include $(TOP)$(ROOT)config/lib.mk + else + HB_SKIP_REASON := $(_DET_RES_TEXT) + include $(TOP)$(ROOT)config/none.mk endif - - include $(TOP)$(ROOT)config/lib.mk else - HB_SKIP_REASON := $(_DET_RES_TEXT) + HB_SKIP_REASON := unused include $(TOP)$(ROOT)config/none.mk endif else + HB_SKIP_REASON := platform or compiler not supported include $(TOP)$(ROOT)config/none.mk endif diff --git a/harbour/external/pcre/Makefile b/harbour/external/pcre/Makefile index 1f221348f0..f155553cdf 100644 --- a/harbour/external/pcre/Makefile +++ b/harbour/external/pcre/Makefile @@ -32,13 +32,7 @@ C_SOURCES := \ LIBNAME := hbpcre -ifeq ($(HB_WITH_PCRE),) - ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - HB_WITH_PCRE := yes - endif -endif - -ifeq ($(HB_WITH_PCRE),yes) +ifneq ($(HB_HAS_PCRE_LOCAL),) # workaround for problems in sunpro x86 PIC builds exploited by hbpcre library code ifeq ($(HB_COMPILER),sunpro) diff --git a/harbour/external/sqlite3/Makefile b/harbour/external/sqlite3/Makefile index 8414317446..7afaef8ec1 100644 --- a/harbour/external/sqlite3/Makefile +++ b/harbour/external/sqlite3/Makefile @@ -14,45 +14,56 @@ HB_BUILD_MODE := c C_SOURCES := \ sqlite3.c \ -ifeq ($(HB_WITH_SQLITE3),) - ifeq ($(HB_PLATFORM),win) - HB_WITH_SQLITE3 := yes - endif - ifeq ($(HB_PLATFORM),wce) - HB_WITH_SQLITE3 := yes - endif - ifeq ($(HB_PLATFORM),os2) - HB_WITH_SQLITE3 := yes - endif - ifeq ($(HB_PLATFORM),dos) - HB_WITH_SQLITE3 := yes - endif - ifeq ($(HB_COMPILER),mingwarm) - HB_WITH_SQLITE3 := no - endif - ifeq ($(HB_COMPILER),poccarm) - HB_WITH_SQLITE3 := no - endif - # NOTE: dos based watcom runs out of memory. [vszakats] - ifeq ($(HB_HOST_PLAT)-$(HB_COMPILER),dos-watcom) - HB_WITH_SQLITE3 := no +# decide if it's supported at all +HB_SUPPORTED := yes +ifeq ($(HB_COMPILER),mingwarm) + HB_SUPPORTED := no +endif +ifeq ($(HB_COMPILER),poccarm) + HB_SUPPORTED := no +endif +# NOTE: dos based watcom runs out of memory. [vszakats] +ifeq ($(HB_HOST_PLAT)-$(HB_COMPILER),dos-watcom) + HB_SUPPORTED := no +endif +# NOTE: diable *nix builds on non-*nix platforms. [vszakats] +ifeq ($(HB_HOST_PLAT_UNIX),) + ifneq ($(HB_PLATFORM_UNIX),) + HB_SUPPORTED := no endif endif -ifeq ($(HB_WITH_SQLITE3),yes) +ifeq ($(HB_SUPPORTED),yes) - ifeq ($(HB_PLATFORM),wce) - HB_CFLAGS += -D_WIN32_WCE - endif - ifeq ($(HB_PLATFORM),dos) - # DJGPP and OpenWatcom in DOS aren't correctly recognized by SQLite, - # so we're forcing the next best available option. This will cause missing - # externals though. [vszakats] - HB_CFLAGS += -DSQLITE_OS_OTHER - endif + _DET_DSP_NAME := sqlite3 + _DET_VAR_INC_ := HB_INC_SQLITE3 + _DET_VAR_HAS_ := HB_HAS_SQLITE3 + _DET_FLT_PLAT := + _DET_FLT_COMP := + _DET_INC_DEFP := /usr/include + _DET_INC_LOCL := $(TOP)$(ROOT)external/sqlite3 + _DET_LOC_PLAT := win wce os2 dos + _DET_INC_HEAD := /sqlite3.h + include $(TOP)$(ROOT)config/detfun.mk - include $(TOP)$(ROOT)config/lib.mk + ifneq ($(HB_HAS_SQLITE3_LOCAL),) + + ifeq ($(HB_PLATFORM),wce) + HB_CFLAGS += -D_WIN32_WCE + endif + ifeq ($(HB_PLATFORM),dos) + # DJGPP and OpenWatcom in DOS aren't correctly recognized by SQLite, + # so we're forcing the next best available option. This will cause missing + # externals though. [vszakats] + HB_CFLAGS += -DSQLITE_OS_OTHER + endif + + include $(TOP)$(ROOT)config/lib.mk + else + HB_SKIP_REASON := unused + include $(TOP)$(ROOT)config/none.mk + endif else - HB_SKIP_REASON := not supported or disabled + HB_SKIP_REASON := platform or compiler not supported include $(TOP)$(ROOT)config/none.mk endif diff --git a/harbour/external/zlib/Makefile b/harbour/external/zlib/Makefile index 82ff778b05..b2dcdfa31f 100644 --- a/harbour/external/zlib/Makefile +++ b/harbour/external/zlib/Makefile @@ -24,15 +24,9 @@ C_SOURCES := \ LIBNAME := hbzlib -ifeq ($(HB_WITH_ZLIB),) - ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - HB_WITH_ZLIB := yes - endif -endif - -ifeq ($(HB_WITH_ZLIB),yes) +ifneq ($(HB_HAS_ZLIB_LOCAL),) include $(TOP)$(ROOT)config/lib.mk else - HB_SKIP_REASON := not supported or disabled + HB_SKIP_REASON := unused include $(TOP)$(ROOT)config/none.mk endif diff --git a/harbour/source/rtl/Makefile b/harbour/source/rtl/Makefile index ec2aec499c..47310650b7 100644 --- a/harbour/source/rtl/Makefile +++ b/harbour/source/rtl/Makefile @@ -280,44 +280,8 @@ DIRS := \ gtwvt \ gtxwc \ -# force redetection -HB_HAS_ZLIB := - -_DET_DSP_NAME := zlib -_DET_VAR_INC_ := HB_INC_ZLIB -_DET_VAR_HAS_ := HB_HAS_ZLIB -_DET_FLT_PLAT := -_DET_FLT_COMP := -_DET_INC_DEFP := /usr/include -_DET_INC_LOCL := -ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/zlib -endif -_DET_INC_HEAD := /zlib.h - -include $(TOP)$(ROOT)config/detfun.mk - ifneq ($(HB_HAS_ZLIB),) - # Detect pcre - - # force redetection - HB_HAS_PCRE := - - _DET_DSP_NAME := pcre - _DET_VAR_INC_ := HB_INC_PCRE - _DET_VAR_HAS_ := HB_HAS_PCRE - _DET_FLT_PLAT := - _DET_FLT_COMP := - _DET_INC_DEFP := /usr/include /opt/local/include - _DET_INC_LOCL := - ifneq ($(filter $(HB_PLATFORM),win wce os2 dos),) - _DET_INC_LOCL += $(TOP)$(ROOT)external/pcre - endif - _DET_INC_HEAD := /pcre.h - - include $(TOP)$(ROOT)config/detfun.mk - ifneq ($(HB_HAS_PCRE),) HB_CFLAGS += -DHB_HAS_PCRE $(foreach d,$(HB_HAS_PCRE),-I$(d)) ifneq ($(HB_HAS_PCRE_LOCAL),) diff --git a/harbour/source/rtl/gttrm/Makefile b/harbour/source/rtl/gttrm/Makefile index b4393c25bb..3437a2a423 100644 --- a/harbour/source/rtl/gttrm/Makefile +++ b/harbour/source/rtl/gttrm/Makefile @@ -11,27 +11,27 @@ LIBNAME := gttrm C_SOURCES := \ gttrm.c \ -HB_WITH_GTTRM := yes +HB_SUPPORTED := yes ifeq ($(HB_PLATFORM),win) - HB_WITH_GTTRM := no + HB_SUPPORTED := no endif ifeq ($(HB_PLATFORM),wce) - HB_WITH_GTTRM := no + HB_SUPPORTED := no endif ifeq ($(HB_PLATFORM),dos) - HB_WITH_GTTRM := no + HB_SUPPORTED := no endif ifeq ($(HB_PLATFORM),os2) - HB_WITH_GTTRM := no + HB_SUPPORTED := no endif ifeq ($(HB_COMPILER),cygwin) - HB_WITH_GTTRM := yes + HB_SUPPORTED := yes endif ifeq ($(HB_COMPILER),djgpp) - HB_WITH_GTTRM := yes + HB_SUPPORTED := yes endif -ifeq ($(HB_WITH_GTTRM),yes) +ifeq ($(HB_SUPPORTED),yes) ifneq ($(HB_HAS_GPM),) HB_CFLAGS += -DHB_HAS_GPM @@ -42,5 +42,6 @@ ifeq ($(HB_WITH_GTTRM),yes) include $(TOP)$(ROOT)config/lib.mk else + HB_SKIP_REASON := platform or compiler not supported include $(TOP)$(ROOT)config/none.mk endif