* 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.
* common.mak
* changed HBM_KDIR from "utils\hbmk" to "utils\hbmk2"
- utils/hbmk
+ utils/hbmk2
* renamed dir name to fix wrong dir change on gnu scripts: mpkg_tgz.sh
and the harbour.spec
! Fixed dir name error that avoided to build rpms and tgz files.
* utils/hbmk/hbmk2.prg
+ Added object archive support for (currently) gcc compilers.
.a file are gathered like .o files, and they can be added
to the internal command line templates using the {OA} macro.
I've added these after {O} macros in gcc cmdlines.
(Przemek's request #9. Please review.)
* Minor internal change to system location detection.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* mpkg_tgz.sh
% Removed -r make flags. No longer needed.
* utils/hbmk/hbmk2.prg
+ Added new flags to replace -bldflags[-]:
-bldf[-] and -bldf=[p][c][l]. We can pass any combinations
to the latter. '-bldf=' is the same as '-bldf-'.
+ Added hbcplr to liblists (both static and shared).
+ Added infrastructure to allow for any kind of logic
to detect compilers (not just PATH search for .exe).
We should however very carefully use such methods
to keep detection precize, predictable. For now I'd like
to hear about misdetections using current system.
* 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.)
* harbour/source/vm/thread.c
! fixed the typo in order of sending signals in _hb_thread_cond_signal()
_hb_thread_cond_broadcast() for OS2. By mistake it was LIFO instead of
FIFO.
* utils/hbmk/hbmk2.prg
+ Added rest of default *nix system paths.
% Minor optimization regarding the above.
! Fix regarding the above (include/lib were swapped).
* make_gnu.sh
* Formatting.
* config/global.cf
+ Added link to GNU make docs.
+ Added .SUFFIXES: to delete all built-in rules. This does
the same as the -r switch which we were using so far,
so this one is no more necessary. Now GNU make can be
started by simply running 'make' without parameters.
* make_gcc.sh
* make_gnu_os2.cmd
* make_gnu.bat
% Removed make -r switches.
; TODO: Do the same in the rest of the scripts.
* ChangeLog
* utils/hbmk/hbmk2.prg
* TODOs moved to source file.
+ Added hbp comment syntax to help screen.
* config/win/install.cf
! Reverted previous fix (with xcopy) and replaced with
official method to suppress return value.
* harbour/include/hbthread.h
* harbour/source/vm/thread.c
! added support for conditional variables working like in PTHREADS
in OS2 builds - it fixes the problem with possible dead lock or
starvation effect which can also cause dead lock in some cases.
OS2 users please test current code.
* utils/hbmk/hbmk2.prg
% Optimizations in FindInPath().
! Fixed handling dirs in PATH with embedded path separator
in them.
! Possible fix for owatcom compilers by forcing link
script instead of passing options on the command line.
* utils/hbmk/examples/winapi.hbp
! Updated for BCC.
* source/vm/cmdarg.c
* little hack from Przemyslaw to make it work under OS/2 where
executable name hasen't got extension if extension was not give when
executable was started.
* utils/hbmk/hbmk2.prg
* Changed to work under OS/2 with GCC; other OS/2 compilers not tested.
* utils/hbmk/hbmk2.prg
* '-l-' is now passed to Harbour instead of being considered
as a lib spec.
* Arch/comp is now case-insensitive in filters too.
* Removed GTSTD usage.
It caused a stall at startup for BCC, and Ctrl+C had
to be pressed to proceed. I didn't investigate further,
maybe it's a local problem.
* config/win/bcc32.cf
* Synced flags with non-GNU make. This adds MT support.
* config/win/install.cf
! Install command modified to not give errors and block
the whole build process if the target file already exists.
The workaround consisted of changing 'copy' to 'xcopy /d /y'.
* include/inkey.ch
+ Added comments on K_MM*DOWN codes.
These also should be protected, and moved to
local the local headers belonging to GTs
supporting this feature (GTWVG notably).
* source/rtl/gtwvt/gtwvt.c
+ Protected non-Clipper compatible extension regarding
K_MM*DOWN with __HB_GTWVT_GEN_K_MMDOWN_EVENTS #define.
Also see notes in about app level code modification
needed if you want to continue using default Harbour build:
2009-02-18 12:20 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* 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.
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
* source/rtl/mouse53.c
+ Added HB_MMIDDLEDOWN() functions, plus MMIDDLEDOWN() alias.
These are always available regardless of the CLIP53
compatibility setting.
; TOFIX: K_MM*DOWN events _override_ C5.3 compatible
K_MOUSEMOVE events (in GTWVT only), which created
an unfortunate incompatibility with our target
C5.x compiler when using some specific GT. Ideas
are welcome how to fix this. We should probably
either send out both codes and let the inkey queue
do the filtering as requested by app (we need a
new filter then), or remove these event code and
generate proper K_MOUSEMOVE events instead. Apps
using this these incompatible keycodes are encouraged
to replace expressions:
'( key == K_KK*DOWN )' with the compatible:
'( key == K_MOUSEMOVE .AND. M*DOWN() )' to prepare
for the fix.
* bin/postinst.bat
+ Added generation of hbcc[.bat|.cmd], hbcmp[.bat|.cmd]
and hblnk[.bat|.cmd].
; NOTE: Available only when using GNU-make to build Harbour.
* utils/hbmk/hbmk2.prg
% Minor optimizations.
+ HB_USER_LIBS now gets automatic path separator adjustment.
* config/win/msvc.cf
! Added missing system libs.
! Tweaked C options to be like in non-GNU make.
* make_gcc.sh
* make_gnu.sh
- Removed compatibility with HB_ARCHITECTURE = w32.
* harbour/include/hbapi.h
* harbour/source/vm/cmdarg.c
* harbour/source/vm/hvm.c
* added hb_cmdargUpdate() function which makes final argc/argv updating
(code moved from hb_cmdargInit())
! use hb_cmdargUpdate() - it fixes GPF in MT mode when some fs* functions
were called before allocating HVM stack
; TOFIX: change some hb_setGet*() functions to work without HVM stack.
* harbour/source/rtl/hbtoken.c
* formatting
* 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.
* source/rtl/listbox.prg
! Restored _SET_EXACT dependent code parts to have the
same logic as before my modifications a few years ago.
Przemek, is it right now? I honestly didn't understand
the issue here.
+ 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.
* utils/hbmk/hbmk2.prg
+ Made HB_ARCHITECTURE and HB_COMPILER case-insensitive.
Notice however that other parts of Harbour (notably the
GNU-make system) will only accept them in lowercase, so
that's the recommended way to setup these values.
* One error message made more informative.
* utils/hbmk/hbmk2.prg
+ HB_COMPILER now automatically set to gcc for Linux.
You can override it if you need gpp or owatcom.
+ xcc, icc autodetection for win.
+ Added support for HB_MT=mt|MT for compatibility.
+ Added support for -mwindows/-mconsole for compatibility.
+ 0/1 is accepted instead of yes/no for compatibility.
* utils/hbmk/hbmk2.prg
+ Added support for -fullstatic.
+ Added '-lm' to linux/gcc. Still needs to tweaking, like gpm.
* bin/hbmk.bat
+ Added missing '@'.
* make_b32.mak
* make_vc.mak
* common.mak
+ bin/hbmk.bat
* utils/hbmk/Makefile
- utils/hbmk/hbmk.prg
+ utils/hbmk/hbmk2.prg
+ Renamed hbmk to hbmk2 to avoid collision with hbmk script,
and to allow parallel testing.
+ Readded hbmk.bat to redirect to hbmk2.exe.
This will be removed in the future. Win9x/OS/2 isn't
supported with this batch file.
* utils/hbmk/hbmk.prg
+ Added support for multiple -L (lib path) options.
+ Added support for libpaths= option in .hbp files.
! Fix/cleanup to help screen.
! Fixed handling of libs specified in an explicitly passed
.hbp file due to typo.
* utils/hbmk/hbmk.prg
+ Added support for -cc switch. This will stop hbmk after creating
the Harbour .c outputs to emulate hbcc tool behaviour.
'hbcc' -> 'hbmk -cc $*'
+ Added support for -cmp switch. This will stop hbmk after creating
the object outputs from the C compiler.
'hbcmp' -> 'hbmk -cmp $*'
+ From now on objects file passed on the command line will also
be considered as final executable name if passed before the other
files.
* Tweaked internals to cope with some new combinations, like
passing object only for a compiler having separate C compiler
and link phases. Launching C compiler even if there are only
object files.
- contrib/hbmysql/utils/hbmk.bat
+ contrib/hbmysql/utils/hbmysql.hbp
- contrib/hbblat/tests/hbmk.bat
+ contrib/hbblat/tests/hbblat.hbp
* Switched from WIN/DOS specific to .hbp.
- contrib/hbgd/tests/hbmk_gnu.sh
* contrib/hbgd/tests/hbgd.hbp
* Switched from *NIX specific to .hbp.
* contrib/hbblat/tests/blatcmd.prg
! Reverted fix of mine until we properly fix hb_cmdline().
; TOFIX: Fix hb_cmdline() to work more consistently on Windows.