* bin/hb-func.sh
* bin/postinst.sh
- Deleted 'hbmk' script. Now superceded by hbmk2, which is
backward compatible with hbmk.
- Deleted 'hb-mkslib' compatibility synonym. Use 'hb-mkdyn'
instead.
* Makefile
- bin/postinst.prg
+ config/postinst.prg
* Moved postinst.prg from bin to config dir.
* config/postinst.prg
+ Changed to automatically build all tools found in /utils,
thus dropping hard-wired tool names from postinst.
* Minor cleanup.
* bin/postinst.prg
* Corrected double pathseps in one place.
* ChangeLog
+ Marked TODO's as DONE.
! Fixed timezone for today.
* utils/hbrun/hbrun.rc
+ Added support for OS/2. Can someone test it?
- bin/postinst.bat
* bin/postinst.prg
* INSTALL
* Moved remaining .bat to .prg. This means that HB_BUILD_PKG now
should work with all shells and (cross) build situations. I didn't
test these (pls do so), but it's now easy to make necessary
tweaks for these platforms in case it's necessary.
; Harbour doesn't use a single line of .bat anymore in the build process.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
* config/os2/gcc.mk
! Fixed resource compiler binary name to honor CCPREFIX and friends.
* utils/hbrun/Makefile
+ utils/hbrun/hbrun.rc
+ Added resource file to include icon.
; TOFIX: The .ico file path is hard-wired and will break if HB_BUILD_NAME
contains subdirs.
* bin/postinst.bat
- Deleted no more necessary hack to build hbrun with icon using hbmk2.
* INSTALL
* config/rules.mk
+ config/res.mk
* config/bin.mk
* config/wce/global.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/common/watcom.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/cygwin.mk
* config/win/global.mk
* config/win/msvc.mk
* config/os2/watcom.mk
* config/os2/gcc.mk
* config/os2/global.mk
+ Added support to GNU Make system to compile and link resources
on win, wce and os2 platforms.
* bin/postinst.bat
+ Deleted requirements from local comment. These are
documented in INSTALL.
* bin/postinst.bat
* bin/postinst.prg
+ Moved shared Harbour tools generation from .bat to .prg.
So now it should work on OS/2, cross-builds and all shells
in general. (some cmdline tweaks may be required for *nix)
+ Changed hbrun regeneration (with icon) to better take into account
build settings.
; This leaves about 50 (!) total lines of DOS batch code in
Harbour, which is quite good for a project of this size.
* bin/postinst.bat
* bin/postinst.prg
+ Moved implib generation logic from .bat to .prg. You may
recall this has happened recently, and you're right, but
this time it's based on hbmk2 calls. This change means
that implib generation is now available for all shells
(f.e. msys and cross-build scenarios).
(best would be to move to GNU Makefile level though)
* utils/hbmk2/hbmk2.prg
* Minor cleanup to use native pathseps in hb_FileExists() call.
* bin/postinst.bat
! Fixed missing '\' when forming PGSQL .dll path.
* utils/hbmk2/hbmk2.prg
+ Added undocumented '-mkimplibms' option to allow for users
to make bcc implib happy for some .dlls (translated to
-a implib.exe option). Ugly solution, needed because bcc
chose not to follow standards.
* bin/postinst.bat
+ Some adjustments to hbmk2-based implib generation cmdlines.
+ Added exception to use static ocilibs with mingw.
* bin/postinst.bat
- bin/hb-mkimp.prg
* package/winuni/mpkg_win_uni_extra_copy.bat
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ Switched HB_BUILD_IMPLIB build option to use hbmk2
to create implibs instead of local solution (hb-mkimp.prg).
Note, this means that implibs will now always be
created dynamically from .dll, even when a package
offers pre-built .lib for the compiler. This will
in practice cause a change msvc and pocc compilers.
This also means that from now on it's enough to have
the .dll to create implibs.
It's also easier for users to create implibs using
hbmk2 any time, so it's possible that HB_BUILD_IMPLIB
build-time option will be deleted in the future.
; Not tested yet.
* utils/hbmk2/hbmk2.prg
+ Added experimental -mkimplib= option to "convert" .dll
files into import libraries. Syntax tentative.
; TODO: Support for idiotic -a Borland C implib option.
If anyone has an idea how to detect when to use
-a and when not, I will implement it. If not,
I will most probably drop maintaining -a option
for bcc and leave it off. This leaves implibs
working for most .dlls we currently use, but will
break some (blat, curl, cairo, pq, alleg from
contrib).
* config/win/xcc.mk
* utils/hbmk2/hbmk2.prg
! Fixed to use case-correct filenames for xcc tools.
* bin/hb-mkimp.prg
+ Added msvcia64, msvcarm, xcc support.
! Fixed few library specs for msvc*.
* FS_ERROR -> F_ERROR
! Fixed handling spaces inside dll name for msvc*.
! Fixed handling non .dll extension for msvc*.
* bin/hb-mkimp.prg
+ Finished, tested. This version also adds pocc64 support.
It also gives proper feedback.
* INSTALL
* bin/postinst.bat
- bin/hb-mkimp.bat
* package/winuni/mpkg_win_uni_extra_copy.bat
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ Switched to use hb-mkimp.prg instead of .bat.
25KB less of non-portable .bat file in Harbour SVN.
Remains only ~100 lines of .bat stuff in core parts.
+ Deleted GNU Sed requirement.
+ Lifted Windows NT requirement for implib creation.
+ Lifted NT shell requirement for implib creation.
+ bin/hb-mkimp.prg
+ Added .prg rewrite for implib generation. This highly
reduces redundancy, drops WinNT and GNU Sed tool
requirement, further lowers the amount of non-portable
batch sources in SVN. It also opens the door to add
automatic implib generation in tools like hbmk2.
Not yet tested.
* bin/postinst.bat
% Minor cleanup.
* bin/hb-mkimp.bat
* Rearrangement.
* utils/hbmk2/hbmk2.prg
! Typo on comment.
* harbour/bin/postinst.bat
! fixed to not override hbrun if HB_BUILD_SHARED == "yes"
* harbour/ChangeLog
! fixed date
* harbour/contrib/hbsqlit3/hbsqlit3.c
! fixed usage hb_fsNameConv in SQLITE3_TEMP_DIRECTORY
* bin/postinst.bat
! Fixed recent change. 'HB_BUILD_SHARED=yes' means to create
_default_ binaries (hbtest.exe, hbrun.exe, etc) in shared
mode, so the correct behavior here is to _not_ create separate
shared versions in this case.
I didn't retest every aspect of this, so it's possible even
this is wrong and the whole change has to be rethought or reverted.
! Fixed indentation after recent change.
Please do respect formatting when editing files.
* src/rtl/hbsocket.c
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
+ Restored to work with ws2_32.dll. (instead of wsock32)
* INSTALL
+ Added information on Win9x/ME support.
* src/rtl/diskspac.c
* src/rtl/disksphb.c
+ Added comment about the reason why GetDiskFreeSpaceEx()
is called dynamically (win95 first edition support).
+ Added support for HB_NO_WIN95 build-time flag to drop
Win95 compatibility. Unfortunately current dynamic load
trick fails with UNICOWS, returning zero for disk
space related calls in this scenario. If we drop the
dynamic call, we lose support for Win95 first edition,
but these functions will work properly on Win95b/98/ME
in return. I'm still thinking about it, but maybe it's
better to drop Win95 first edition support altogether
and make newer versions work properly. Any opinions?
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_wingdi_font.c
! Fixed to use WIDE/ANSI versions of dynamically executed
functions according to UNICODE setting.
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
! Stepping back to link against wsock32 instead of ws2_32.
The only reason is Win95 (even OSR2) compatibility.
This is a little bit less efficient unfortunately.
* src/rtl/hbsocket.c
! Fixed to use WSAioctl via dynamic call for non WinCE
builds, and if HB_NO_WIN95 macro is no defined.
WSAioctl is present in ws2_32.dll, which .dll isn't
available on Win95.
; Not tested since I don't know how to test it, pls
review and test.
; NOTE: There seem to exist a package which add ws2_32
support for Win95, but I couldn't find it, if
someone has, we can drop this ugly trick and
simply document the requirement.
* src/rtl/gtwin/gtwin.c
* Formatting.
* INSTALL
* bin/hb-mkimp.bat
+ contrib/rddsql/sddoci
+ contrib/rddsql/sddoci/Makefile
+ contrib/rddsql/sddoci/ocidd.c
+ contrib/rddsql/sddoci/sddoci.hbc
+ contrib/rddsql/sddoci/tests
+ contrib/rddsql/sddoci/tests/hbmk.hbm
+ contrib/rddsql/sddoci/tests/test1.prg
* contrib/rddsql/Makefile
+ Added support for direct connection to Oracle
databases via OCILIB library.
UNICODE, ANSI (default) and MIXED modes are supported.
For mingw targets, the library will be linked
statically, for the rest dynamically.
You need to have Oracle client (oci.dll and the
rest of the package) installed to use it.
; TODO: Finish type conversion and mapping.
* contrib/rddsql/sddmy/mysqldd.c
* contrib/rddsql/sddpg/pgsqldd.c
* contrib/rddsql/sddfb/fbirddd.c
* contrib/rddsql/sddodbc/odbcdd.c
! HB_ULONG -> HB_SIZE
; TOFIX: To Mindaugas: Current SDD architecture will crash with GPF
if dbUseArea() is attempted after a failed RDDI_CONNECT
call. You can check it f.e. with sddodbc's test1.prg, by
modifying test.mdb to test_.mdb, and simply run it.
* harbour/bin/hb-func.sh
* updated new contrib libraries
* harbour/contrib/xhb/regexrpl.prg
! fixed hb_RegexReplace() to respect lCaseSensitive and lNewLine flags
* harbour/src/rtl/filesys.c
% use in OS2 builds system API functions instead of CRTL ones
to get/set current drive
% use in OS2 builds system API function DosQueryCurrentDisk() to
check if disk drives are available in hb_fsIsDrv() function
! use in OS2 builds system API function DosQCurDir() to extract current
directory. It fixed buffer overflow due to ignored buffer size in
GCC OS2 builds and makes MT safe getting current directory for non
current drive.
* bin/hb-mkimp.bat
+ Added support for Apollo 7.
* utils/hbmk2/hbmk2.prg
+ Accepting '&&' and '||' as 'and' and 'or' operators.
* examples/hbsqlit2/hbsqlit2.hbp
* examples/hbapollo/hbapollo.hbp
+ HB_INC_* -> HB_WITH_*
* examples/hbapollo/apollo.c
* examples/hbapollo/hbapollo.hbc
+ Added support for Apollo 7.
+ Version 6.1 can now be selected by defining HB_WITH_APOLLO_VER61 envvar.
* examples/gtwvw/gtwvw.c
* HB_LONG -> HB_MAXINT
* INSTALL
+ Added new section: 7. DEBUGGING OPTIONS
So far covered: tracing, memory statistics, valgrind and codeguard.
I'd like to ask our experts to review and if needed extend
these informations (send me suggestions and I'll update it).
* bin/postinst.bat
+ Enabling -debug option on shared tool hbmk2 builds if HB_BUILD_DEBUG=yes.
* contrib/hbide/ideactions.prg
! Typo.
* harbour/include/Makefile
* harbour/include/hbmath.h
+ harbour/include/hbmather.h
* harbour/include/hbsetup.h
* harbour/include/hbapi.h
* moved math error handler definitions and settings separate header file
* moved hb_random_num() declaration from hbmath.h to hbapi.h
After above modification hbmath file should be use only by code which
wants to use math functions declared usually in math.h
+ harbour/include/hbfloat.h
+ added header file with test macros for floating point numbers
this file should be included before any other files
* harbour/src/vm/hvmall.c
* harbour/src/vm/itemapi.c
* harbour/src/common/hbprintf.c
* harbour/src/rtl/math.c
* use new macros from hbfloat.h
* harbour/src/rtl/math.c
+ include "hbmather.h"
* harbour/src/rtl/hbrandom.c
* harbour/src/rdd/dbf1.c
* harbour/contrib/xhb/hboutdbg.c
- removed not longer necessary include "hbmath.h"
* harbour/contrib/hbct/ctmath.h
- do not include <float.h> and <limits.h>
* harbour/contrib/hbct/ct.h
- do not include "hbmath.h" and "ctmath.h"
* harbour/contrib/hbct/ctmath.c
* harbour/contrib/hbct/exponent.c
* harbour/contrib/hbct/ctc.c
+ include "ctmath.h"
* harbour/contrib/hbct/trig.c
* harbour/contrib/hbct/finan.c
* harbour/contrib/hbct/ctmath2.c
+ include "ctmath.h"
+ include "hbmather.h"
* harbour/contrib/hbct/num1.c
+ include "ctmath.h"
+ include <float.h>
* harbour/include/hbinit.h
* harbour/src/rtl/hbsocket.c
* added patches from Tamas - thanks
* harbour/bin/hb-func.sh
* harbour/harbour.spec
+ create /etc/ld.so.conf.d/harbour.conf with Harbour shared lib directory
if /etc/ld.so.conf.d directory exists and user has sufficient write
permission or install package is created.
This modification allows to install Harbour anywhere and in modern
distros using /etc/ld.so.conf.d/ harbour shared libraries will be
always available for all programs
[TOMERGE 2.0]
* harbour/include/hbgtcore.h
* harbour/include/hbapigt.h
* moved declaration of hb_gtSetDefault() from hbgtcore.h to hbapigt.h
* harbour/include/hbapi.h
* harbour/src/vm/hvm.c
+ added new function hb_vmSetDefaultGT()
* harbour/bin/hb-func.sh
* harbour/utils/hbmk2/hbmk2.prg
* use hb_vmSetDefaultGT() to set default GT
* removed extern declarations for functions defined in hbapi.h
* harbour/src/vm/dynlibhb.c
+ added support for HB_LIBLOAD()/HB_LIBFREE() in DJGPP 2.04 builds
* harbour/config/global.mk
* use 8.3 names for harbour dynamic libraries in all DOS builds
* harbour/config/dos/djgpp.mk
+ added support for dynamic libraries (DXE) in DJGPP builds.
DXE is sth similar to DLL in Windows and can be used with
DJGPP 2.04. I had to make some modifications in DXE header
files to make it working so it will not work in default DJGPP
installation. I'll document these modifications in the future.
* harbour/config/dos/watcom.mk
* enable creating of harbour dynamic libraries only when HB_BUILD_DLL
is explictly set by user to 'yes'. In DOS DJGPP and OpenWatcom builds
DLLs support is not functional yet.
* harbour/config/dyn.mk
* added an option to create harbour dynamic libraries from static
ones instead of .o|.obj files. It's necessary for DXE3GEN which
internally calls LD which has some limited on maximum size of passed
parameters.
TODO: make HB_DYN_LIBS definition common for dyn.mk and lib.mk
* harbour/bin/hb-func.sh
! use CC_HB_USER_LIBS instead of HB_USER_LIBS in linked library list
current HB_USER_LIBS has different meaning in build process then
in the past
* harbour/include/hbsetup.h
* harbour/include/hbdefs.h
* harbour/include/hbthread.h
* harbour/src/common/hbver.c
* harbour/bin/hb-func.sh
* harbour/bin/postinst.sh
* harbour/config/linux/gcc.mk
+ harbour/config/linux/open64.mk
+ added support for Open64 C/C++ compiler in Linux builds
* harbour/src/common/hbver.c
* removed unnecessary casting compiler version number parameters
to 'short'
* extended the size of szBuf buffer as requested by Tamas
* bin/postinst.bat
+ Syncing C/C++ Harbour build mode with hbmk2 invocation
options in postinst phase. (please test)
Only required for mingw, but it's done for every compiler
for consistency, but only if it's overridden by user.
(so f.e. for msvc, C++ isn't enabled in this case. This
could be done on hbmk2 level however, but it would cause
a lot of 3rd party code to break so I didn't do it yet.)
I didn't add logic to hbmk2 to inherit build-time C/C++
setting, because it wouldn't work in cross-build situations,
and multi-target installations.
* utils/hbmk2/hbmk2.prg
+ Added comment on msvc C++ mode.
* bin/hb-mkimp.bat
- Deleted creation of QT implibs for mingw. Enough to use what's
provided by QT SDK.
* contrib/hbqt/qtgui/QLabel.cpp
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/qtcore/filelist.mk
* Rerun generator. This caused that QTUILoader references
got removed, plus a few other changes.
* contrib/hbqt/qtcore/QUiLoader.cpp
- Deleted header telling this file is automatically generated.
! Manually fixed debug lines to be in sync with rest of hbqt.
* contrib/hbqt/qtcore/Makefile
! Fixed to add QTUILoaded stuff manually, since it's missing
from generated filelist.mk.
* config/win/msvc.mk
* Minor in comment.
* INSTALL
+ Documented HB_WITH_CAIRO setting.
* bin/hb-mkimp.bat
+ Added HB_BUILD_IMPLIB support for cairo lib.
I didn't test them.
* contrib/hbcairo/hbcairo.hbc
* Changed cairo lib name from 'libcairo-2.0' to 'cairo'
This is what HB_BUILD_IMPLIB will generate.
; TODO: It's the "fun" part of any component adaptation, that
each build and platform use a different lib naming scheme.
We should fix this one by one for all platforms.
; TODO: Make build tests on each platform/compiler.
* contrib/hbcairo/Makefile
+ Added cairo component detection.
- Deleted installation of .h header. It doesn't seem to be
one for the public.
* config/global.mk
% "De-xmastree"-d one if/else structure.
* harbour/bin/hb-func.sh
- removed not longer working HB_DB_DRVEXT
+ added HB_USER_DLL_ADDONS which can be used to activate rebuilding
Harbour shared library in postinst phase with additional libraries
specified by user in above envvar - it's not officially supported
functionality but temporary workaround until we will not add some
more generic support for above feature so I do not document it in
INSTALL
* harbour/contrib/hbwin/olecore.c
+ added support for conversion safe arrays with any type variants
to Harbour - please test
* INSTALL
* bin/hb-mkimp.bat
* contrib/hbqt/hbqt.hbc
* contrib/hbqt/hbqts.hbc
* contrib/gtqtc/gtqtcs.hbc
* contrib/gtqtc/gtqtc.hbc
* utils/hbmk2/examples/xhgtk.hbc
* config/global.mk
+ Eliminated HB_DIR_* envvar requirement to find required 3rd
party component libs.
This means that it's now enough to only set HB_WITH_* envvars
to enable HB_BUILD_IMPLIB.
This should make configuration a lot simpler, and this clears
the last pending TODO in this area.
HB_INC_* won't work this way, so please start to migrate to
HB_WITH_* envvars, the values should stay the same.
* external/pcre/cnv_o2hb.bat
* external/pcre/cnv_hb2o.bat
* Updated comment.
* INSTALL
* Minor formatting.
+ Added information about some commonly used, but yet useless
environment settings. These:
set HB_PATH=<Harbour root dir>
set HRB_DIR=<Some Harbour dir>
set INCLUDE=<Harbour include dir>
set LIB=<Harbour lib dir>
* Bumped copyright year.
+ Added 'documentation' section to link section.
+ Added netiquette RFC link for a start.
+ Added hbrun to required tools for cross-builds.
* bin/hb-func.sh
* harbour.spec
+ Added hbsms lib.
* harbour/bin/hb-func.sh
! added links with full version number to harbour shared library
It fixes problem with Harbour tools linked with libharbour-*.so
in system wide installation (i.e. in RPM or DEB packages)
* harbour/harbour.spec
! fixed to build with postinst.prg executed by shared linked hbrun
* harbour/bin/hb-func.sh
* harbour/debian/rules
* harbour/harbour.spec
% use HB_INST_PKGPREF instead of _DEFAULT_*_DIR
Please test DEB building in Debian, Ubuntu or in other DPKG
based distro. It probably has the same problem with postinst.prg
as all other builds.
* harbour/debian/rules
* harbour/harbour.spec
* harbour/mpkg_tgz.sh
* harbour/source/compiler/gencobj.c
* updated harbour.cfg localization in *nix builds
* harbour/utils/hbrun/Makefile
! restored support for default include directory in system wide builds
* harbour/config/instsh.mk
* harbour/bin/hb-func.sh
* harbour/bin/postinst.sh
+ added support for HB_INST_PKGPREF which can be used as package
temporary install directory
* harbour/mpkg_tgz.sh
! use HB_INST_PKGPREF to allow creating install packages without
special user rights and to protect against damaging original system
installation during package building if sufficient user rights were
guarantied