* utils/hbmk2/hbmk2.prg
+ Added -inc support for lib dependencies. This means that
changed libs will also force a target rebuild.
I've implemented three separate logic for mingw/cygwin,
gcc/linux+sunos and the rest of compilers. This may not
be precisely the way each of the hbmk2 supported compilers
wotk, but it probably covers most cases. Anyhow please
tweak and correct if you find some problems. I did
tests with mingw, msvc, bcc static and shared mode.
! Removed automatic path tweak in .hbp/libpaths=.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/moc_gtqtc.cpp
* harbour/contrib/gtqtc/tests/demoqtc.prg
! More complete.
No more (IMO) Windows specific calls.
Please let me know if it compiles fine on *nixes ?
* utils/hbmk2/hbmk2.prg
! Fixed bcc targets linking wrong (own bcc) PCRE engine instead
of the Harbour one by reordering lib list. This should fix
hbtip problems reported on the list.
* utils/hbmk2/hbmk2.prg
+ libpaths= can now have relative paths specified, and in this
case the path will be adjusted by absolute path of host .hbp.
This makes it possible to point hbmk2 to a .hbp file in a
foreign dir, and let it pick up local lib dirs automatically.
+ .hbp files passed without absolute paths will now inherit
the .hbm path if applicable.
+ Will now echo all explicitly specified .hbp filenames on
screen in -info mode.
+ Added echo= support in .hbp files. The parameter will be
echoed to stdout as is.
+ Added macro support for following .hbp lines:
libpaths=, prgflags=, cflags=, ldflags=, echo=.
Supported macros are:
${hb_root}: hbmk2 base dir
${hb_parent}: .hbp file dir
${hb_arch}: architecture
${hb_comp}: compiler
${<envvar>}: any envvar
+ .hbp files are now searched in libpaths, too.
; NOTE: With above changes it's possible to refer to a 3rd
party lib solely by pointing to its .hbp file, from
that point all lib/include paths can be automatically
picked up. Here's an example for hwgui, the file
needs to be places in hwgui root dir:
---
{win}prgflags=-i${hb_parent}include
{win}cflags=-I${hb_parent}include
{win}libpaths=${hb_parent}lib
{win}libs=hwgui hwg_qhtm procmisc hbxml
{win}gt=gtgui
---
Any hwgui apps can be compiled with this command:
hbmk2 appname.prg C:\hwgui\hwgui.hbp
* contrib/hbtip/tests/dnldftp.prg
% Minor opt.
* utils/hbmk2/hbmk2.prg
+ Added support for -hbdyn option with bcc. .dll is created
but I cannot test if it's usable.
! Worked around strange behaviour of filefind API, when it will
return 'filename.extx' when we're looking for '*.ext' files.
This can be seen with Directory().
* utils/hbmk2/hbmk2.prg
! Fixed additional bcc link parameter to honor GUI/CUI mode.
This should fix the command window for GUI GTs.
* utils/hbmk2/examples/hwgui.hbp
! Fixed.
! Added gt=gtnul.
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/contrib/gtwvg/gtwvg.c
! Fixed a long standing bug - window mismanaged when clicking on titlebar.
Processed WM_NCLBUTTONDCLK:
* utils/hbmk2/hbmk2.prg
! Fixed Borland stub for both GUI and CUI mode.
This bug surfaced now that a separate link phase is always used.
! Fixed handling of libpaths with '-' chars in them for bcc.
* utils/hbmk2/hbmk2.prg
* Changed to put user supplied lib to the beginning of the lib
list. This should fix situations where user lib is overriding
some Harbour objects (like getsys).
+ Added internal switch to enable simple -inc debug.
! Fixed to add .prg extension for Harbour input files when
checking their timestamp, so files passed without extension
will now work in -inc mode.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/moc_gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
! Managed to set fonts and resize window accordingly.
So far just initially. Resizing scheduled.
! Code cleanup and arrangement.
* harbour/contrib/gtqtc/tests/demoqtc.prg
! A little tweaked.
+ contrib/hbcurl/hbcurls
+ contrib/hbcurl/hbcurls/Makefile
* contrib/hbcurl/Makefile
+ Added generation of static flavour of hbcurl. This can
be used to link against static libcurl.
* utils/hbmk2/hbmk2.prg
! Fixed target exe name with msvc.
! Added /debug link switch for msvc in -debug mode.
* utils/hbmk2/hbmk2.prg
+ Added -clean option to clean incremental work files and dir.
+ Added -rebuild option to force full rebuild in incremental mode.
* utils/hbmk2/hbmk2.prg
* Autodetection of embedded MinGW installation is now done
*after* trying to detect user installed compiler. This way
it's more natural to use the unified build as it will
automatically use the user's C compiler if setup. It's also
easier to override MinGW in unified builds, since there
is no need to force compiler using -comp: option, it's
enough to put preferred C compiler in the PATH.
* utils/hbmk2/hbmk2.prg
+ Added -workdir:<dir> cmdline option to override default
working dir (arch/comp) in -inc mode.
+ Added support for working directory in -inc mode.
Due to lack of output dir option in certain compilers
(most sadly in gcc family), these compilers will have to
be executed for each input file, slightly reducing
performance. I hope some day their developers will add such
basic option.
+ -quiet option will now suppress the header lines for
executed commands, creating a good progress output with
'-trace -quiet'.
! Fixed output related regressions in msvc/bcc.
* Removed explicit warning level settings from C compiler
options. User can override if needed.
* Returns errorlevel 19 instead of 9 in help mode. Now
returns 9 if the working dir couldn't be created.
! Fixed resource compiler command for bcc, msvc, pocc.
Turns out none of them supported multiple inputs.
% Minor code size optimization in target output dependency
checking.
* utils/hbmk2/hbmk2.prg
! Fixed to delete stub object in -inc mode.
! Fixed to handle .res input files with MinGW compilers.
+ Now using different extension (.reso) for compiled .rc and
.res file with MinGW compilers instead of former .o extension
which could collide with source files with the same name.
* utils/hbmk2/hbmk2.prg
* Added separate compile and link phases for gcc family.
Please retest, this may cause regressions.
* win/bcc made to use separate compile/link phases in all
cases.
+ Added simple progress in -inc mode.
! Fixed to detect target timestamp in hblib/hbdyn modes.
* utils/hbmk2/hbmk2.prg
+ Added support for incremental build mode. Still a work in
progress, many combinations weren't tested and some features
may not work with certain compilers yet. (bcc/msvc/pocc/owatcom
should be working, only msvc was tested)
+ Added support for multiple resource input files for mingw
and owatcom.
+ Added support for inc=on/off .hbp option.
+ msvc targets now use separate link phase. This will automatically
enable incremental linking if target already exists.
! Fixed not prepending CCPATH to resource compiler in mingw mode.
* tests/speedtst.prg
! Fixed missing hb_progname() for non-Harbour compilers.
* include/hbextern.ch
+ Added time related new functions.
* utils/hbmk2/hbmk2.prg
+ Added -runflag: option to pass flags to target executable.
+ Started -inc (incremental link) support. It's very early
stage, don't expect it to work yet and please don't report
any problems with this feature yet.
* source/vm/asort.c
! Fixed to return Clipper compatible results when non-logical
non-numeric value is returned from ASORT() codeblock.
* utils/hbtest/rt_array.prg
* Cleaned ASORT() tests when sorting block returns constant value.
Now Clipper results aren't bent anymore, instead I've added
different expected results for Harbour and Clipper. The
difference is due to different sorting algorithms used,
here the point is to get similar *pattern* for different
invalid values.
* source/rtl/philes.c
% HB_FGETDATETIME(): Removed double call to hb_stortdt().
* contrib/hbqt/tests/hbqt.hbp
* Removed extra line at EOL.
* contrib/gtqtc/tests/hbqt.hbp
! Removed environment dependent 'libspath=' line.
Please don't add such path to Harbour SVN, since these
can differ from system to system and is also non-portable.
The correct name of the directive is: 'libpaths='.
* contrib/gtqtc/Makefile
% Removed double SVN ID.
This file needs to be updated according to hbqt latest
Makefile portability changes.
* contrib/rddads/ads1.c
* Minor formatting.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/Makefile
! Few more optimizations.
- harbour/contrib/gtqtc/qtconsolearea.cpp
- harbour/contrib/gtqtc/qtmainwindow.cpp
- Removed. Needed to have better control over the operations.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/qtconsolearea.cpp
* harbour/contrib/gtqtc/tests/demoqtc.prg
! Few more HACKS - I know there are better ways to organize them.
Now our inkey() loop is active and demoqtc exits properly.
Plus you may see some activity in console.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/qtconsolearea.cpp
* harbour/contrib/gtqtc/qtmainwindow.cpp
! More fixes. Now we get background colors as in .prg.
It is a bit puzzling why I do not get text colors.
+ harbour/contrib/gtqtc
+ harbour/contrib/gtqtc/gtqtc.cpp
+ harbour/contrib/gtqtc/gtqtc.h
+ harbour/contrib/gtqtc/Makefile
+ harbour/contrib/gtqtc/moc_gtqtc.cpp
+ harbour/contrib/gtqtc/qtconsolearea.cpp
+ harbour/contrib/gtqtc/qtmainwindow.cpp
+ harbour/contrib/gtqtc/tests
+ harbour/contrib/gtqtc/tests/demoqtc.prg
+ harbour/contrib/gtqtc/tests/hbqt.hbp
+ Added GTQTC - The terminal based on QT framework - files.
NOTE: This is a proof of concept and needs an expert
brain. I will request Przemek to set the basic GT framework
in place. Rest will be quiet easy, easy than Windows itself.
demoqtc.exe remains in the memory after closing it with
X button. I have tried hard to set it right but have faised so far.
So you may need to kill it from task manager.
* harbour/contrib/gtwvg/tests/demowvg.prg
+ Added My_Alert() function which you can copy and
paste in your GTWVG linked applications to have a GUI
replacement of Alert() funtion.
* tests/bnch_win.bat
* tests/speedtst.prg
+ Added --stdout option to restore old feature to redirect output
to a file. Needed for bnch_win.bat.
+ In normal mode output will be saved in a file with the same name
of the executable with .txt extension. Makes it easier to make
side-by-side tests.
! Fixed SVN EOL.
* harbour/source/vm/Makefile
* harbour/source/vm/vmmt/Makefile
+ harbour/source/vm/hvmall.c
% added optional compilation HVM core files as single unit.
It allows to use interprocedural optimizations for all defined
functions. It's useful when compiler does not support IPO at link
time. It should give some noticeable speed improvement for compilers
which can benefit from such optimizations, f.e. GCC, ICC, MSVC.
In my Linux box (GCC 4.3) it gives ~7% speed improvement in
speedtst.prg linked with ST HVM and a little bit more in MT mode.
It's interesting that it also reduces the HVM library size.
At least for GCC builds.
Set HB_HVM_ALL=yes envvar to enable such compilation.
Warning some compiler may not compile such long single C file.
* source/common/hbver.c
+ Added skeleton for hb_verHostCPU()
* source/rtl/trace.c
! HB_TRACESTRING() fixed potential GPF if non-string parameter
was passed.
* contrib/hbqt/generator/hbqtgen.prg
! Fixed demo to not refer to gtgui on non-Windows systems.
! Fixed RTE when source file isn't found. (not verified)
! Change EOL handling.
! Fixed to use portable path seps when generating demoqt.prg.
* contrib/hbqt/generator/qt45.qtp
! Fixed to use forward slashes. Didn't test if this broke non-*nix.
* contrib/hbqt/qth/QWindowsXPStyle.qth
! Fixed Windows specific QT function wrapper to compile on non-Windows.
* contrib/hbqt/qth/QPixmap.qth
! Deleted Windows specific HBITMAP related functions.
* contrib/hbqt/tests/hbqt.hbp
+ Added support for darwin
* contrib/hbqt/Makefile
* contrib/hbqt/generator/hbqtgen.prg
+ Added support for QT for Darwin official SDK package
I had to change the way headers are included to follow the
QT standard and pass each QT lib header dir on the command
line instead of using subdirs in #include directives.
; TODO: Probably this change should be applied to all .qth files,
but on Darwin it worked without this change for some reason.
* contrib/hbqt/tests/demoqt.prg
* contrib/hbqt/TQPixmap.prg
* contrib/hbqt/hbqt_utils.cpp
* contrib/hbqt/hbqt_qwidget.cpp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_qwindowsxpstyle.cpp
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_slots.h
* contrib/hbqt/hbqt_qpixmap.cpp
* Regenerated.
* harbour/contrib/hbqt/Makefile
* added /usr/include to list of directories scanned for QT header files
* harbour/contrib/hbole/olecore.c
! added missing return
* formatting and minor cleanup
* harbour/source/vm/arrays.c
* formatting
* harbour/source/vm/asort.c
! minor CA-Cl*pper compatibility fix - if sort codeblock returns
numeric value then it should be used as logical one (0 means FALSE)
* harbour/include/hbstack.h
* harbour/source/vm/estack.c
+ added macro to force static hb_stack declaration even if
HB_STACK_MACROS is internally used
* harbour/source/vm/initsymb.c
* harbour/source/vm/hashfunc.c
* harbour/source/vm/evalhb.c
* harbour/source/vm/pcount.c
* harbour/source/vm/runner.c
* harbour/source/vm/debug.c
* harbour/source/vm/pvalue.c
* harbour/source/vm/cmdarg.c
* harbour/source/vm/proc.c
* harbour/source/vm/eval.c
* harbour/source/vm/dynlibhb.c
* do not use hbvmopt.h if it's not necessary or use hbvmint.h instead
to clean all direct references to hb_stack variable
* harbour/contrib/hbqt/generator/hbqtgen.prg
- Removed WIN specific castings.
* harbour/contrib/gtwvg/wvgsink.c
! Commented out calls to hb_ToOutDebug().
* utils/hbmk2/hbmk2.prg
+ Added executable / dll compression using -compr switch.
hbmk2 uses UPX, which needs to be in PATH to work.
Not having UPX won't cause a fatal error even when -compr
switch is specified.