* INSTALL
* make_gnu.bat
+ Added support for Cygwin builds (passes call to make_gnu.sh).
+ Added Cygwin build starter example.
+ Cygwin mentioned as a requirement for mingwarm builds,
also added to PATH.
! Fixed cygwin autodetection.
! Fixed wrong PATH order in 'MinGW GCC + MSYS' example.
* Merged mingw+msys and cygwin bash based build methods,
and titled as "alternate" method.
Now all supported compilers work by starting up make_gnu.bat.
* utils/hbmk2/hbmk2.prg
! Change compiler autodetection to work for cygwin.
* mpkg_dos.bat
* mpkg_win.bat
* make_gnu.bat
! Fixed build process to work in paths containing spaces.
I didn't test the batch in pure DOS, so I may have broken it.
* config/win/install.cf
* config/wce/install.cf
! Fixed 'install' to work when there is a space in install path.
* make_gnu.bat
* INSTALL
+ Added support for HB_BUILD_LOG envvar. If set to 'yes',
it will automatically set log output filename to:
'log-<arch>-<comp>.txt'
if set to 'no' it will no make any extra redirection,
if set to any other value, it will be used for output
(both std and err). The batch will set HB_BUILD_LOGFILE
to the filename used for output for processing.
This feature requires Windows NT or upper host.
I didn't enable this feature yet by default to not break
existing user setups, but maybe I'll do it before the
final release.
* Modified text shown (+ beep thrown) when build failed.
* Messages now all start with 'Harbour'.
* Do not do the second build pass if the first one failed.
* contrib/hbwin/legacy.prg
! Fixed CreateObject() not working due to typo.
Thanks to Itamar Lins for the report.
* mpkg_dos.bat
* mpkg_win.bat
* mpkg_win.nsi
+ Enabled HB_BUILD_LOG=yes.
* Silenced copy, zip, makensis commands.
+ Added message about failed build process.
* Changed to use 'copy' instead of 'xcopy'
* Changed internals so now they don't require HB_COMPILER
and HB_ARCHITECTURE to be set. This means that now
we can rely on autodetection even for mpkg_*.bat files.
Creating an installer is very easy now for most cases.
Just type:
mpkg_gnu.bat
* source/vm/set.c
+ Added file commit support to __MVSAVE(), if Set( _SET_HARDCOMMIT )
is set to .T.. This is the default which means by default we aren't
CA-Cl*pper compatible. Addition protected by HB_C52_STRICT.
* source/rdd/dbf1.c
! Minor typo in comment.
* doc/en-EN/hb_apiit.txt
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/extend.c
* source/rtl/gtwvt/gtwvt.c
* source/rdd/dbf1.c
* contrib/gtqtc/gtqtc.cpp
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* contrib/hbwin/olecore.c
* examples/hboleold/win_ole.c
* Finishing long planned function renames to clear up
a very (10 years) old naming inconsistency.
To adapt you code to this, please do changes below:
1) hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
2) hb_itemPutCPtr2() -> hb_itemPutCPtr()
Unmodified code will generate compile time errors, so it's easy
to spot where the modifications need to be done. For most users,
only case 1) will need to be dealt with.
; INCOMPATIBLE. Please update your code.
* source/rtl/hbi18n1.c
* source/rdd/dbfnsx/dbfnsx1.c
* hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
* contrib/gtwvg/wvggui.c
* contrib/gtqtc/gtqtc.cpp
! Fixed GPF in hb_gtInfo( HB_GTI_SCREENSIZE ) call with wrong
parameter.
* mpkg_dos.bat
* mpkg_win.bat
* make_gnu.bat
* Now make_gnu.bat will also install libs to lib/<arch>/<comp>
by default. This will enable default settings to work in
multi-compiler mode.
; NOTE: hbmk script may need to be adapted for this change,
to add lib/<arch>/<comp> to libpath. Only MinGW + msys
users using hbmk *script* are affected though.
* contrib/hbqt/hbqt_slots.cpp
! Fixed QT_QDEBUG() to map to QT function even on Windows.
(no OutputDebugString() here please)
! Fixed wrong hb_itemPutCPtr() usage. Here, only string
allocated by Harbour functions can be used. Attaching
foreign string pointers will produce serious problems.
This fixes one GPF reported by Lorenzo on Linux.
! Renamed static vars to have 's_' prefix.
! Commented unused SlotsExecFocusEvent(). This fixes the
MinGW warning.
! Fixed to use hb_snprintf() instead of unsafe sprintf().
% Events::eventFilter() simplified.
* Formatting.
* source/rtl/gtwvt/gtwvt.c
! Fixed hb_gtInfo( HB_GTI_SCREENSIZE ) called with invalid parameter.
(untested, please test)
* contrib/gtwvg/gtwvg.c
! Fixed hb_gtInfo( HB_GTI_SCREENSIZE ) called with invalid parameter.
! Fixed hb_gtInfo( HB_GTI_SETPOSANDSIZE ) called with invalid parameter.
(untested, please test)
* contrib/hbxbp/tests/demoxbp.prg
! Fixed FUNCTION not returning value.
* utils/hbmk2/hbmk2.prg
* Cleanup to path separator handling in .hbc files found
automatically.
* utils/hbmk2/hbmk2.prg
! Rewritten PathNormalize().
Previous version had problems with relative paths, didn't
normalize everything possible and always added an ending
backslash. This new one hopefully fixes all these problems.
It also won't touch empty paths.
I'd appreciate if someone could take a reviewers look at
the code, it's now actually much simpler.
; beta2 release delayed a bit because of this change.
* mpkg_win.nsi
* Changed from MUI to MUI2. (no visible changes)
* harbour-win-spec
* harbour-wce-spec
* mpkg_win.bat
* include/hbver.h
* harbour.spec
* Changed version to 2.0.0beta2 (from 2.0.0beta1)
; NOTE: Everyone is encouraged to create binary releases
for various platforms and try this new version with real apps.
We can even upload these binary releases to sf.net.
* utils/hbmk2/hbmk2.prg
* Minor internal cleanup regarding macro marker chars.
% Not including libpaths containing late-evaluation macros in
actual commands.
* Cleaned handling of paths added from .hbc. Now slashes are
properly formed and paths are normalized.
* INSTALL
* Minor in new section.
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/extend.c
! Fixed hb_parvc() function to return NULL in case an array
is passed as Harbour level parameter. This makes this function
(and _parc()) fully CA-Cl*pper compatible.
; Please review maybe there is a lighter patch to achieve this
goal. I had to add NULL versions for two functions downstream.
* utils/hbmk2/hbmk2.prg
* Formatting.
* utils/hbmk2/hbmk2.prg
+ Added filter support for input file types .rc, .res, .o, .obj, .c, .cpp.
! Fixed filter support for some existing cases with input files.
+ Added special support for escaping filenames inside watcom
command script file. Of course this is different from common
command line escaping rules. I didn't try to find out the details,
but for simple spaces, it now works. If someone wants to tweak
them, they go under the name _ESC_SINQUOTE_WATCOM.
* utils/hbrun/hbrun.hbp
* utils/hbrun/hbrun.rc
* Changed the way harbour.ico is referred to. Now the dir of
it is passed as include dir and no dir is used inside the .rc
file. This was needed to make watcom happy, which counts
relative dirs in #include from cwd, rather than from host
file.
* harbour/bin/hb-func.sh
* harbour/utils/hbmk2/hbmk2.prg
* updated automatic first function detection to decode non symbol
characters in C function names
* utils/hbmk2/hbmk2.prg
* Changed ${hb_self} macro to ${hb_dir}
+ Added ${hb_name} macro which translates to the container
filename (so f.e. in hbwin.hbc it will be "hbwin")
+ Added "late-evaluation" macros in libpaths= lists,
when looking for .hbc files. Late eval macros are marked
with %{}. This feature means you can setup
'libpaths=contrib/%{hb_name}' and when looking for
'hbwin.hbc', it will look for it in contrib/hbwin dir.
* libpaths/-L values will not be checked for existence before
adding them to internal lib list.
; All this means that it's now possible to setup contrib
libs and headers in their own directory while keeping the
"zero-conf" work environment. IOW contrib libs and directories
don't need to "pollute" central lib/header dir. This also
means that we can lift lots of restrictions regarding
naming, since only lib name needs to be unique, headers
don't (it's still good practice though since one users
may want to use both contribs at the same time), they
also don't bother those users who aren't using them. This
system also makes it very easy to add 3rd party libs to
the contrib dir. So in this sense it's basically a fully
open "plugin" system for any libs.
It's very easily possible to add 'examples', or 'extras'
subtrees to libpath also.
From the user side, it looks like this (without any extra
configuration or any path specs):
> hbmk2 myprogram.prg hbwin.hbc hbct.hbc
; QUESTION: Where such contribs (with libs and headers)
could go on a *nix system? While developing
above stuff I had the unified Windows installer
in mind, but it would be good to adapt these
on *nix systems, too.
+ contrib/xpp/xpp.hbc
+ Added .hbc file for xpp lib.
* utils/hbmk2/hbmk2.prg
! Deleted first empty string parameter passed to HB_COMPILE()
function. AFAIR it seems it was needed so far (or was ignored,
but I've put it there for some reason), but after recent fix,
it's interpreted as empty filename, which seems logical.
* utils/hbmk2/hbmk2.prg
! Always escape filenames/paths if they contain "-" char.
(on Windows).
(this could recently cause a regression with BCC)
* include/hbapi.h
! Missded change from previous commit.
* bin/postinst.bat
+ hbrun is now built also in non-dll mode at the end of the
build process, so it gets built with the icon.
Probably we should switch to using hbmk2 to build these
extra tools, eventually.
* contrib/gtwvg/Makefile
! Disabled for mingw C++ mode.
Due to fatal errors reported to the dev list.
* contrib/hbwin/hbwinole.h
! Fixed for mingw C++ mode.
+ package
+ package/harbour.ico
+ Added harbour.ico to central place.
* utils/hbmk2/hbmk2.prg
- Deleted support for HB_COMPILET=gpp. Use -cpp switch instead.
- utils/hbrun/hbrun.ico
* utils/hbrun/hbrun.rc
* Using central harbour.ico.
* mpkg_win.nsi
+ Added Harbour icon to the installer executable.
* utils/hbrun/hbrun.hbp
+ utils/hbrun/hbrun.rc
+ utils/hbrun/hbrun.ico
+ Added Harbour icon to hbrun executable (on Windows).
Thanks to Vailton Renato for the .ico.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* Refreshed from source.
* utils/hbmk2/hbmk2.prg
+ Added support for Blinker commands MAP and NOBELL. (untested)
+ upx.exe is recognized and used if put in directory of hbmk2.exe.
! used upx executable name now depends on host platform rather
than target platform. This may allow using it in cross-platform
situations (I'm not sure if Linux UPX supports compressing Windows
executables).
- Deleted some TOFIX/TODO comments which are no longer relevant.
* contrib/xpp/xpp.ch
+ Added IsPrinter() translation.
* INSTALL
+ Added iccia64 build example.
* source/vm/fm.c
+ Added C++ new/delete operator override to hb_xgrab()/hb_xfree().
Thanks to Xavi.
Please make any required correction, I didn't do tests with it.
* utils/hbmk2/hbmk2.prg
+ Added support for linux/icc compiler. (untested)
; Tested win/icc support (static exe, shared exe, lib, dll).
It worked, except that in shared mode it will display this,
when the MinGW built .dll is used (instead of its own):
Unrecoverable error 9012: Can't locate the starting procedure: 'MAIN'
* INSTALL
* make_gnu.bat
* utils/hbmk2/hbmk2.prg
* Updated to reflect new mingw w64 CCPREFIX. It's now in
"prerelease" state (formerly "experimental")
* INSTALL
! Added missing HB_CCPREFIX for mingw64 and mingwarm examples.
* contrib/hbxbp/xbp.ch
! Fixed for non-debug. Currently it's suboptimal as non-debug
mode will generate extra code in binaries.
; TOFIX
+ Added non-Windows specific debug mode by enabling __HB_NOWINDEBUG__
macro. This may change in the future to the default, also
names may change in the future.
* contrib/hbqt/hbqt_utils.cpp
* hb_par*() -> hb_parv*()
* utils/hbmk2/hbmk2.prg
% Minor opt to prev.
* utils/hbmk2/hbmk2.prg
+ Added experimental filename escaping for *nix systems.
Currently only space is escaped. I'd like to ask *nix
users to make that complete.
TODO: For speed and completeness, maybe such escaping (quoting)
function would come handy in RTL. Przemek, it would be
great if you could add one if you agree.
TODO: It should also be enabled for linux/watcom, but
I cannot test this.
! Minor addition to Windows escaping in ArrayToList().
* utils/hbmk2/hbmk2.prg
% Reworked space in filename support to be generic. Now all
Windows compilers have it turned on, and this is the only
mode of escaping currently implemented (it may also need
to be revised).
For MinGW it's only turned on when host and target are
both Windows. Notice that MinGW has a few bugs regarding
filename handling, which means you cannot use spaces
in Harbour install path when also using input resource
files and you cannot use spaces as input lib names.
+ Added space in filename support for external Harbour
compiler.
! Fixed not to create working dir, if it's set empty.
* Minor formatting/cleanup.
* utils/hbmk2/hbmk2.prg
+ Added support for input/output filenames containing spaces.
Only for msvc and bcc so far.
! Fixed to always delete target lib in -hblib + non-incremental mode
before creating it.
+ Small miracles of life: Microsoft finally added /nologo switch to
resource compiler in MSVC 2010. Hard to believe, but true. Now
I'll have to find out what method to use to detect C compiler
version to enable it.
+ Support for HB_COMPILER_VER envvar to tell hbmk2 what C compiler
version is expected. Currently only used with MSVC targets.
Use values like:
- 710 (for MSVC .NET 2003)
- 800 (for MSVC 2005)
- 900 (for MSVC 2008)
- 1000 (for MSVC 2010)
The generic format is <99><99>[.<99>] as <major><minor>[.<revision>].
That makes BCC 5.5.1 '505.1' or shortly '505'.
Currently the only situation where such switch is necessary is when
using pre-8.0 MSVC versions, so most users don't have to bother with
this for now.
NOTE: Harbour GNU Make compatible HB_VISUALC_VER_PRE80 envvar still
supported to stay uniform.
+ Added /nologo switch to MSVC lib command.
! Protect against adding internally inherited C compiler switches,
if they are already on the switch list.
* tests/testhrb.prg
! Adapted to latest hbhrb.ch changes.
* tests/setkeys.prg
* Minor formatting.
* utils/hbmk2/hbmk2.prg
+ .hbl files will be created relative to target executable
directory if it was specified. If not, it will be created
relative to .hbm file dir, or hbmk2 launch dir (as before).
* bin/hb-mkdyn.sh
! Fixed to not use HB_CCPREFIX for libtool command.
* utils/hbmk2/hbmk2.prg
! Fixed typo in libtool cmd.
* ChangeLog
* Items marked DONE.
* tests/testhrb.prg
* tests/Makefile
* include/Makefile
* include/hbhrb.ch
* source/vm/runner.c
! Added new files to Makefiles.
! Fixed to use hbhrb.ch from .c rather than replicating #defines.
(also fixed comments to be ANSI)
! Added self protection to .ch.
! Made .hrb file lowercase in testhrb.prg
! Deleted double license header from .ch.
* utils/hbmk2/hbmk2.prg
+ Added logic to move embedded compilers under a common subdir.
To stay compatible with 2.0.0beta1 release I didn't yet set
this, but it will be for final release.
Probably 'comp', or maybe 'opt'. Sorry for asking for opininons,
but they're welcome anyway.
* harbour/source/compiler/hbmain.c
* extended -n2 to work also with code without starup procedure but with
local variables
* harbour/utils/hbrun/hbrun.prg
+ added -n2 to compiler parameters when .prg file is compiled and
executed. It allows to use with hbrun .prg files with and without
startup procedure
* utils/hbmk2/hbmk2.prg
+ Added support for rest of embedded compiler installations:
pocc64, poccarm, dos/watcom. Since these share a common
install kit with other targets, they can only be selected
using -comp= switch and in this case they will be used
if the installation is present.
* contrib/hbwin/win_misc.c
+ Added support for embedded Chr(0) to WIN_ANSITOWIDE() and
WIN_WIDETOANSI().
! Fixed WIN_ANSITOWIDE(). Dunno when it worked the last time,
but it must be long ago (SysStringLen() was returning zero).
* contrib/hbwin/Makefile
* contrib/hbwin/win_misc.c
+ contrib/hbwin/wapi_shellapi.c
* Moved and renamed WIN_SHELLEXECUTE() to WAPI_SHELLEXECUTE()
since this implementation is a full wrapper of original
Windows API. Incompatible. Please update your sources.
* contrib/hbwin/legacyco.c
* Formatting.
* utils/hbmk2/hbmk2.prg
+ Added preliminary support for autosetup for several more
compilers: win/watcom, win/pocc, win/pocc64, wce/poccarm,
dos/djgpp, dos/watcom.
Only these were tested: dos/djgpp, win/watcom, win/pocc.
This means it's now possible to "bundle" DJGPP, watcom or
pocc _compiler tools_ with Harbour and hbmk2 will be able
to detect them, or user can choose between them using
-arch/-comp switches, then hbmk2 will just be able to use
them "as is", without the need to change anything on the
environment. zero-conf usage in essence, just like we
already had for mingw family.
; NOTE: Before the release I'll rethink placement of these
tools inside the Harbour directory tree. Currently
they are detected in the Harbour root dir, but with
multiple compilers this is not ideal.
* source/vm/thread.c
! Fixed compile error after 2009-06-16 08:55 UTC+0200.
* utils/hbmk2/hbmk2.prg
- Deleted hb_DirBase() DJGPP hack after Przemek's fix.
- Deleted gcc compiler command line hack after Przemek's fix.
* contrib/hbxbp/xbp.ch
+ Added extra protection for Windows-only debug line.
* contrib/hbxbp/apig.ch
* Minor in comment.
* contrib/rddado/adordd.prg
* Minor formatting.
* Changed it to use non-legacy OLE interface.
PLEASE REVIEW & TEST.
* contrib/hbwin/legacy.prg
+ Added support for TOleAuto():cClassName var.
+ Added RTE generation in case the OLE object cannot be created.
PLEASE REVIEW & TEST.
+ contrib/rddado/tests/test.mdb
+ Added. It's generated by access2.prg to avoid any problems.
* contrib/rddado/tests/access1.prg
* Minor formatting.
; TOFIX: Does't work:
---
Error BASE/3012 Argument error: OPEN
Called from WIN_OLEAUTO:OPEN(0)
Called from ADO_OPEN(0)
Called from DBUSEAREA(0)
Called from MAIN(11)
---
- examples/uhttpd
+ examples/httpsrv
- examples/httpsrv/uhttpd.ini
+ examples/httpsrv/httpsrv.ini
- examples/httpsrv/uhttpdgd.hbp
+ examples/httpsrv/httpsrvg.hbp
- examples/httpsrv/uhttpdc.c
+ examples/httpsrv/httpsrvc.c
- examples/httpsrv/uhttpd.prg
+ examples/httpsrv/httpsrv.prg
* examples/httpsrv/cookie.prg
* examples/httpsrv/cgifunc.prg
* examples/httpsrv/session.prg
* examples/httpsrv/readme.txt
* Renamed uhttpd to httpsrv.
NOTE: If there are better names proposed I can rename
it to anything else. Mindaugas's new uhttpd will
be name uhttpd2 to avoid any ambiguity.
* utils/hbmk2/hbmk2.prg
! Fixed extension-less parameters not recognized as .prg
on dos platform.
(they were picked as libs due to extension match with
empty dynamic lib extension)
Thanks to Przemek for the report.
* utils/hbmk2/hbmk2.prg
+ Added skip=yes|no option support to .hbc files.
skip=yes will cause the rest of the .hbc file to be skipped
from processing.
+ Now .hbc files are recognized even in libs= lines.
+ Showing error message when a referred .hbc cannot be found.
* utils/hbmk2/examples/contribf.hbc
* Updates/fixes.
* contrib/xhb/xhb.hbc
* contrib/hbtpathy/hbtpathy.hbc
* contrib/hbblat/hbblat.hbc
* contrib/hbziparc/hbziparc.hbc
* contrib/hbxbp/hbxbp.hbc
* contrib/rddsql/sddmy/sddmy.hbc
+ contrib/rddsql/sddpg/sddpg.hbc
+ contrib/rddsql/sddfb/sddfb.hbc
* contrib/rddsql/sddodbc/sddodbc.hbc
* contrib/rddado/rddado.hbc
* contrib/gtwvg/gtwvg.hbc
* contrib/rddads/rddads.hbc
* contrib/hbfimage/hbfimage.hbc
* contrib/hbtip/hbtip.hbc
* contrib/hbwin/hbwin.hbc
* contrib/hbssl/hbssl.hbc
+ Added some missing .hbc files.
* Tweaked to use .hbc references.
* Tweaked filters. .hbc files will now filter themselves out,
if they are references in unsupported environment, like hbwin
under linux.
* ChangeLog
* Marked TOFIX/TODO as DONE.
* utils/hbmk2/hbmk2.prg
+ Added Harbour 1.0.x support for -main and -gt* options.
Should also work with xhb.
* utils/hbmk2/examples/hmg.hbc
! Updated. Tested okay with HMG 2.9.2.
- utils/hbmk2/examples/wxharbour.hbc
- Deleted, now hosted by wxHarbour project.
Many thanks to Teo Fonrouge.
* utils/hbmk2/examples/xhgtk.hbc
* Updated hbmk2 make file xhgtk.
Also sent this and xhgtk.hbp to Rodrigo Moreno to consider
uploading them files to xhgtk repository.
It makes building the lib and using the lib very simple
on all platforms/compilers.
+ utils/hbmk2/examples/wxharbour.hbc
+ Added wxharbour hbmk2 config file.
Also sent to Teo Fonrouge to consider uploading it to
repository (and later make it easier to merge it with
ours).
* contrib/hbqt/Makefile
* contrib/gtqtc/Makefile
+ Added another alternative header path to detection list.