* 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/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
+ 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
* contrib/hbgd/gdwrp.c
! Added required Windows initialization for GD headers.
This become an issue because I've recently removed
windows system headers (which weren't needed for
local code) from this file.
* harbour/source/vm/estack.c
; added TODO note for TSD handles recovery system to document dynamic
(not static) TSD access as public API. Otherwise it's a risk to give
such interface for 3-rd party code developers due to potential
resource leak.
* harbour/contrib/hbct/ctwin.c
+ added support for thread local current window pointer in CT Windows.
Warning: each new thread uses window 0 as default.
* harbour/contrib/hbct/files.c
+ added MT support FILESEEK(), FILEATTR(), FILESIZE(), FILEDATE().
Warning: now each thread operates on it's own directory handle.
The directory handle is open until is not scanned to the end by
subsequent calls to FILESEEK() without parameters or by explicit
call with NIL or empty string "" as file name, f.e.: FILESEEK( NIL ).
Such method of closing directory handle is compatible with original
CT3 behavior.
* bin/hb-mkdll.bat
- Removed no longer relevant NOTE. BCC tlib can actually
handle dots in pathname if put between quotes, which
is how it is.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
! Applied former owatcom fix to GTWVG, too. Please retry,
I didn't test it.
! Converted failing declarations to use HB_ID_REF().
! Applied more casting fixes shown by owatcom 1.8.
; Remaining errors and warnings posted on the list.
* utils/hbmk2/hbmk2.prg
! Fixed bug which made gtwvt the default GT for mingw.
! Fixed to create final exe in current dir if no output
filename was specified and the first input file
contained a path.
* Changed to use version-less harbour shared lib names
on *nixes.
! Fixed to pass full path with harbour.so to gcc.
(even when Harbour isn't run from a system location)
! Fixed compilation/linking/cleanup if an input file
wasn't in current dir.
* Temp stub file is now created in system default temp dir,
instead of the current one.
+ Harbour shared lib path is normalized when Harbour
is found on system locations. (so '*/bin/../lib/' becomes
'*/lib')
* Better I hope handling of .so/.dylib/.sl/.dll files passed
on the command line.
* bin/hb-mkdll.bat
! Fixed typo in Borland MT .dll name.
! Fixed to not include maindll.obj, maindllp.obj in
Borland .dlls.
* Minor formatting and cleanup on internal names.
+ Added checking for source lib existence, showing
message if not found.
+ Better user feedback.
* bin/postinst.bat
+ Added running hb_mkdll.bat at the end of the build
process. For now users have to use 'set HB_DLL=yes'
to enable this features. It's experimental yet,
see previous comments.
* source/vm/Makefile
+ Now generating hbmainstd and hbmainwin for remaining
(non-mingw and non-mingwce) compilers. MSVC and BCC
need this for -shared linkage, I'm not sure about the
rest, anyhow we can disable it for other compilers
if it isn't needed in future.
* bin/hb-func.sh
% Refined hbmkcfg.hbp setup to better detect conditions.
* contrib/hbcurl/hbcurl.c
! Pacified this only one new gcc 4.3.3 warning.
* config/win/gcc.cf
* config/win/mingw.cf
+ Added -mtune=pentiumpro gcc optimization.
* harbour/contrib/gtwvg/wvgwin.c
* harbour/contrib/gtwvg/wvg3stat.prg
* harbour/contrib/gtwvg/wvgcheck.prg
* harbour/contrib/gtwvg/wvgcombo.prg
* harbour/contrib/gtwvg/wvgdarea.prg
* harbour/contrib/gtwvg/wvglistb.prg
* harbour/contrib/gtwvg/wvgmle.prg
* harbour/contrib/gtwvg/wvgpushb.prg
* harbour/contrib/gtwvg/wvgradio.prg
* harbour/contrib/gtwvg/wvgscrlb.prg
* harbour/contrib/gtwvg/wvgsle.prg
* harbour/contrib/gtwvg/wvgstatb.prg
* harbour/contrib/gtwvg/wvgstatc.prg
* harbour/contrib/gtwvg/wvgtoolb.prg
* harbour/contrib/gtwvg/wvgtreev.prg
* harbour/contrib/gtwvg/wvgwnd.prg
! Code cleanup.
! Implemented generic callback functionality taking
use of SetProp()/GetProp() functions of WINAPI. It
effectively eliminates the use of AsCallBack()
function which has been discussed as non-scalable
in multi-processor architect.
; TODO: To use hb_gcAlloc() mechanism to hold the
codeblock. Please review wvgwnd():SetWindowProcCallback()
and wvgwin:WVG_SetWindowProcBlock( ::hWnd, bBlock ).
I did try but could not resolve it properly.
* config/lib.cf
* config/bin.cf
+ Added -n to Harbour flags to bin.cf.
+ Added -n1 to Harbour flags to lib.cf.
; TOFIX: The former works, the latter doesn't.
Could someone please help why is this
happening?
* utils/hbmk2/hbmk2.prg
- Removed -n from default Harbour switches.
; TODO: Add prgflags=-n to all .hbp files.
; TODO: Add -n to all .hbm files.
; TODO: Add .hbp file to dirs where there are .prgs
needing -n flag.
+ bin/hb-mkdll.bat
+ Added .dll creation for GNU-make. Not yet enabled,
only MSVC supported, and by the nature of the
wonderful world of Microsoft, whole Harbour needs
to be compiled with HB_USER_CFLAGS=-DHB_DYNLIB to
make this work. -DHB_DYNLIB has some drawbacks
though: export table will be generated for all
executables made from these .libs, .exp/.lib will
also be generated for all executables.
; TODO: Solve to compile Harbour lib .prgs using
-n1 switch. (needed for .dll, and this
one has only befenefits for other scenarios)
; TODO: Add hb-mkdll.bat to postinst.bat.
; TODO: Add BCC support, if possible.
; TODO: Rename hb-mkslib.sh to 8.3 name and sync
name with the .bat version (not necessarily
mkdll, but something short.)
* bin/hb-func.sh
! Added system libs for optional components included
in the harbour dynlib. I plan to make some more
changes here, but this should fix missing system
libs with shared option enabled in hbmk2.
* contrib/examples/dbu/dbu.hbm
* contrib/examples/rl/rl.hbm
+ Added -n.
* utils/hbdoc/Makefile
* utils/hbmk2/Makefile
* utils/hbtest/Makefile
* utils/hbi18n/Makefile
* utils/hbrun/Makefile
- Removed explicit -gc0 -n override.
Should now be set automatically for all binaries.
+ contrib/examples/dbu/dbu.hbm
- contrib/examples/dbu/hbmk.bat
* contrib/examples/dbu/readme.txt
+ contrib/examples/rl/rl.hbm
- contrib/examples/rl/hbmk.bat
* contrib/examples/rl/readme.txt
+ Replace Win/DOS specific batch files with hbmk make
file, so now all platforms are equally supported.
- contrib/examples/dbu/hb_dbu.dif
+ contrib/examples/dbu/dbu.dif
* Renamed.
* utils/hbmk2/hbmk2.prg
+ Added internal function to check for linked GTs, so that
platform/compiler code can act accordingly.
+ Added required system libs and paths for gtsln, gtcrs
and gtxwc. So now it's 100% hbmk script compatible.
This effectively added support for gtsln and gtcrs
(for *nix only). ncur194 support is missing though,
plus maybe some build-time modifier switches aren't
honored (the WITHOUT* ones, but I'm not positive that
all of them have to be handled on hbmk2 level).
Probably some clever autodetection can be used on
hbmk2 level for such cases.
! Fixed to not be case-sensitive when dealing with GT names.
+ Added NOTE about 3rd party/contrib stuff handling.
* Minor formatting.
; NOTE: What remains is cross compilation support, which
is a new topic. -n support tweak, if needed.
And testing, adding missing compilers, fixing
existing ones if needed, syncing with build-time
switches, clean Win32 system libs.
* contrib/gtwvg/tests/gtwvg.hbp
+ Readded gui=yes to better separate compontents.
* ChangeLog
* Entry marked done.
* contrib/hbfimage/fi_wrp.c
! Added hack to trick around FreeImage.h header not to
#include <inttypes.h> on Borland compilers. Maybe newers
than 5.8.1 versions have it, so this can be made BCC version
dependend.
* include/hbdefs.h
+ Added similar to HB_DONT_DEFINE_BOOL hack: HB_DONT_DEFINE_LONG.
(needed until we clear up our types.)
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbfimage/Makefile
* doc/whatsnew.txt
% Deleted #includes/macro checks not necessary.
! Disabled body of fi_winfu.c when not compiled under
Windows. This fixes one Linux compilation error.
% Replaced HB_OS_WIN_USED with HB_DONT_DEFINE_BOOL and
HB_DONT_DEFINE_LONG, moved foreign headers before
Harbour headers, added non-Harbour Windows detection
in fi_wrp.c (I'm not sure that is necessary), so that
it now compiles on both Windows and non-Windows (Linux
tested) systems.
+ Renabled on Linux in Makefile.
; Please review/test these changes.
* harbour/contrib/gtwvg/wvgsink.c
! Fixes as per Przemek's observations.
;TOREVIEW : return( ( ULONG ) ( ( MyRealIEventHandler * ) this )->count < 0 ?
( ( MyRealIEventHandler * ) this )->count : 0 );
Actually I was having some problem with some old active-x
and was trying to fix that, that is why, now I do not remeber...
* contrib/hbgd/gdwrp.c
! Fixed double implementation of GDIMAGEELLIPSE().
The so far inactive .c version got enabled by recently
making lib version detection automatic, which made it
collide with the existing .prg implementation.
Left the .prg one active because it works regardless
of the lib gd version. Francesco, please verify me.
- Deleted disabled, probably older copy of GDIMAGEELLIPSE()
from .c source.
* utils/hbmk2/hbmk2.prg
* Help screen update.
* bin/hb-func.sh
! Fixed gtalleg lib name.
% Removed explicit harbour -gc0 option. This is now the default.
* utils/hbmk2/hbmk2.prg
+ Added fmstat/nofmstat support.
! Minor fix to allow more freedom in formatting inside .hbp files.
! Fixed to delete prg stub file when using -hbcc option.
+ Added Copyright section for Przemek for the ideas I've
borrowed from hbmk script and contributed code.
+ Detect platform default GT and only create stub if the
user selected GT is different.
+ Now using versions shared libs on *nixes.
+ Mode detection now regards the ending or the beginning
of the original name, so prefixed or postfixed names will
also be recognized: xhbcmp, hbcmpx, myhbcmp.
! Fixed to multiple -gt options override each other so the
last one will be effective.
! Fixed error message text when stub cannot be created.
Furthermore in this case hbmk will now quit.
+ Also using '-Wl,--start-group' for bsd (from hbmk script).
+ Added '-bind_at_load', '-multiply_defined suppress' gcc
options for darwin shared mode (from hbmk script).
* Changed stub name to hbstub (from hbmkgt).
* pthread lib handling streamlined based on hbmk script,
but this probably needs further cleaning as the script
isn't clear to me here.
+ Added fmstat/nofmstat switch. It most probably needs some
tweaking, as the conditions seem rather sophisticated here.
TODO: For non-*nix/non-gcc platforms (msvc/bcc32/owatcom
most importantly).
+ Added system libs for darwin if gtcrs or gtsln are selected.
(nslang isn't a default lib here, so it won't work on plain
installations, slang however will).
+ Missed from previous commit: Fix so that -nohbp doesn't
prevent processing the global config .hbp file.
! Fixed typo in prev commit.
* utils/hbmk2/examples/contrib.hbp
- Removed hbtip as it's not fully portable (dos).
+ utils/hbmk2/examples/contribf.hbp
+ Added complete database of contrib, with
availability information.
* contrib/xhb/Makefile
* contrib/hbmsql/Makefile
* contrib/hbmzip/Makefile
* contrib/hbziparc/Makefile
* contrib/hbnf/Makefile
* contrib/hbmisc/Makefile
* contrib/hbvpdf/Makefile
* Formatting.
* harbour/source/vm/classes.c
* cleanup comment
* harbour/source/rtl/gttrm/gttrm.c
+ added support for HB_GTI_PALETTE - it's supported only by Linux console
and PuTTY/PTerm
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/contrib/gtwvg/gtwvg.c
! fixed indexes in
hb_gtInfo( HB_GTI_PALLETE, <nIndex> [, <nNewRGBcolor> ] )
They should be the same as in our screen buffer: 0-based not one
based.
* harbour/contrib/gtwvg/wvgwin.c
+ More functions.
* harbour/contrib/gtwvg/wvgdatar.prg
* harbour/contrib/gtwvg/wvgscrlb.prg
* harbour/contrib/gtwvg/wvgwnd.prg
! WvgScrollBar() class now works in toto as per
Xbase++ documentation.
; TODO: Implementation of WvgScrollBar() in demowvg.prg.
* utils/Makefile
! Fixed broken GNU Make after recent directory rename.
* utils/hbmk/hbmk2.prg
* -q switch changed to -quiet to not collide with harbour option
of the same name.
+ Following C flags will automatically be inheried to
*nix/gcc|gpp compilers regardless of -bldf flag:
-mlp64, -mlp32, -m64, -m32, -fPIC, -fpic
+ Following C flags will be automatically processed and
relevent system libs added:
-DHB_PCRE_REGEX - pcre
-DHB_EXT_ZLIB - z
-DHAVE_GPM_H - gpm
! Stripping 'lib' prefix from lib names for gcc-family compilers.
! Stripping extension from lib names for gcc-family compilers.
; Please review.
* contrib/examples/uhttpd/hbmk.bat
* .lib extensions removed from HB_USER_LIBS.
* utils/hbmk/hbmk2.prg
+ Added new TODOs.
+ Now using GTCGI as the GT.
+ Added -info option to enable informational output.
(currently this is the default for testing period)
+ Added -arch=<arch> command line option. Same as HB_ARCHITECTURE.
Added -comp=<comp> command line option. Same as HB_COMPILER.
envvars are kept for compatibility.
+ Added -hblnk option to give plave for hblnk script behaviour
emulation.
* Changed -cc, -cmp options to -hbcc, -hbcmp respecitvely.
+ Changed -hbcc, -hbcmp, -hblnk switches to turn off information
output and turn on quiet mode by default.
+ Added autodetection of architecture when unique to
architecture compiler is choosen manually. IOW, when
-comp=msvc|mingw|pocc|dmc|xcc is passed the architecture will
be set to win automatically. When -comp=djgpp is used,
dos will be selected.
! Fixed ordering of compiler autodetection because f.e. owatcom
bin dir holds a 'cl.exe', which made hbmk2 falsely detect msvc.
+ Added trick which I'm not sure I like, and may cause problems
and seemingly unpredictable behaviour, but could also help
in some environments where multiple compilers are setup in
parallel (this isn't a recommended scenario for various other
reasons, so maybe we shouldn't support it further). So from
now on the compiler autodetection will first look for the
compiler used to build hbmk2.exe, and check for the rest
afterwards. This feature is turned off for msvc builds of
hbmk2.exe because it breaks owatcom autodetection.
+ Added possibility to pass a plain dir by using -odir[\|/]
switch. The final name will be determined by first input
file name, if this one also has a dir, -o option will be
ignored. Added logic to handle separator differences, this
wasn't tested to a great deal.
+ Added -Wl,--start-group support for linux/gcc|gpp, win/mingw,
dos/djgpp.
! Fixed owatcom support to setup library paths.
! Fixed linux/owatcom to use link script.
* Some adjustments to win/owatcom C compiler settings. I guess
the ones in .cf should also need a cleanup.
* Few minor indentation problems fixed.
! C compiler and linker scripts now got an extension in
the generated temp filename to make some of them happy
(owatcom in this case). .cpl is used for compiler scripts,
.lnk for linker ones.
+ Compiler autodetection now also looks in hbmk2 executable
dir before looking into the PATH.
! Link script content was wrong due to typo.
! Fixed problem with library paths being wrong (doubly
decorated) in the link command. This may also fix some
problems with double extensions and final .c file cleanup.
! Fixed to add hbdebug lib when building in shared mode.
! Fixed typo in automatically adding './' on *nix systems.
; Please test, I definitely couldn't retest all scenaros
after all these changes.
* bin/postinst.bat
* Adapted change in mode modifier switches, also
added new -hblnk one.
* utils/hbmk/examples/winapi.hbp
+ Added mapi32.
+ utils/hbmk/examples/contrib.hbp
+ Added .hbp file for popular and portable only contribs.
* config/win/owatcom.cf
- Removed unnecessary system libs.
* contrib/hbvpdf/hbvpdft.prg
* hbwhat32 -> hbwhat in comment.
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/wapi_winuser.c
! Fixed harbour-project page link in header.
* contrib/hbwin/hbwapi.h
* Formatting (indenting the whole file content inside
self-guard isn't necessary.)
* contrib/gtalleg/tests/gtalleg-static.hbp
+ Added some Windows libs. The libs seem compiler
and/or SDK dependent, so pls update this, current state
is probably enough to get an idea of it.
+ utils/hbmk/examples/winapi.hbp
+ Created hbp file for Windows libs.
* utils/hbmk/hbmk2.prg
* utils/hbmk/examples/xbgtk.hbp
* utils/hbmk/examples/xhgtk.hbp
* Formatting.
* utils/hbmk/hbmk2.prg
+ Added handling of quoted options (with double quotes) for
items containing spaces. hb_AToken( , , .T. ) is used, so
these rules apply. Outer double quote pair will be stripped
from the quoted items.
We will probably need extra code to add the quote back
when forming the command lines. Anyway this feature mainly
targets to support pkg-config options, which have their
own special quotes anyway.
! Minor change to not use hb_cmdline() for -q option detection,
and also to ignore -q in main option processing loop.
! Fixed explicit .hbp processing.
* contrib/gtalleg/tests/gtalleg-shared.hbp
* contrib/gtalleg/tests/gtalleg-static.hbp
* utils/hbmk/examples/xbgtk.hbp
* utils/hbmk/examples/hwgui.hbp
* utils/hbmk/examples/xhgtk.hbp
* Updated pkg-config related lines.
* utils/hbmk/hbmk2.prg
! Fixed not recognising hbp lines if the filter was at BOL.
! Two minor fixes.
* utils/hbmk/examples/xbgtk.hbp
+ Added cflags, it was already supported, just forgot about it.
* contrib/hbblat/tests/hbblat.hbp
* contrib/hbblat/tests/blatcmd.prg
% Using WIN_GETCOMMANDLINEPARAM().
* contrib/hbwin/win_misc.c
* contrib/hbwin/tests/testreg.prg
+ Added WIN_GETCOMMANDLINEPARAM().
Similar to WAPI_GETCOMMANDLINE() but returns
only the parameter part. Handles UNICODE,
_SET_OSCODEPAGE and appnames with spaces.
* contrib/hbwin/tests/hbwin.hbp
! Fixed to include shell32 lib.
* contrib/hbwin/Makefile
* contrib/hbwin/common.mak
+ contrib/hbwin/wapi_winbase.c
* contrib/hbwin/tests/testreg.prg
+ Added WAPI_GETCOMMANDLINE().
With UNICODE and _SET_OSCODEPAGE support.
* ChangeLog
* TOFIX (hb_cmdline()) marked as POSTPONED with explanation.
+ contrib/gtalleg/tests
+ contrib/gtalleg/tests/gtalleg-shared.hbp
+ contrib/gtalleg/tests/gtalleg-static.hbp
* utils/hbmk/examples/whoo.hbp
* utils/hbmk/examples/c4w.hbp
* utils/hbmk/examples/minigui.hbp
* utils/hbmk/examples/hwgui.hbp
* utils/hbmk/examples/fwh.hbp
+ utils/hbmk/examples/xbgtk.hbp
+ utils/hbmk/examples/xhgtk.hbp
+ Added new hbp files and settings to cover support by current
hbmk script features.
+ Added new gtalleg hbp files for Windows, both static
and shared. Added logic from hbmk script for Linux.
; NOTE: This is a work in progress, I'll have to investigate
-I support needed for xbgtk, hbmk can't handle that yet.
Also pkgconfig notation isn't parsed well yet, there needs
to be added syntax to allow spaces inside items.
Expect some possible incompatible changes in this area.