+ harbour/contrib/xhb/xhbcls.ch
+ added header file which xHarbour like OVERRIDE / EXTEND CLASS
definitions.
Warning: using this functionality may break logical inheritance
scheme or even some internal class definitions in both
Harbour and xHarbour compilers. In Harbour it's unsupported
feature added here only for strict XHB compatibility.
* INSTALL
+ Added more information.
(everyone trying to build Harbour from source
should read this first.)
* bin/postinst.bat
+ Added option to copy import libs belonging to
external tools for msvc and bcc32 to HB_LIB_INSTALL.
This is to keep this debated, but convenient feature
for the GNU-make world, until we find some better way
to deal with it. Now it's self contained, detached from
all important Harbour parts. And most importantly:
You don't have to use it, if you don't want to.
Now, if you want, set HB_DIR_IMPLIB to "yes" and
setup your HB_DIR_* dirs to the roots of the external
tool dirs, like this (adjust to your environment):
---
set HB_DIR_IMPLIB=yes
set HB_DIR_ADS=C:\devl\ADS910\ACESDK
set HB_DIR_ALLEGRO=C:\devl\allegro-4.2.2
set HB_DIR_APOLLO=C:\devl\Apollo-6.1.0.4
set HB_DIR_BLAT=C:\devl\blat-2.6.2
set HB_DIR_CURL=C:\devl\curl-7.19.0
set HB_DIR_FIREBIRD=C:\devl\Firebird-2.1.1
set HB_DIR_FREEIMAGE=C:\devl\FreeImage-3.11.0
set HB_DIR_GD=C:\devl\gd-2.0.34
set HB_DIR_LIBHARU=C:\devl\libharu-2.1.0
set HB_DIR_MYSQL=C:\devl\mysql-5.0.67
set HB_DIR_OPENSSL=C:\devl\openssl-0.9.8j
set HB_DIR_PGSQL=C:\devl\pgsql-8.3.3
---
(This may be tweaked in the future, so I don't
guarantee any compatibility for this stuff)
* make_b32.bat
* make_vc.bat
* make_gcc.sh
* Redirected old "non-GNU" build starters to the mainstream
Harbour GNU Make system, with some measures to keep
compatibility. It's not 100% compatible, but the most
important settings and aspects should be similar.
It's recommended for everyone to switch using the GNU
make system natively, as the non-GNU one will be removed
in the future, the old way is now legacy and not supported.
* INSTALL
* make_gnu.bat
+ Added some more information.
* bin/postinst.bat
* make_gnu.bat
* config/win/global.cf
* Renamed HB_DLL to HB_BUILD_DLL, which makes this GNU make
setting compatible with old non-GNU make.
* INSTALL
* make_gnu.bat
+ Added --install-with-dll option. This will build
and install Harbour with .dlls. Some examples:
--- for msvc:
call "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
set PATH=C:\devl\make-3.81;%PATH%
set HB_INSTALL_PREFIX=C:\devl\hbvc-1.1
call make_gnu.bat --install-with-dll > out.txt 2>&1
---
--- for bcc32:
set PATH=C:\devl\bcc55\bin;%PATH%
set PATH=C:\devl\make-3.81;%PATH%
set HB_COMPILER=bcc32
set HB_INSTALL_PREFIX=C:\devl\hbb32-1.1
call make_gnu.bat --install-with-dll > out.txt 2>&1
---
* make_gnu.bat
* make_gnu_os2.cmd
+ Will now automatically create the install destination dirs.
; TODO: Could someone please add this feature to make_gnu.sh?
* bin/postinst.bat
* bin/hb-mkdyn.bat
* Moved building dll flavoured executables to postinst,
so they will be rebuilt even if HB_DLL!=yes but .dlls
are available.
* contrib/Makefile
+ Added support for option: HB_CONTRIBLIBS=no.
This will disable building any Harbour contribs.
(no need to resort to hacks here anymore)
* utils/hbmk2/hbmk2.prg
* Minor on help screen.
* utils/hbmk2/hbmk2.prg
+ Now all dirs of input files referred to through .hbm
make files will be adjusted with the .hbm path as passed
on the command line. This allows to use .hbm files without
switching to their host dirs:
'hbmk2 examples/hello/hello.hbm'
(internal logic also allows to display error messages
pointing to the exact location where the error
was detected)
+ Added simple macro substitution engine. Not used yet.
% Minor optimizations.
* bin/hb-mkdyn.bat
* source/vm/Makefile
* utils/hbmk2/hbmk2.prg
+ config/win/msvcia64.cf
+ Added support for IA64 architecure with MSVC.
(actual compilation untested as it needs MSVC Team System)
* bin/hb-mkdyn.bat
% Now using .hbm files.
* harbour/contrib/gtwvg/gtwvg.c
! Some refinements is setting Window's style through
SetWindowLong(Ptr)().
* harbour/contrib/gtwvg/wvgwin.c
% Removed some test code.
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/gtwvg.h
! Updated to honor Box Caharcter Changes as in GTWVT by Przemek.
! Updated HB_GTI_CLOSABLE and HB_GTI_RESIZABLE behavior as in GTWVT
by Viktor.
* bin/hb-mkdyn.bat
* Cleaned tool outputs.
+ Added hbmaindllh lib to included liblist.
(dunno what this serves, but we had it in non-GNU make)
Do we need this at all?
+ Added support for msvc64 dll name.
* Some tweak to owatcom, but it's just guessing, it still
doesn't work.
+ Added generating hbrun-dll executable.
* source/vm/hvm.c
* source/vm/mainstd.c
* Random tweak for owatcom/win dll support without success.
Best result so far is:
"Unrecoverable error 9012: Can't locate the starting procedure: 'MAIN'"
* source/vm/Makefile
+ Added mainddllp generation for msvc, msvc64, bcc32, owatcom.
* source/vm/maindllp.c
+ Added msvc64 and msvcia64 .dll names.
* source/vm/extrap.c
* Minor tweak to use alternate (documented) CPU detection macro.
* utils/hbmk2/hbmk2.prg
+ Added msvc64 .dll name.
* Removed automatic addition of hbcommon lib for shared
mode for win compilers.
* utils/hbtest/hbtest.hbm
* utils/hbrun/hbrun.hbm
+ Added make files.
* config/rules.cf
* config/win/global.cf
* config/lib.cf
* config/bin.cf
* Make files changed to:
- add Harbour option -n1 for all lib .prgs.
- add Harbour option -n for all binary .prgs.
- use HB_GCMODE to override -gc mode for binaries.
- add C -DHB_DYNLIB option when HB_DLL envvar is set to 'yes'.
; This means that now 'set HB_DLL=yes' setting works as planned,
and will compile Harbour to allow the creation of .dlls
and will also create those (msvc, bcc32, owatcom).
(MinGW has been covered before these changes already.)
; TOFIX: .dlls still need tweaking to work properly.
owatcom doesn't create usable binaries when
using HB_DLL=yes f.e., also hbrun-dll cannot be
built with msvc/bcc32.
* config/win/owatcom.cf
% Removed DOS hack.
* bin/hb-mkdyn.bat
! Fixes to recent changes.
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
+ added support to set codepage for box drawing characters using
HB_GTI_BOXCP as numeric value just like in HB_GTI_CODEPAGE for
non UNICODE builds. In Windows CP encoding has even higher priority
then font name so such functionality is necessary for users who
have to keep normal and box font synced
% do not allocate separate font handle for BOX drawing characters
when they have the same encoding as normal characters
! keep box and normal font handles synced and free then on exit
! respect HB_GTI_RESIZABLE settings when new window is created
* bin/hb-mkdyn.bat
+ Moving .lib and .exp (if they are generated) files
to LIB dir.
* source/vm/maindllp.c
+ Added owatcom flavour of .dll name.
* contrib/hbwin/win_misc.c
+ Added WAPI_GETLASTERROR(), WAPI_SETLASTERROR(), WAPI_SETERRORMODE().
* utils/hbmk2/hbmk2.prg
+ Added TODO to create temp .c files in temp location.
Looks this can create a few problems (-hbcc, .ppo output
location when -p is used by user).
+ '/o' flavour of -o option is now ignored on non-*nix
systems to make sure users cannot mess up the hbmk process
flow.
* -o option modified to reset any previous explicit -o settings.
* Some minor internal renames, comments.
+ Added new hbmk.cfg / .hbp option: 'shareddef='. This can
change the default state of shared/static setting, so it
can be used by installers or user to override default
behaviour. NOTE: HB_SHARED envvar can also be used.
* Changed hbmk.cfg lookup preferences to this:
1. $HOME/.harbour
2. /etc/harbour
3. <hbmkdir>/../etc/harbour
4. <hbmkdir>/../etc
5. <hbmkdir>
(NOTE: I've deleted /etc as etc/harbour seems superior
and we already store a .def file there.
I've also deleted /usr/local/etc)
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/wvgcrt.prg
* harbour/contrib/gtwvg/wvgwnd.prg
! More types of consoles. Mainly modal windows implementation.
* harbour/source/vm/memvars.c
+ added support for reading FoxPro .mem files - Clipper compatibility
! fixed bug introduced in my recent modifications in .mem files writing
! fixed very old bug which disabled writing to .mem files strings
longer then 32Kb
* harbour/contrib/gtwvg/wvgwin.c
! added dirty hack for borland C compiler and #define NONAMELESSUNION
in oledlg.h
* harbour/config/linux/owatcom.cf
! added missing support for HB_USER_LDFLAGS
* INSTALL
! Typo in prev.
* config/darwin/install.cf
* config/win/install.cf
+ Added same as Linux workaround to not let install phase
fail because copy on install error.
* INSTALL
+ Added MinGW + msys specific entry.
* bin/postinst.sh
+ Added generation of hbcc.bat, hbcmp.bat, hblnk.bat
to be in complete feature sync with the non-msys method.
NOTE: non-msys method isn't recommended.
* make_gnu_os2.cmd
+ Added automatic HB_*_INSTALL setup based on HB_INSTALL_PREFIX
to be in sync with the rest of Harbour.
* make_gnu.bat
! Fixed forward slashed to backslashes.
* Changed default compiler from mingw to msvc.
* utils/hbmk2/hbmk2.prg
! Refined autodetection of msvc to not be confused by
watcom binary dir in the path.
! Refined autodetection of owatcom by also checking for
WATCOM envvar. Thanks Petr Chornyj for the hint.
% Removed hack to not prioritize MSVC compiler detection,
so it's now handled just like the others.
* bin/postinst.bat
+ Added dos/windows (djgpp/mingw) autodetection.
! Cleaned help screen.
(missed from previous entry)
* Other minor cleanups and fixes on help screen.
* bin/postinst.cmd
* bin/postinst.bat
* bin/hb-func.sh
+ Added arch= and comp= variables to hbmk.cfg.
I plan to use these for autoconfiguration.
* make_gnu_os2.cmd
* make_gnu.bat
- Removed built in output redirection to make them in sync
with the bash flavour. Users can easily redirect it themselves.
* utils/hbmk2/hbmk2.prg
+ Formally added icc.
* config/win/msvcce.cf
! Untested fixes for msvcce in GNU make.
+ harbour/config/linux/icc.cf
* harbour/config/linux/gcc.cf
* harbour/bin/hb-func.sh
* harbour/bin/postinst.sh
* harbour/source/common/hbver.c
+ added support for Intel(R) C/C++ compiler
* harbour/bin/postinst.sh
% use hb-mkdyn symlink instead of regenerating it as hb-mkslib
It will work also in DOS/Windows (MSys/DJGPP emulates ln -s ...)
* harbour/source/vm/thread.c
* removed all references to HB_THREAD_EQUAL()/HB_THREAD_SELF() in
non MT builds
* harbour/source/rtl/console.c
! fixed default color setting in hb_dispOutAtBox()
* harbour/contrib/gtwvg/wvggui.h
* harbour/contrib/gtwvg/wvgwin.c
* harbour/contrib/gtwvg/wincallb.c
* harbour/contrib/gtwvg/wvgsink.c
! fixes for C++ compilation:
- this is reserved word in C++ - do not use it as variable name
- class is reserved word in C++ - do not use it as variable name
- use macros to hide differences between C and C++ WinAPI
- casting
* utils/hbmk2/hbmk2.prg
* On *nix platform hbmk.cfg is now first checked for
in /usr/local/etc, then in /etc and after that in
hbmk2's dir. Please advise if there are other such
global config dirs to check on different platforms.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* hbmkcfg.hbp file renamed to the clearer: hbmk.cfg
Same rules apply, the format is .hbp, which is also
made clear on the hbmk2 help screen.
hbmk2 and hbmk.cfg now effecticely replaces harbour.cfg,
which can now be considered obsolete, along with the
/go option. If someone knows some real-life tasks
which can be done with /go+harbour.cfg, but cannot
with hbmk2, please speak up.
* source/vm/fm.c
! Fixed compilation error in dlmalloc with pocc64.
* config/win/pocc64.cf
* config/win/msvc64.cf
* Cleanup.
* config/win/gcc.cf
! Added gdi32 to system lib list.
* config/win/mingw.cf
* config/win/mingwce.cf
* Minor sync with each other.
% Two duplicated lines removed from mingwce. I hope these
weren't intentional.
---
AR = $(CCPREFIX)ar
ARFLAGS = $(HB_USER_AFLAGS)
---
* bin/postinst.sh
+ Added 'hb-mkslib' creation for compatibility.
NOTE: This name is deprecated and will be removed in next
major release (1.2). Update your environment to
use the name: 'hb_mkdyn'.
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/Makefile
* common.mak
+ Added -DHBMK_INTEGRATED_COMPILER compile time option
to enable integrated Harbour compiler. Experimental,
please test. This results is bigger executable (obviously)
but may be more efficient on some platforms.
% Using .exe extension for external commands on non-*nix.
* Using slightly different format to echo commands on
screen, they are now printed in a new line and they are
not put between quotes.
* harbour/include/hbsetup.h
* minor modifications in macros
* disabled some GCC function attributes when ICC is used
* harbour/source/pp/ppcore.c
* casting
* harbour/source/vm/fm.c
* destroy dlmalloc mspace in hb_xexit() when USE_DL_PREFIX is used
otherwise call malloc_trim(0) to at least reduce allocated memory