* 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.
* config/linux/install.cf
! Added hack to ignore copy errors.
This probably isn't the ultimate solution, but since a few
weeks Harbour cannot be installed in the same dirs where
sources are located, since it fails with
cp: `file' and `/harbour/include/file' are the same file
which causes that no binaries will be installed either.
* contrib/gtwvg/make_b32.bat
* contrib/gtwvg/make_vc.bat
* contrib/gtwvg/Makefile
* Trying new method to point to hbwin, so that
we're not relying on hbwin headers being installed.
; Please test.
* contrib/Makefile
+ Added hbblat.
* contrib/make_vc_all.bat
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/hbblat/Makefile
* contrib/hbblat/common.mak
* contrib/hbblat/make_b32.bat
* contrib/hbblat/make_vc.bat
* contrib/hbblat/blatwrp.c
* contrib/hbblat/tests/hbmk.bat
* contrib/hbblat/tests/blatcmd.prg
+ Added support for HB_INC_BLAT (needed for releases).
* Some EOLs added.
* Minor correction to .ch name in make files.
% Replaced command line retrieval with hb_cmdline() call.
* Cleaned some headers/#defines.
* GNU make file got protection to only compile for win,
and to install headers.
* make_gnu.bat
* contrib/hbct/Makefile
* contrib/hbwin/Makefile
* Minor formatting.
- tests/hbmk_gnu.bat
- Removed.
* contrib/examples/uhttpd/hbmk.bat
* contrib/examples/dbu/hbmk.bat
* contrib/examples/rl/hbmk.bat
* Made them compatible with Win9x/NT systems again.
* source/lang/msg_tpl.c
+ Added NOTE about date format.
* source/lang/msgbe866.c
* source/lang/msgbewin.c
* source/lang/msgbg866.c
* source/lang/msgbgiso.c
* source/lang/msgbgmik.c
* source/lang/msgbgwin.c
* source/lang/msgit.c
* source/lang/msgnl.c
* source/lang/msgsl437.c
* source/lang/msgsl852.c
* source/lang/msgsliso.c
* source/lang/msgslwin.c
! Fixed date formats to only contain YYYY MM and DD.
Plus the format itself corrected in a few places.
* utils/hbmk/hbmk.prg
+ Added TODO
% Added ANNOUNCE HB_GTSYS / REQUEST HB_GT_STD_DEFAULT.
Since this tools doesn't need anything fullscreen, and
this way it's faster smaller, yet portable.
* ChangeLog
* Few old TODO/TOFIX statuses updated.
* harbour/include/dbinfo.ch
+ added DBI_ISTEMPORARY
* harbour/include/hbapirdd.h
* harbour/source/rdd/wafunc.c
+ added hb_rddCreateTableTemp() C function to create temporary
table which are automatically deleted on close. All indexes and
memo files for such tables are also in temporary files and
automatically deleted on close. Please remember that Harbour uses
OS functions to create temporary files so it's installation dependent
how much disk space is available for them. Some RDDs may also do
not create temporary files but keep everything in memory if they
decide it's more efficient.
* harbour/source/rdd/dbcmd.c
+ added .prg function to create temporary files:
dbCreateTemp( <cAlias>, <aStruct>, <cRDD>, ;
<cCodePage>, <nConnection> ) -> <lSuccess>
Not all RDDs have to support it. It's verified by support for
DBI_ISTEMPORARY dbInfo() action.
* harbour/include/hbrdddbf.h
* harbour/include/hbrddnsx.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddntx.h
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
+ added support for temporary tables in native RDDs.
Most of above modifications were done by Viktor Szakats.
* harbour/source/vm/thread.c
! fixed typo in PTHREAD (*nixes) version of hb_threadMutexTimedLock()
(.prg HB_MUTEXLOCK() with timeout parameter)
! unlock HVM in *nix version of hb_threadWait()
; added TODO note
* doc/dirstruc.txt
* Updated to reflect current state.
* source/compiler/hbusage.c
* source/lang/msghe862.c
* source/lang/msghewin.c
* source/rtl/tone.c
* source/rtl/gtos2/gtos2.c
* Update my email on source files
(didn't bother to change those under doc).
* utils/hbmk/hbmk.prg
+ Added support to pass .hbp files on the command line.
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/hbwapi.h
! Remaining comments changed to ANSI.
* harbour/contrib/gtwvg/common.mak
* harbour/contrib/gtwvg/Makefile
+ Added wvgdarea.prg
* harbour/contrib/gtwvg/wvgwin.c
+ Added more functions.
+ harbour/contrib/gtwvg/wvgdarea.prg
+ Added WvgDrawingArea(), a helper class to WvgDialog().
* harbour/contrib/gtwvg/wvgdlg.prg
* harbour/contrib/gtwvg/wvgparts.ch
* harbour/contrib/gtwvg/wvgphdlr.prg
* harbour/contrib/gtwvg/wvgstatc.prg
* harbour/contrib/gtwvg/wvgtoolb.prg
* harbour/contrib/gtwvg/wvgwnd.prg
* harbour/contrib/gtwvg/wvtwin.ch
! Numerous class structure enhancements. More Xbase++ compatibility
XbpDialog:drawingArea concept implemented in greater details.
WvgToolbarButtons() now take use of WAPI_ImageList_*() functions.
* harbour/contrib/hbwin/hbwapi.h
! Defines updated to respect pointers also.
+ harbour/contrib/hbwin/wapi_commctrl.c
+ Implemented WAPI ImageList_*() family of functions.
* harbour/contrib/hbwin/Makefile
* harbour/contrib/hbwin/common.mak
+ Added wapi_commctrl.c
* harbour/contrib/gtwvg/tests/demowvg.prg
* harbour/contrib/gtwvg/tests/demoxbp.prg
! Updated TO respect new changes in class structures.
Xbase++ related components are more compatible now.
; TODO: Tooltips on Toolbar Buttons. WHILE implemeting
XbpDialog:drawingArea concept I have lost track of this
feature as buttons are now created via image lists and
Toolbar window is created with CreateWindowEx() instead of
CreateToolbarWindow().
* contrib/hbapollo/tests/hbapollo.hbp
+ Added filters.
; TOFIX: hbapollo test doesn't link with MSVC.
- contrib/hbapollo/tests/hbmk.bat
- contrib/gtwvg/tests/hbmk.bat
- contrib/hbbtree/tests/hbmk.bat
- contrib/examples/terminal/hbmk.bat
- contrib/examples/terminal/hbmk_trm_appn.bat
- Removed batch versions of make files.
Go to the directory the source are located and
use the .hbm files where there is one, or just pass
the .prg name to hbmk.exe.
* utils/hbmk/hbmk.prg
! Fixed handling lib/source files with double extensions.
! Fixed to not add empty items to lists in some occasions.
+ Added -q to suppress informational output + header.
- bin/hbmk.bat
- bin/hbmk_gcc.bat
- bin/hbmk_os2.cmd
- bin/hbmk_ow.bat
- bin/hbmk_b32.bat
- bin/hbmk_vc.bat
- Removed make files obsoleted by new hbmk tool.
Old calling convention, features, switches, envvars
continue to work.
WARNING: If you've called hbmk as hbmk.bat,
you'll need to change that to simply hbmk.
* contrib/hbodbc/odbc.c
* Minor formatting.
* utils/hbmk/hbmk.prg
! Fixed owatcom link commands. (it was also wrong
in hbmk.bat)
+ Added -debug support for owatcom. (untested)
+ Added rsxnt/rsx32 support in an unobtrusive way.
* source/compiler/hbusage.c
+ Added Vailton Renato to credit list.
* utils/hbmk/hbmk.prg
+ Cleanups and additions to help screen.
! Fixed dm/dmc compiler ID.
- config/win/dm.cf
+ config/win/dmc.cf
* contrib/gtalleg/Makefile
* contrib/hbwhat/Makefile
* Digital Mars C compiler ID changed from dm to dmc.
(they also have a D compiler f.e.)
* utils/hbmk/hbmk.prg
+ Added support for '#' comment lines in .hbm files.
+ Added support to automatically convert slashes/backslashes
in passed libnames and prg options.
* Cleanup on computing Harbour location. I didn't test all
situations here. This should fix previous versions not
honoring explicit HB_*_INSTALL envvars.
+ Added support for POCC (untested).
+ contrib/hbct/tests/hbct.hbp
+ contrib/examples/terminal/terminal.hbp
+ contrib/examples/terminal/trm_appn.hbm
+ Added new hbmk files to show what it takes to replace
the current system, but this time fully supporting
all Harbour platforms.
To use these just run hbmk, either from the path, or
by directly pointing to it:
..\..\..\bin\hbmk.exe <test.prg>
..\..\..\bin\hbmk.exe trm_appn.hbm
.exe can be dropped as soon as we delete out hbmk.bat file.
* utils/hbmk/hbmk.prg
+ Added POCC and DMC autodetection.
+ Added screen message when no C compiler could be
autodetected.
! owatcom was missing from OS/2 supported compiler
internal list.
* utils/hbmk/hbmk.prg
+ Added support for -map switch to create a map file.
+ Added support for -run switch to run the created executable.
+ Script files can be passed without '@' prefix if using the
extension '.hbm'. So 'hbmk myscript.hbm' will now also work.
+ Now possible to negate most switches using a '-' postfix:
'hbmk -strip-'
+ Added '-notrace'/'-trace-' switches to disable tracing.
+ Some steps towards Windows resource support.
+ Added support for 'cflags=' and 'ldflags=' in .hbp files.
+ Added mini architecture/compiler filter which can be used
in every line of an .hbp file, and also for every library
passed on the command line:
hbmk hello.prg -lonlyforlinux{linux}
The filter expression can use paranthesis, '&' for AND,
'|' for OR and '!' for not. F.e.: {linux&!owatcom}
% Minor optimizations.
+ utils/hbmk/examples
+ 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
+ Added few example for .hbp files to support 3rd party
packages. These may be removed, as it's better if these
are supplied by the packages themselves.
NOTE: I took these from hbmake, and they are probably
obsolete.
* utils/hbmk/hbmk.prg
+ Added -bldflags option which tells hbmk to also
apply user build flags (HB_USER_*FLAGS) used when
building Harbour.
* Minor internal cleanups.
! Typo in help screen.
* utils/hbmk/hbmk.prg
+ Added support for parameters passed in files:
'hbmk @myprogram.hbm'.
Multiple scripts can be passed, and they can be
combined with normal command line options.
This makes it possible to supply quasi make files
for programs.
+ Added support for hbmake parameter (.hbp) files. hbmk
will scan current dir for .hbp files and process them.
.hbp files can specify user libs, .prg options, can
control MT, GUI, NULRDD, SHARED, DEBUG, STRIP and can
select GT. This makes it ideal to offer automatic setup
for lib dependent programs, f.e. an .hbp can be places
in contrib test dirs to allow for a configuration free
make process without the need of any helper batch/script
files. 3rd party makers can also supply .hbp file for
the same effect, f.e. xhgtk, hwgui support may be added
this way, without hard-wiring knowledge into hbmk itself.
-nohbp disables processing of these files.
+ Added support for HB_GT envvar.
+ -o support for win/msvc.
! Fix to GT handling and -shared to for msvc and bcc32.
! Fixed some envvar names.
* utils/hbi18n/hbi18n.prg
* Minor typo.
+ harbour/contrib/hbwin/wapi_commctrl.c
+ Added WAPI_Image*() functions.
* harbour/contrib/hbwin/hbwapi.h
+ Added more _par and _ret defines.
; The idea is to encapsulate Harbour API for WINAPI
parameters and return values. Now wapi_commctrl.c
looks very clean and easy to understand code.
Also I have contained all those functions which are
either not required on normal programming level
OR I could not convert, with #if 0 / #endif blocks.
But the header definitions are pulled from MSDN and
have been kept alongwith. This ensures that whenever
someone will try to implement them, all info will be
handy.
; Please approve the above implementation so that I
include these files in the build batches.
* utils/hbmk/hbmk.prg
+ Added -strip/nostrip switch and implemented for GCC/GPP.
+ Added -trace switch to see executed commands.
+ Added negative switches: -std, -st, -nodebug
+ Added detection whether Harbour is installed in default system
locations on *NIX systems. If it is, turn on shared libraries
by default for all *NIX systems.
+ Added support for GT selection with -gt??? switch.
(using .prg method, not .c as in hbmk bash script)
+ Added support for linux/gpp.
; NOTE: Some things still missing:
- details of *NIX stuff, systems libs, switches,
etc, etc.
- -fullstatic not yet supported.
- fmstat/nofmstat. It would be good to find a
more easily manageable way to influence that.
Current one is make system dependent and a bit hackish.
- handling 3rd party libs. These should be supported
by supplying proper parameter, and we can provide
example scripts for these libs. Hard-wiring them
into core Harbour is quite dangerous.
- "MAIN" function override. I'd rather leave this out,
and clear up the situation with entry procs.
- gtsln and gtcrs support.
- Watcom, OS/2, *NIX not tested.
- Built-in support for our contribs. For clear
separation of components contribs shouldn't be
referred to in this core component.
- Filtering foreign system libs passed on the command
line for platforms not needing them. The goal is to
be able to use as simple and _portable_ hbmk command
lines as possible.
- Support for POCC, DM.
; TODO:
- Switch to portable command lines in hbmk.bat files.
(Win9x will be supported again).
- Remove bin/hbmk*.bat, bin/hbmk*.cmd, util/hbmake/*.
- Cleanup on variable names in hbmk.prg.
* tests/testid.prg
* Minor cleanup.