* contrib/hbplist
- contrib/hbrun/hbrunext.hbp
+ contrib/hbrun/hbrun.prg
+ contrib/hbrun/hbrun.hbp
+ contrib/hbrun/hbrun.1
* config/postinst.hbs
- utils/hbrun
* utils/Makefile
* Moved hbrun to contrib area.
; Now it can contain any contrib libs.
* Makefile
* contrib/Makefile
+ Changed script runner tool to hbmk2 (from hbrun).
So now hbrun is not required for build process.
* utils/Makefile
* package/harbour.spec
* INSTALL
* Changed to reflect that now hbmk2 runs the build scripts.
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.prg
+ Added hbrun_ProgrName() function to return runner executable name.
* utils/hbmk2/hbmk2.prg
+ Added experimental hbrun script runner "emulation" to hbmk2.
With a few differences:
- there is no interactive console
- it works only if filename with .hbs or .hrb is passed as first parameter
(which present a minor incompatibility for those using hbmk2
to compile .hbs scripts to executables)
- the default GT environment for scripts is GTCGI.
- scripts may request interactivity with HBRUN_GTINTERACTIVE()
function call. This will switch mode to GTWIN/GTTRM/GTDOS/GTOS2
depending on platform. Though interactive functions linked into
hbmk2 are very limited.
- only a limited set of functions and headers are available,
those which may be useful for cmdline apps.
(which means hbmk2 size didn't grow significantly after this
commit)
; The goal is to make it possible to replace hbrun with hbmk2
for Harbour build related scripts, and other simple user scripts.
* utils/hbrun/hbrun.prg
* Minor cleanups.
* Using HB_PROGNAME() instead of HB_ARGV( 0 )
* src/common/hbverdsp.c
+ Instead of adding "(UNICODE)" marker in build info for UNICODE
builds, now it will add "(WINANSI)" for non-UNICODE builds.
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
* Using more hb_StrFormat()
* contrib/hbnetio/utils/hbnetio/netiocon.prg
* Tweak to one cmd help.
* utils/hbrun/hbrun.prg
* Formatting.
* utils/hbmk2/hbmk2.prg
! Do not add .hbx file to input file list if the file doesn't
exist. This is to resolve the chicken-egg problem when
initially creating the .hbx file for a new project.
! Never use .hbx filename for forming the output name
and deciding about startup module.
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
+ Do not add duplicates to extern list.
(it may have only happened if renaming sources and
building without clean)
* contrib/hbrunext/hbrunext.hbp
* contrib/hbrunext/pullext.prg
* utils/hbrun/hbrun.prg
+ Will now show the list of available extensions if any is linked.
* INSTALL
* watt homepage update. [Tamas]
* contrib/make.hbs
+ Updated to use hbmk2 to create hbx files.
* contrib/3rd/sqlite3/sqlite3.hbc
* Fix for Minix. From Tamas.
* contrib/hbblink/hbblink.hbx
* Updated.
* utils/hbmk2/hbmk2.prg
* Refinements in hbx related console feedback.
* contrib/hbplist
+ Added hbrunext to contrib list, so it's now built for everyone.
; It also builds nicely using full shared mode (on win platform
with '-env:__HB_DYN__=_dll -shared' options). .exe is 1MB with
mingw.
But, there is one catch, harbourmt.dll and harbour.dll are mixed
(mt pulled by hbrunexp, st pulled by contrib dlls),
which is tricky business. What's best solution for this? (Obviously,
building both ST and MT versions of all .dlls doesn't seem like
a very good idea)
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.es_PE.po
+ Added 'requests=' command to .hbc files.
* utils/hbrun/hbrun.prg
+ Added my name to copyright banner.
* utils/hbmk2/hbmk2.prg
+ Add -D__HBEXTREQ__ whenever an .hbx module is present in a project.
* contrib/hbpost.hbm
- Delete manual -D__HBEXTREQ__. Now automatic.
* utils/hbmk2/hbmk2.prg
+ Added -request= option to force linking any custom function/procedure
to target executable.
* contrib/hbrunext/hbrunext.hbp
* Replaced small hack using -main= to force linking, with -request= option.
* utils/hbmk2/hbmk2.prg
* config/beos/gcc.mk
* config/qnx/gcc.mk
* config/bsd/gcc.mk
* config/wce/mingwarm.mk
* config/vxworks/gcc.mk
* config/minix/gcc.mk
* config/darwin/gcc.mk
* config/hpux/gcc.mk
* config/win/mingw.mk
* config/linux/gcc.mk
* config/cygwin/gcc.mk
* config/symbian/gcc.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
! Separate -Wimplicit-int and -Wimplicit-function-declaration
so that they are added to cflags only when not in cpp mode.
; Patch by Tamas.
* utils/hbmk2/hbmk2.prg
+ Added -manifest= hbmk2 option for -hbexe/-hbdyn targets on
Windows platform. (all compilers supported)
Pls test.
; To generate manifests with -hbdyn and pocc/msvc compilers,
use -dflag=-manifest (or any other manifest related options
their linker support)
; TOFIX: bcc's resource compiler doesn't work in -inc mode.
* utils/hbmk2/hbmk2.prg
+ Added "nCOMPVer" variable for hbmk2 plugins. This returns
C Compiler version, which currently gives results for
mingw and msvc.
* utils/hbmk2/hbmk2.prg
+ Implemented experimental link script for mingw compilers with
-hbdyn targets. If it works out it can be extended to -hbexe
outputs, too. With further work it can be extended for os2 and
dos platforms. I will only do this if someone actually
reports such problems and can do tests.
; Please retest mingw build with HBQT contrib enabled, long HB_BUILD_NAME,
and HB_BUILD_CONTRIB_DYN=yes, and also normal cases.
* utils/hbmk2/hbmk2.prg
+ Adding clib3s lib to system lib list for win/watcom when
in -hbdyn mode. This is to fix link errors of 3rd (non-Harbour)
dynamic libs in HB_BUILD_CONTRIB_DYN=yes mode.
I have no idea why it's needed, so please extended or tweak
this fix if you have a better understanding of it.
(maybe the lib should be add for all platforms, or for
all link modes, etc)
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
+ Enabled for win/watcom. I don't know since when it builds and
what fixed it, so it's possible it's still broken with older
watcom verions. Now it builds fine with 1.9.
; TOFIX: watcom still has problems with missing externals when
building hbwin dll:
Error! E2028: IID_IDispatch is an undefined reference
Error! E2028: IID_IOleObject is an undefined reference
Error! E2028: IID_IUnknown is an undefined reference
Error! E2028: GUID_NULL is an undefined reference
Error! E2028: IID_IProvideClassInfo2 is an undefined reference
Error! E2028: IID_IProvideClassInfo is an undefined reference
Error! E2028: IID_IConnectionPointContainer is an undefined reference
Error! E2028: IID_IEnumVARIANT is an undefined reference
gtwvg dll:
Error! E2028: IID_IPicture is an undefined reference
and hbodbc dll:
Error! E2028: _SQLSetStmtAttrW@16 is an undefined reference
Any idea?
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
+ Keep order of filter lists.
* utils/hbmk2/hbmk2.prg
! Use _hbmkcpp_<cFirstFile>.cpp (instead of _hbmkcpp.cpp) on
non MS-DOS platforms.
* harbour/utils/hbmk2/hbmk2.prg
! do not use the first source file name to set hbmk[ _HBMK_cPROGNAME ]
when -gh switch is used - in such case multiple files are generated
so there is no single output file.
+ added support for incremental builds when -gh option is used
! clean .hrb files when -gh and -clean options are used
! clean .ppo, ppt and .pot files when -clean option is used in
incremental mode.
! use _hbmkaut_<cFirstFile>.[r]c instead of _hbmkaut.[r]c on
non DOS platforms to resolve name conflicts in multitarget builds
% do not check dependencies when -clean option is used
% do not rebuild/update .po files when -clean option is used
* added info message "Target(s) up to date." when none of
.hrb file have to be rebuild in -inc mode
; TODO: copy .hrb files created in -workdir to output directory
specified by -o option or to the current one
; NOTE: please verify above modifications
* src/rtl/dirdrive.c
+ Added HB_DIRCREATE(), which is same as MAKEDIR() C5.3 function,
but it's always available, not just when HB_COMPAT_C53 is enabled.
+ Added HB_DIRDELETE(), which is same as DIRREMOVE() C5.3 function,
but it's always available, not just when HB_COMPAT_C53 is enabled.
* contrib/hbnetio/tests/netiotst.prg
* contrib/hbnetio/tests/netiot03.prg
* contrib/hbfimage/tests/fitest.prg
* contrib/hbide/idesaveload.prg
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.prg
* tests/wcecon.prg
* tests/flink.prg
* bin/hb3rdpat.hbs
* examples/hbdoc2/gentpl.prg
* Replaced MakeDir() with universally available hb_DirCreate().
; TODO: same in config/postinst.hbs (delayed to avoid a million
false bug reports)
* src/rtl/Makefile
+ src/rtl/hbfilehi.prg
+ Added generic file/dir/path handling functions.
They are taken from hbmk2 code, added parameter checking,
did two minor change to DirBuild() to be generic,
renamed to have HB_ prefix.
Please note the parameter list and any details are
subject to change yet, IOW these APIs are not yet finalized:
hb_cwd() -> <cPath>
hb_PathNormalize( <cPath> ) -> <cPath>
hb_PathMakeAbsolute( <cPathRel>, <cPathAbs> ) -> <cPath>
hb_PathMakeRelative( <cPathBase>, <cPathTarget>, <lForceRelative> ) -> <cPath>
hb_DirAddPathSep( <cDir> ) -> <cDir>
hb_DirDelPathSep( <cDir> ) -> <cDir>
hb_DirBuild( <cDir> ) -> <lSuccess>
hb_DirUnbuild( <cDir> ) -> <lSuccess>
hb_FNameDirGet( <cFileName> ) -> <cDir>
hb_FNameNameGet( <cFileName> ) -> <cName>
hb_FNameNameExtGet( <cFileName> ) -> <cNameExt>
hb_FNameExtGet( <cFileName> ) -> <cExt>
hb_FNameExtDef( <cFileName>, <cDefExt> ) -> <cFileName>
hb_FNameExtSet( <cFileName>, <cExt> ) -> <cFileName>
hb_FNameDirExtSet( <cFileName>, <cDirNew>, <cExtNew> ) -> <cFileName>
; TODO: Review, clean interface.
; TODO: Use these functions in .hbs files, utils, hbide.
* include/harbour.hbx
* Updated.
* utils/hbmk2/hbmk2.prg
* One internal function renamed.
* harbour/utils/hbmk2/hbmk2.prg
! small fix in FN_FromArray() which caused that relative paths were
converted to the root directory, i.e. -workdir=. was not working
correctly
* utils/hbmk2/hbmk2.prg
+ Enabled to use link scripts with msvc compilers, to avoid
too long cmdline problems. (experienced when creating
qtgui lib in dynamic version (HB_BUILD_CONTRIB_DYN=yes)
with HB_BUILD_NAME set to a longer name, so it was quite
a stress case and should not cause a problem for most
users.)
* harbour/src/pp/ppcore.c
! fixed to not strip path in .d dependencies list for files included
from -I<directories>
* harbour/utils/hbmk2/hbmk2.prg
% do not use FindHeader() for dependencies list extracted from .d
files - they should contain full paths so it's not necessary
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.*.po
! Fixed RTE in FindNewerHeaders() when using autohbc feature.
(it's regression from around 2010-08-05 15:58 UTC+0200 Viktor Szakats)
+ Added -head=dep option to help.
* harbour/utils/hbmk2/hbmk2.prg
! fixed dependences checking for -head=full and @.clp files
+ added automatic dependencies checking for .prg files using .d
files generated by harbour compiler (-head=dep)
; TODO: extend it for .c files and GCC based compilers
* src/rtl/listbox.prg
* Internal var renamed to reflect its type.
* src/rtl/einstvar.prg
* src/rtl/einstv52.prg
* Fixed to use manifest constants.
* utils/hbrun/hbrun.prg
! Fixed to allow case-insensitive match for headers on
non-*nix platforms.
* harbour/utils/hbmk2/hbmk2.prg
! remove .d files from .hbmk working dir when -clean option is used
! do not ignore dependencies list read from .d files
* check dependencies specified by .d files for .c and .o files
generated from .prg ones
% some minor optimizations
; TOFIX: it's not safe to call FindNewerHeaders() with 3-rd parameter
set to NIL (RTE) and HBMK2 does it when -autohbc option is used
* utils/hbmk2/hbmk2.hu_HU.po
! Minor fix.
* utils/hbmk2/hbmk2.prg
! Resolved TOFIXes related to cygwin.
+ Added -head=dep option. Nothing fancy, just making room for it.
* utils/hbmk2/hbmk2.prg
+ Changed to use hb_milliSeconds() to measure build time
when using -debugtime option. This will now work precisely
for builds taking more than 1 day.
* utils/hbmk2/hbmk2.prg
+ Added experimental support for creating extern headers in .hbx.
It's currently only supported for static libs (-hblib mode),
and only for gcc based compilers (can be extended to all
platorms where 'nm' tool is available), msvc, pocc, watcom
and bcc compilers. Some of these have not been tested.
The feature implements the same functionality which already
exists in Harbour build system (enabled with HB_REBUILD_EXTERN=yes),
but now integrated into hbmk2 and with few minor enhancements.
* utils/hbmk2/hbmk2.prg
! Minor typo in help text.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.es_PE.po
+ Updated from source.
* contrib/hbmxml/tests/rem.xml
* contrib/hbmxml/tests/rem_err.xml
! Added missing EOL @ EOF.
* contrib/hbunix/hbposix.h
+ Added generic macro to accept both logical and numeric type for
boolean-like input parameters.
* contrib/hbunix/tests/testdmn.prg
* contrib/hbunix/daemon.c
+ UNIX_DAEMON(): Changed to accept numeric value for logical parameters.
+ UNIX_DAEMON(): Changed to return numeric value.
; Patch by Tamas.
* harbour/include/hbcomp.h
* do not inherit in macrocompiler -z compile time switch when -kc is
also used
* harbour/src/common/expropt2.c
* disable logical expression optimization (reduction) in macrocompiler
when -kc compile time switch is used.
* harbour/config/beos/gcc.mk
* harbour/config/qnx/gcc.mk
* harbour/config/bsd/gcc.mk
* harbour/config/wce/mingwarm.mk
* harbour/config/vxworks/gcc.mk
* harbour/config/hpux/gcc.mk
* harbour/config/darwin/gcc.mk
* harbour/config/dos/djgpp.mk
* harbour/config/win/mingw.mk
* harbour/config/linux/gcc.mk
* harbour/config/cygwin/gcc.mk
* harbour/config/symbian/gcc.mk
* harbour/config/os2/gcc.mk
* harbour/config/sunos/gcc.mk
* harbour/utils/hbmk2/hbmk2.prg
* enable some important warnings in GCC builds using -W<name>... instead
of -Wall and -Wno-<name>... for warning level set to low.
It should help in backward compatibility with some older GCC versions.
* harbour/config/beos/gcc.mk
* harbour/config/qnx/gcc.mk
* harbour/config/bsd/gcc.mk
* harbour/config/wce/mingwarm.mk
* harbour/config/vxworks/gcc.mk
* harbour/config/hpux/gcc.mk
* harbour/config/darwin/gcc.mk
* harbour/config/dos/djgpp.mk
* harbour/config/win/mingw.mk
* harbour/config/linux/gcc.mk
* harbour/config/cygwin/gcc.mk
* harbour/config/symbian/gcc.mk
* harbour/config/os2/gcc.mk
* harbour/config/sunos/gcc.mk
* use -Wall -Wno-unused -Wno-pointer-sign -Wno-uninitialized
-Wno-switch -Wno-strict-overflow -Wno-main
instead of -W when warnings are not enabled with GCC based compilers.
Using only -W only is rather useless because this switch enables
warnings which can be usually ignored in 3-rd party code.
This modification should help in locating bugs introduced by us
to 3-rd party code, i.e. due to wrong header files used on some
platforms (we do not use autoconf assuming some default settings
what can be wrong in some cases). It should also not hide some
important/critical bugs in 3-rd party code.
This modification pacifies some common warnings which can be
ignored usually but it also enables some more important ones.
If it's necessary then we can tune it a little bit more and disable
some other warnings too.
It's possible that on some platforms using very old GCC versions
some of -W* switches are not supported - please make tests and
inform us about problems.
* harbour/utils/hbmk2/hbmk2.prg
* use -Wall -Wno-unused -Wno-pointer-sign -Wno-uninitialized
-Wno-switch -Wno-strict-overflow -Wno-main
instead of -W when warning level is set to low with GCC based
compilers
* harbour/src/rtl/cdpapi.c
* removed dummy assignment
* harbour/src/lang/msgpl852.c
* harbour/src/lang/msgplmaz.c
* harbour/src/lang/msgpliso.c
* harbour/src/lang/msgplwin.c
! fixed one message translation
* harbour/config/dos/watcom.mk
* harbour/config/win/watcom.mk
* harbour/config/linux/watcom.mk
* harbour/config/os2/watcom.mk
* disable explicitly some Open Watcom warnings in 3rd party code
which we can safely ignore when HB_BUILD_WARN='no'
* harbour/utils/hbmk2/hbmk2.prg
* disable explicitly some Open Watcom warnings in 3rd party code
which we can safely ignore when warning level is low
* harbour/src/codepage/cpcs852.c
* harbour/src/codepage/cpcskam.c
* harbour/src/codepage/cpcsiso.c
* harbour/src/codepage/cpcswin.c
! switched from HB_CDP_ACSORT_INTERLEAVED to HB_CDP_ACSORT_NONE in
Czech code pages.
* harbour/config/win/bcc.mk
* disable explicitly some common BCC warnings in 3rd party code
which we can safely ignore when HB_BUILD_WARN=no
* harbour/utils/hbmk2/hbmk2.prg
* disable explicitly some common BCC warnings which we can safely
ignore when warning level is set to low
* harbour/contrib/hbmisc/bbabble.c
* removed unnecessary incrementation to pacify compile warning
* utils/hbmk2/hbmk2.prg
! Fixed typo causing not recognized -hbl (without parameter)
resetting option. Thanks to Mindaugas for the find.
* contrib/hbhttpd/core.prg
! Changed UErrorHandler() to not issue a BREAK, to avoid
new Harbour compiler behavior making it impossible
to close a PROCEDURE with RETURN.
* contrib/hbhttpd/log.prg
* Reworked a little bit.
* utils/hbrun/hbrun.prg
! Do not process HB_INSTALL_INC to find external headers.
This envvar is no longer supported and it only makes
things more difficult now that hbrun has embedded headers.
Also removed adding the host dir of input .hbs/.prg file
as -I option (it's processed automatically by compiler).
So now hbrun uses exactly the same rules as harbour
compiler to find headers.
* utils/hbmk2/hbmk2.prg
! Adjusted the way Harbour dynlib is calculated for cygwin, after
making it a platform.
+ Added feedback when platform is redetected along compiler autodetection
process.
* contrib/hbzebra/hbzebra.hbp
+ contrib/hbzebra/d_hpdf.c
+ contrib/hbzebra/d_win.c
+ contrib/hbzebra/tests/testhpdf.prg
+ contrib/hbzebra/tests/testwin.prg
+ Added Windows DC renderer
+ Added libharu renderer
; TODO: rework current rendering solution. Thinking about
callback based solution, to give it a smoother layout.
Current system has too much interdependencies and
too much redundancy even in renderer "plugins".
* utils/hbmk2/hbmk2.prg
+ Readded PathNormalize() calls missed after prev modif.