* utils/hbmk2/examples/contrib.hbc
* utils/hbmk2/hbmk2.prg
* config/detfun.mk
* config/detect.mk
* INSTALL
* Terminology cleanup: "external code" -> "3rd party code"
- bin/hbxpatch.hbs
+ bin/hb3rdpat.hbs
* config/postinst.hbs
* package/harbour.spec
* Renamed hbxpatch.hbs to hb3rdpat.hbs to reflect terminology
cleanup ("external code" -> "3rd party code")
* utils/hbmk2/examples/contrib.hbc
* utils/hbmk2/examples/contribf.hbc
* utils/hbmk2/examples/oohg.hbc
* Using .hbc files.
* contrib/hbssl/ssl.c
+ SSL_GET_READ_AHEAD() function enabled. Made it a dummy
for bcc, where it for some reason creates unresolved
external when referencing the corresponding openssl API.
* config/detfun.mk
* config/global.mk
% Streamlined internal handling of HB_SRC_ROOTPATH value.
+ HB_SRC_ROOTPATH will now be conditioned before use:
ending pathsep added, pathseps converted to forward
slash, double slashes deleted.
! Fixed HB_BIN_COMPILE autodetection in PATH, $(realpath
was not necessary, it only ruined already absolute paths
which are likely to appear in PATH anyway.
% Optimized HB_BIN_COMPILE autodetection in PATH to reuse
function created for this purpose.
! Fixed GNU Make 3.81 version detection to work also with
future GNU Make versions.
+ Added GNU Make 3.80 version detection. (unused, commented)
% Deleted version guards from around $(eval) and $(info) calls:
Unknown function calls will simply be ignored by
GNU Make and empty string returned, so this is safe.
% Force HB_BUILD_PKG off only if HB_SRC_ROOTPATH is not
specified (and running < 3.81 GNU Make version).
+ Show warning when using < 3.81 GNU Make version and
HB_SRC_ROOTPATH was not specified.
+ Falling back to using HB_SRC_ROOTPATH in all places where
$(realpath) or $(abspath) calls are used in 3.81 version.
! Protected one $(realpath) with version guard.
+ Automatized how HB_VER_STATUS_SH is filled for final releases.
; NOTE: HB_SRC_ROOTPATH support is completely untested.
; TODO: If everything works as intended, now "only" $(eval)
calls need some workaround to give full blown
functionality also with 3.79 version of GNU Make.
* config/instsh.mk
! Fixed to not use $(realpath) (and fail to install),
when running under < 3.81 GNU Make.
* utils/hbmk2/hbmk2.prg
* config/global.mk
* Changed to use 'wcc386' executable for watcom detection
(was 'wpp386').
* INSTALL
+ Minor updates regarding QT.
* INSTALL
* config/detfun.mk
* config/global.mk
* HB_ROOT -> HB_SRC_ROOTPATH
Renamed to not have such obvious and short name and not
to collide with build-in hbmk2 macro with the same name.
* INSTALL
* config/global.mk
* config/detfun.mk
* config/detect.mk
* external/sqlite3/Makefile
* external/png/Makefile
* external/jpeg/Makefile
* external/bzip2/Makefile
* external/libhpdf/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbmzip/Makefile
* contrib/hbbz2/Makefile
* contrib/hbhpdf/Makefile
* contrib/sddsqlt3/Makefile
* contrib/hbwin/Makefile
+ Added HB_ROOT variable which can be used to specify Harbour
source tree root as an absolute directory, when using
older than 3.81 GNU Make version (f.e. on QNX).
+ Changed the way locally hosted source directories are
specified for detection function, in order to support
HB_ROOT functionality.
* contrib/hbwin/hbwin.ch
+ Added new macros submitted by Xavi.
Formatting (tab removal/alignment) applied.
* config/detfun.mk
+ Displays "Configure with HB_WITH_*" text on non-*nix systems,
when an external component is not found.
Comments are welcome whether this is useful, it looks a bit
verbose/ugly to me.
* INSTALL
* Minor change in wording.
* INSTALL
* HB_INC_* -> HB_WITH_*. This is now the new documented (pbly
the final name) to control external dependencies. Usage is
the same as with HB_INC_*. HB_INC_* is still accepted.
+ Synced .deb and .rpm package names with information found in
mpkg_*.sh files.
* config/detfun.mk
! Fixed to accept HB_WITH_* variables in place of HB_INC_*.
If both are specified, HB_WITH_* will be used.
* mpkg_deb.sh
% Deleted redundant-looking package detection. Packages are now
detected from GNU Make everywhere where needed.
Also deleted redundant assembly of HB_CONTRIBLIBS variable.
* mpkg_tgz.sh
% Deleted -fPIC handling. Now handled by GNU Make system.
- Deleted HB_NCURSES_FINK variable which isn't used in Harbour anywhere.
* config/global.mk
+ Setting lib INSTALL dir to lib64 for x86_64 targets.
(Please extend this with other 64-bit CPU types, if
this is how it should work on *nixes)
This rule was taken from mpkg_tgz.sh.
* ChangeLog
! Typos.
* source/rtl/hbsocket.c
! Applied patch for BEOS/HAIKU by Tamas Tevesz.
* contrib/hbtip/sendmail.prg
! Fixed to append CRLF instead of hb_osNewLine() to e-mail body.
Patch submitted by Lorenzo Fiorini.
NOTE: This fix is surely valid, I'll apply further fixes as we
manage to find out more on the bigger picture.
* contrib/hbtip/mail.prg
! Applied a few patches from mail.prg sent by Gerald Drouillard:
- Using :setBody() from :New() instead of replicating (little bit
different) logic.
- "Content-Length" deleted from generated e-mail text.
- Added parameter list to METHOD declaration for :setHeader().
* Minor formatting.
* config/beos/libs.mk
+ Applied patch from Tamas Tevesz changing 'socket' lib to 'network' for BEOS/HAIKU.
* utils/hbmk2/hbmk2.prg
+ Done the same for hbmk2 (changed 'socket' lib to 'network' for BEOS/HAIKU).
* config/detfun.mk
+ Changed to avoid duplicate component detection lines in verbose output.
(_DET_OPT_VERB=very|yes - not yet documented)
(note this needs absolute paths to be used when referring to internal
components in _DET_INC_DEFP/_DET_INC_LOCL)
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbhpdf/Makefile
+ Changed to use absolute paths when referring to locally hosted components
in _DET_INC_LOCL variables.
* source/Makefile
* config/lib.mk
+ Added Przemek's patch to add local hbzlib and hbpcre
libs to Harbour dynlib.
; TODO: Add some ways to disable this because it has some
drawbacks (it f.e. makes it impossible to link 3rd
party libs also exporting zlib / pcre interfaces).
This information needs to be passed to hbmk2, too.
I don't have any elegant way to solve this problem ATM.
* utils/hbmk2/hbmk2.prg
* Changed to only add local hbzlib and hbpcre libs to liblist
in static mode. (this is needed to support change above).
+ Enabled lib grouping for beos/gcc.
+ Added supc++/supcxx lib to liblist of gcc family compilers.
This aims to solve link problems when Harbour is built
in C++, but hbmk2 is used in C mode.
* contrib/hbqt/hbqts.hbc
* contrib/hbqt/hbqt.hbc
* contrib/gtqtc/gtqtcs.hbc
* contrib/gtqtc/gtqtc.hbc
- Deleted explicit supc++ libspec. Now it's added by
hbmk2 automatically.
* config/dyn.mk
! Modified to add local hbpcre and hbzlib to syslib
list to make it link with beos/haiku.
Please test/confirm this change.
- Disabled above logic, since it's not needed.
* config/global.mk
+ Added autodetection for linux/sunpro, linux/icc,
darwin/clang, darwin/gcc, darwin/icc.
On darwin clang became the default, if available.
* external/sqlite3/Makefile
+ Tweak for linux/watcom. Based on Przemek patch sent to the devlist.
* config/detfun.mk
* config/bin.mk
* config/dyn.mk
* source/Makefile
* config/lib.mk
% Minor modification to HB_HAS_*_LOCAL logic to make
it safe to use this var without first checking HB_HAS_*.
; Please test/review these. I didn't restest everything after above changes.
* utils/hbmk2/hbmk2.prg
! Fixed to include system zlib/pcre libs in static mode if local built lib
isn't found.
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* utils/hbmk2/hbmk2.prg
* contrib/hbsqlit3/Makefile
* contrib/hbhpdf/Makefile
* config/detfun.mk
* config/detect.mk
- Deleted _DET_LOC_PLAT variable.
* package/winuni/mpkg_win_uni_extra_copy.bat
- Deleted some extra commented lines dealing with pcre/zlib headers.
* 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.
* external/libhpdf/Makefile
* external/libpng/Makefile
* contrib/xhb/Makefile
* contrib/hbmzip/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/QApplication.cpp
* contrib/hbhpdf/Makefile
* source/rtl/Makefile
* config/detfun.mk
* config/detect.mk
+ Added separate variable to pass embedded locations to autodetection,
so that these aren't suppressed by HB_XBUILD (now HB_BUILD_EXTDEF).
I hope it will work, I still have to try it on Linux.
* harbour-win-spec
* harbour-wce-spec
* INSTALL
* bin/hb-func.sh
* config/detfun.mk
* config/global.mk
* Renamed HB_XBUILD to HB_BUILD_EXTDEF=no[|yes].
Not the perfect name, but anyway.
+ Documented HB_BUILD_EXTDEF setting.
; TOFIX: There is an HB_XBUILD reference in mpkg_tgz.sh which
I couldn't correct.
* Makefile
+ Moved building of external libs before utils.
This will allow to add embedded external libs which are used
by Harbour core.
* bin/hb-func.sh
! Fixed recent mistake in gpm detection at postinst (now redundant)
dynlib generation phase.
* source/rtl/fssize.c
! Fixed warnings shown by mingw64 4.5.0.
* config/detfun.mk
+ Now accepting HB_WITH_* control variables in place of HB_INC_* once.
If HB_WITH_* is set it overrides HB_INC_*. Experimental yet.
* Minor in comments.
* config/detect.mk
* Minor correction for conf.mk inclusion.
* mpkg_deb.sh
* HB_WITHOUT_ADS -> HB_INC_ADS
* HB_WITHOUT_ODBC -> HB_INC_ODBC
; Please verify these changes.
* contrib/gtalleg/Makefile
* contrib/hbmysql/Makefile
* contrib/hbodbc/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbfbird/Makefile
* contrib/hbcurl/hbcurls/Makefile
* contrib/hbcurl/Makefile
* contrib/rddsql/sddmy/Makefile
* contrib/rddsql/sddpg/Makefile
* contrib/rddsql/sddfb/Makefile
* contrib/rddsql/sddodbc/Makefile
* contrib/hbhpdf/Makefile
* contrib/hbpgsql/Makefile
* contrib/rddads/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbtip/Makefile
+ Using new central detection function instead of replicating
in in every contrib. The "side effect" is that now precise
instructions will be shown if a given contrib isn't included in a build.
Code is much cleaner/simpler/shorter now.
; It's possible that I made some mistakes along the line,
plus report if anything is wrongly detected.
* external component names converted to all lowercase.
; QT will be done in next commit.
* config/detfun.mk
* config/detect.mk
+ Added usage instructions (moved parts from detect.mk to detfun.mk).
* Moved help to detfun.mk.
+ Added HB_INC_* 'force' option.
+ Now clearing _DET_* vars on exit.
* external component names converted to all lowercase.
* config/global.mk
+ Updated plans.
* config/detfun.mk
* config/detect.mk
+ Added positive platform/compiler filters.
+ Simplified internal platform/compiler filter syntax, now it's
one unified list where compiler/platform can be mixed and
negative filters can be passed by using '!' char prefix.
! In comment text.
* source/rtl/gtsln/Makefile
! Fixed silly copy-paste mistake in recent autodetection changes.
Thanks to Tamas Tevesz for spotting it.
* source/rtl/gtsln/mousesln.c
* Using macros instead of a constants.
(2 -> STDERR_FILENO)
+ config/detfun.mk
+ config/detect.mk
* config/global.mk
+ Added generic external component detection function.
+ Added central detection for optional external components
used by Harbour core. These are: openssl, gpm, slang, curses, x11
Easy to extend with new ones.
The detection code will run once per make session and
results can be used in all our make files by checking HB_HAS_*
variable. If it's empty we cannot use the component, if
it's not we can. In this case it contains dir where headers
were located. It's possible that it's a list of paths.
Users can control these components by using HB_INC_* variable
the following way: if it's left empty, Harbour make system
will automatically look into default locations, this usually
works on *nix systems. If set to a path (or a list of paths),
this list will be checked. Finally to explicitly disable a
component, user can set the variable to 'no'.
Following legacy control variables are yet understood, but
the will be removed in the near future:
HB_WITHOUT_GTCRS=yes is the same as HB_INC_CURSES=no
HB_WITHOUT_SLANG=yes is the same as HB_INC_SLANG=no
HB_WITHOUT_GTXWC=yes is the same as HB_INC_X11=no
Notice that these settings aren't meant to allow user control
of actual Harbour components (like gtxwc). If we need something
like this, we can do it, but it wasn't the subject of this change.
HB_GPM_MOUSE var is still set for compatibility with internals.
NOTE: I've left verbose output on to see what's happening, this will
tuned after testing.
; TODO: Remove reliance on legacy settings in our own codebase.
; TODO: Start using HB_HAS_* values for dynamic lib syslib list assembly
and in GT Makefiles.
* contrib/hbtip/hbtipssl/Makefile
* contrib/hbtip/Makefile
* contrib/hbssl/Makefile
* HB_HAS_OPENSSL works a little differently now, not empty
means 'yes', empty means 'no'.