* INSTALL
* minor clarifications to INSTALL/TROUBLESHOOTING
* config/os2/watcom.mk
* config/wce/mingwarm.mk
* config/wce/msvcarm.mk
* config/wce/poccarm.mk
* config/win/bcc.mk
* config/win/mingw.mk
* config/win/msvc.mk
* config/win/pocc.mk
* config/win/watcom.mk
* config/win/xcc.mk
+ added std header paths to RC commands
* utils/hbmk2/Makefile
+ utils/hbmk2/hbmk2.rc
* utils/hbmk2/hbmk2.hbp
+ added std windows versioninfo and manifest to hbmk2
* utils/hbmk2/hbmk2.prg
+ utils/hbmk2/p_extdyn.hb
+ added almost complete hbrun functionality into hbmk2
to run it, type: 'hbmk2 .'
Missing is extension registration, plugins don't seem
to work yet, and I plan to switch from full screen
prompt to shell-like prompt. Plugin paths, extension
configuration, history on-disk files need further
polishing.
+ hbmk2 will act as a hbrun, if renamed to hbrun
* contrib/hbqt/qtcore/hbqt_misc.prg
+ added two TOFIXes for missing PROTECTED keyword
for two object variables of unknown purpose. Not
even HBQT developers know what it is, but without
it, HBQT breaks.
; Those who need "stable" hbqt (meaning "it builds")
Go to:
http://sourceforge.net/p/hbqt/
* harbour/config/postinst.hb
! remove old links before hb_FLinkSym() is called.
Without it old links were not overloaded and
I've just noticed that I have still active links
to old harbour shared library in my system.
* config/postinst.hbs
* implemented same ASORT() fix as in prev commit by Przemek.
(it may be important once we modify hbrun/hbmk2 to run
scripts under UTF8 CP)
* contrib/hbnetio/utils/hbnetio/modules.hbp
- contrib/hbnetio/utils/hbnetio/rpcdemo.hbs
+ contrib/hbnetio/utils/hbnetio/rpcdemo.hb
- contrib/hbide/plugins/hbide_script_qtgui.hbs
+ contrib/hbide/plugins/hbide_script_qtgui.hb
- contrib/hbide/plugins/hbide_plugin_savebackup.hbs
+ contrib/hbide/plugins/hbide_plugin_savebackup.hb
- utils/hbmk2/examples/plug_tpl.hbs
+ utils/hbmk2/examples/plug_tpl.hb
- tests/stripdoc.hbs
+ tests/stripdoc.hb
* .hbs -> .hb for Harbour scripts.
* tests/stripdoc.hb
+ use directry.ch
* utils/hbmk2/hbmk2.prg
* .hb? input make files are now considered with UTF8 encoding.
+ enabled full UTF8 CP on *nix systems. EXPERIMENTAL.
* debian/copyright
* package/winuni/mpkg_win_uni.nsi
* utils/hbmk2/hbmk2.prg
* contrib/hbpost.hbm
* contrib/hbnetio/utils/hbnetio/modules.hbp
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
* contrib/hbqt/hbqt_common.hbm
* contrib/hbide/ideedit.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbrun/hbrun.prg
* contrib/hbrun/plugins.prg
* config/postinst.hbs
* COPYING
+ added support for .hb extension for Harbour scripts.
I plan to make a full switch to .hb from .hbs.
* utils/hbmk2/hbmk2.prg
* bin/hb3rdpat.hbs
! fixed minor formatting problems mainly using custom automatic script
* include/harbour.hbx
* contrib/hbsms/hbsms.hbx
+ applied std casing to function names. it enhances
readability, plus makes possible to use .hbx file for
automatic formatting purposes.
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
+ preserve casing of function names in .hbx files
! fixed non-fatal typo in regex expressions
* config/win/mingw.mk
* removed undocumented way (committed in prev rev) to disable
separate compile pass for mingw Harbour-*.dll. if you're bothered,
use existing and documented: HB_BUILD_DYN=no
; NOTE: separate compile pass has another important benefit:
it will finally remove the implicit .dll exports, IOW now
only explicitly exported symbols will be public, in sync
harbour-*.dlls created with all the other C compilers.
* config/win/mingw.mk
+ solved mingw harbour dll and unicows problem, so now
-shared Harbour executables built using mingw will be able
to run on Win9x, "out of the box".
(has a downside that now separate compile pass is needed
to build objects with -DHB_DYNLIB (like with all the other
C compilers), but I left it enabled anyways to give uniform
support for unicows by default, including the nightly and
official builds. Look into the diff for an undocumented
way to disable this)
* config/win/watcom.mk
* config/win/xcc.mk
* config/win/icc.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/msvc.mk
* restored to link 3rd libs (currently unicows, if available)
to harbour-*.dll with above compilers. These are currently
noops (except for bcc, where it just doesn't work),
they are fundemantally correct, but may require further
C compiler specific mods.
; TODO: problem with bcc harbour-*.dll remains. unicows is present,
specified, but ignored when linking, even though it's not ignored
when contrib dlls are built using similar method. I leave
resolving this problem to bcc users.
* config/win/watcom.mk
* config/win/xcc.mk
* config/win/icc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/msvc.mk
! do not link unicows to harbour dll. it seems a noop
for some compilers, and breaks some others (mingw).
* utils/hbmk2/hbmk2.prg
+ will now add lib/3rd dir to the link commands, so
unicows lib will be found in uninstalled Harbour SVN
source tree.
* contrib/make.hbs
* contrib/hbpost.hbm
+ automatically enable unicows support for contribs, if available.
- deleted support for undocumented __HB_BUILD_WINUNI envvar
* config/global.mk
* config/rules.mk
- deleted support for undocumented __HB_BUILD_WINUNI envvar
* package/winuni/mpkg_win_uni.bat
* package/mpkg_win_nightly.bat
- deleted special support for unicows libs for nightly
and official releases, along with HB_DIR_UNICOWS envvar.
Now these libs are included in all builds.
* config/win/global.mk
+ automatically enable unicows support for core, if available.
* config/win/xcc.mk
* config/win/icc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/msvc.mk
+ added support for SYSLIBPATHS. (used by unicows support)
! fixed bcc dynlib link command missing libpaths.
; NOTE: watcom unicows support is missing, as it needs
special tricks due to missing separate libpath option
in this compiler/linker.
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* synced with config/win files
+ config/libbin.mk
+ added rule to install pre-built binary libs.
(for unicows libs)
* Makefile
+ lib/3rd
+ lib/3rd/win
+ lib/3rd/win/mingw
+ lib/3rd/win/mingw/Makefile
+ lib/3rd/win/mingw/libunicows.a
+ lib/3rd/win/mingw/libunicows_license.txt
+ lib/3rd/win/bcc
+ lib/3rd/win/bcc/unicows_license.txt
+ lib/3rd/win/bcc/unicows.lib
+ lib/3rd/win/bcc/Makefile
+ added locally hosted unicows runtime/implibs from:
http://libunicows.sourceforge.net/ by author Vaclav Slavik.
With these libs, it's possible to use UNICODE builds
with both MS unicows.dll and opencows .dll on legacy
Windows-system (Win9x).
These libs will be installed to Harbour core lib directory,
and also used from lib/3rd directory, if they are available.
I've uploaed mingw and bcc libs because these are used
nearly exclusively by users, but they are also available
for older msvc, watcom, dmc and lcc compilers. I don't
think it's worth the extra size to support Win9x using
these legacy compilers, anyhow they can be added easily
if needed (except watcom, which requires more work).
; These changes mean three things:
1. Harbour now has only one build mode on Windows: UNICODE
This will greatly simplify coding and testing and will
allow to focus much better on what's important. It also
allows to drop lots of dual code dealing with separate
UNICODE and non-UNICODE branches.
2. Harbour default builds will now run on Win9x (currently
when using mingw or bcc compilers), though UNICOWS.DLL
is now required. See INSTALL how to get this free .dll
from MS. This also means that Harbour can now theoretically
by built on Win9x systems (I didn't try).
3. Harbour users can create UNICODE builds compatible with
Win9x, by simply adding -lunicows to their .hbp projects.
No extra installation is required.
+ package/harbour.rb
+ experimental (and untested) Homebrew formula
* debian/dirs
* debian/rules
+ added contrib dir (untested)
* utils/hbmk2/hbmk2.prg
* autodetect contrib/addons dirs at
/usr/local/share/harbour/ and /usr/share/harbour/
* config/global.mk
* changed contrib location on *nix systems to <root>/share/harbour/contrib
unless the <root> is /opt/harbour.
* contrib/make.hbs
* contrib/hbpost.hbm
+ implemented contrib-specific public file copy process using
standard hbmk2 logic. (with very minor help from make.hbs)
* contrib/make.hbs
* cleaned up previously added logic, then disabled the whole
thing, now replaced by standard hbmk2 logic.
* config/postinst.hbs
* minor fmt
; TODO: replace global contrib-specific file rules with contrib-local
ones. so that unnecessary files won't be copied and any
extra/special files will be.
* package/winuni/mpkg_win_uni.bat
- deleted windows-only contrib specific file installation
procedure. now done by contrib/make.hbs.
; it also means that contrib-specific public files are
now included in non-unified installation packages,
created using HB_BUILD_PKG=yes.
; TODO: modify *nix package creation scripts to include
/opt/harbour/contrib in the package.
* config/global.mk
* INSTALL
* changed HB_INSTALL_IMPLIB default to 'yes'. This means
that now the implibs for 3rd party .dlls will be included
in install packages, including the nightly/stable releases.
This is theoretically wrong solution and bad practice, but
to me real life shows that users don't have a clue about
implibs and how to generate them and it also requires users
to build Harbour themselves if they want to use any of the
many libs with implib dependencies, instead of being able
to use binary releases.
One big WARNING applies (quote from INSTALL):
"Also note that the generated implibs will require .dlls
compatible with the ones used at build time."
IOW you must be using the same (or binary compatible)
.dll as was used at built time. If you use something else,
you still will have to generate the implib yourself or
change your .dll version according to above.
[I hope Marek Paliwoda doesn't mind.]
* contrib/hbrun/headers.prg
* utils/hbmk2/hbmk2.prg
* changed #include filename references to _CASE-SENSITIVE_. This
is to ensure and enforce that .hbs scripts and hbmk2 plugins are
created in portable form so f.e. once developed on a win
system, they won't crash on a *nix system.
INCOMPATIBLE: Change all your #include references to exactly match
casing of the filename. For Harbour headers, this
means plain lowercase, so f.e. '#include "FileIO.ch"'
is wrong, '#include "fileio.ch"' is right.
* config/global.mk
* minor
* contrib/make.hbs
+ added installation support of contrib specific public files
(.hbc, .hbs, local headers, .def files, readmes and tests)
* config/global.mk
* set install destination for contrib specific public files to
<root>/contrib for non-*nix and /opt/harbour/contrib for *nix
systems.
* utils/hbmk2/hbmk2.prg
* changed HB_INSTALL_CONTRIB to HB_INSTALL_ADDONS
F.e.:
export HB_INSTALL_ADDONS=/usr/local/share/harbour/contrib:/usr/local/share/harbour/addons
* utils/hbmk2/hbmk2.prg
+ show .hbp file reference when .hbc is not found
* config/postinst.hbs
* corrected double dirseps in one case.
* contrib/hbqt/qtgui/hbqtgui.hbx
* contrib/hbqt/qtgui/qth/filelist.hbm
! disabled QDeclarative* wrappers until reported link
problems are fixed.
This allows HB_BUILD_CONTRIB_DYN=yes to work again.
* contrib/hbqt/hbqt.hbc
* contrib/hbqt/hbqt_all.hbp
! disabled hbqtsql until link problems (missing functions
and wrappers) are fixed.
This allows HB_BUILD_CONTRIB_DYN=yes to work again.
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
! use HB_WILDMATCH() with .T. option to make it behave as expected
* include/harbour.hbx
* include/hbcpage.hbx
* regenerated
* include/extend.api
* include/hbdefs.h
* include/hbapi.h
* include/clipdefs.h
* contrib/hbpost.hbm
* contrib/hbfimage/hbfimage.hbp
* config/rules.mk
- deleted HB_LEGACY_TYPES_OFF macro. it is the default
in post 3.0.x Harbour versions.
+ added HB_LEGACY_TYPES_ON macro. This should be used when
building C code which uses Clipper/Harbour legacy types
(f.e. LONG or BOOL).
It will stay until next stable version when all legacy
types will be permanently removed. This gives time for
3rd party developers to update code to use Harbour
(non-legacy) types in C code.
See '2009-11-01 11:35 UTC+0100 Viktor Szakats' ChangeLog
entry about non-legacy Harbour types.
* contrib/hbcups/hbcups.hbc
* added libs for OS/2. As suggested by David Arturo Macias Corona
* config/global.mk
! added missing $(HB_HOST_BIN_EXT) in wildcard command used of
user HB_CCPATH/HB_CCPREFIX verification.
(in line 960)
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
! fixed wrongly placed @cStdErr parameter in hb_processRun()
calls. it didn't cause any error as the param is empty and
return value currently unused.
* harbour/src/macro/macrolex.c
! added missing YY token assignment I removed by mistake in last
macrolex modification.
This modification fixes problem with extended string decoding
by macrocompiler.
* harbour/config/global.mk
! added missing $(HB_HOST_BIN_EXT) in wildcard command used of
user HB_CCPATH/HB_CCPREFIX verification.
* config/win/global.mk
* contrib/hbpost.hbm
+ added undocumented build option __HB_BUILD_WINUNI=unicows
to build Harbour core binaries (.exes and .dlls) with
unicows lib linked it so they run on Win9x systems.
User has to supply unicows libs, see INSTALL about them.
* include/Makefile
+ include/hbstrict.ch
* contrib/hbpost.hbm
+ added experimental -u+ header to catch some common code style
problems. currently IF() is caught, but it interferec with std.ch
hbsix.ch and possibly more, so it's not enabled
* config/global.mk
* src/dynlib/2nd/Makefile
* src/dynlib/Makefile
* secondary harbour dynlib is now enabled by __HB_BUILD_DYN_2ND=yes
* renamed secondary harbour dynlib to harbour2*
+ it's now possible (again) to build harbour .dll in ST mode by
using __HB_BUILD_DYN_ST=yes. if used together with __HB_BUILD_DYN_2ND=yes,
the secondary dynlib will be MT. (pls note the secondary dynlib
is never directly used by hbmk2, so it's there for mere build convenience
only)
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbprtf.prg
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/xbpprintdialog.prg
* contrib/hbxbp/xbpscrollbar.prg
* contrib/hbxbp/xbpprinter.prg
* contrib/hbxbp/xbpdataref.prg
! IF() -> IIF() (with the help of hbstrict.ch)
* contrib/hbformat/hbfmtcls.prg
! fixed mistakenly changed '==' to LEFTEQUAL() in prev commit
* utils/hbmk2/hbmk2.prg
+ added mingw-w64 autodetection on *nix
* doc/xhb-diff.txt
! typos
* config/global.mk
+ added mingw-w64 autodetection on *nix. build with 'make HB_COMPILER=mingw64'
! supposedly fixed wce/mingw (intel) comp autodetection
* had to change CC*/compiler autodetection on *nix cross builds
and since this file is black magic, fallouts are possible.
pls test it (disc: I'm no heavy linux user, you've been warned)
; NOTE: win/mingw64 build on linux results in broken exes (400+ hbtest failures
and even the percentage of failure is calculated as 0.0%),
most likely due to these (which may even be mingw64 bugs):
../../../hbarch.c: In function 'hb_put_ord_ieee754':
../../../hbarch.c:181: warning: 'iExp' may be used uninitialized in this function
../../../hbarch.c: In function 'hb_put_ieee754':
../../../hbarch.c:114: warning: 'iExp' may be used uninitialized in this function
../../../hbstr.c: In function 'hb_numRound':
../../../hbstr.c:500: warning: statement with no effect
../../../hbstr.c: In function 'hb_numInt':
../../../hbstr.c:525: warning: statement with no effect
../../../hbstr.c:519: warning: 'dInt' is used uninitialized in this function
../../../hbstr.c: In function 'hb_numRound':
../../../hbstr.c:512: warning: 'doComplete5i' may be used uninitialized in this function
../../../hbstr.c: In function 'hb_numDecConv':
../../../hbstr.c:514: warning: 'doComplete5i' may be used uninitialized in this function
../../../hbstr.c:396: note: 'doComplete5i' was declared here
In file included from ../../../hvmall.c:105:
../../../itemapi.c: In function 'hb_itemStrBuf':
../../../itemapi.c:2329: warning: 'dDig' may be used uninitialized in this function
* contrib/hbmxml/3rd/minixml/config.h
! yet another bcc problem. my last after the last.
anyone to pick up fixing bcc bugs?
* config/detect.mk
- exclude slang/curses/x11 for android
* contrib/hbct/strdiff.c
* contrib/hbct/dattime3.c
* uncrustified
* contrib/hbct/misc2.c
* contrib/hbct/token1.c
* contrib/hbct/print.c
* formatted