* harbour/utils/hbmk2/hbmk2.prg
! disabled automatic generation of dll_hb_vmProcAddress()
in binaries linked with hbmaindllp library.
Such function should be attached to the code linked with
HVM on user request i.e. using some new HBMK2 switch.
* harbour/contrib/xhb/xhw32prn.prg
* added dummy WIN32BMP() function in non MS-Windows builds
* harbour/contrib/rddads/adsfunc.c
* added dummy ADSREGCALLBACK() and ADSCLRCALLBACK() functions
to Linux builds
* harbour/contrib/hbxpp/hbxpp.hbx
* harbour/contrib/hbqt/qtgui/hbqtgui.hbx
* harbour/contrib/hbqt/qtcore/hbqtcore.hbx
* automatically updated by HB_REBUILD_EXTERN=yes
* harbour/utils/hbrun/hbrun.prg
! fixed typo in my last commit - Thanks to Frank Van Nuffel for
information about the problem
+ harbour/src/lang/msgsv.c
+ harbour/src/lang/msgsvwin.c
+ added Swedish language modules by Klas Engwall
(borrowed from xHarbour with some small modifications - please verify)
* harbour/utils/hbrun/hbrun.prg
+ extended error message so it reports more precisely the problem
with user command.
+ use -n2 instead of -n for user command compilation
It allows to use:
DO <proc> [WITH <args,...>]
when <proc>.prg contains code without explicit startup procedure.
% removed useless hbrun_DirAddPathSep() - hb_FNameMerge() automatically
adds directory separator if necessary.
! changed the order of locating files without extension so files in
local directory are not hidden by file in PATH or hb_baseDir()
! interrupt execution when given .hbs or .prg file cannot be cleanly
compiled.
! generate error when file passed as in parameters cannot be found.
! do not strip quote characters from PATHs in *nix builds.0
! use in DOS builds "~harbour" instead of ".harbour" as directory name
for hbrun history file.
; Possible TODO: add function:
HB_FNameCheck( <cFileName> ) -> <lNameOK>
which will check if <cFileName> is correct and can be used
with given file system. <cFileName> should contain full path
so it can be verified with correct file system. Such extension
should eliminate code which disable unconditionally long file
names in all DOS builds.
* utils/hbmk2/hbmk2.prg
+ Added MS-DOS compiler (djgpp) detection when used on *nix platform
in cross-compile scenario.
BTW I've also found that I had already implemented win and wce
autodetection based on global.mk, so it' supposed to work. Please
test it.
* config/global.mk
- Deleted a variable not used anymore.
* utils/hbmk2/hbmk2.prg
+ Added workaround for mingw compiler problem where it
tends to leave zero byte long objects in cases when the
build process gets (manually) aborted.
Please check it and report any potential performace
problems (hbmk2 needs to read the objects' size from
the directory listing). Maybe we will need a Harbour
function which returns both timestamp and size in one
call.
* contrib/hbodbc/todbc.prg
- Deleted 'FROM HBCLASS' from class declarations.
Thanks to Manu for the report.
* contrib/hbxpp/dbfuncsx.prg
+ Added XPP_DBUSEAREA() which emulates non-Clipper compatible
behavior of Xbase++ DBUSEAREA() implementation.
Based on code and information sent by Shum
* contrib/gtwvg/wvgwing.c
! Fixed compilation in newer BCC versions (6.3).
Fix suggested by YD0DKL
* package/winuni/mpkg_win_uni.bat
+ Added copyright msg.
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.rc
* Changed to use plain number for icons, instead of 'ICONn' name
to ease addressing them in some situations.
; INCOMPATIBLE: If you used
hb_GTInfo( HB_GTI_ICONRES, "ICONn" )
to set app icon at runtime, change it to:
hb_GTInfo( HB_GTI_ICONRES, n )
* utils/hbmk2/hbmk2.prg
* config/global.mk
* INSTALL
! HB_BUILD_NAME/-build= no longer supports pathseps (backslash/fwdslash)
(it would need costly solution to resolve compilation of
hbrun.rc, maybe more. It's also "cleaner" this way, since the
dir structure is not altered)
* utils/hbmk2/hbmk2.prg
+ Harbour environment autodetection will now work if pathseps
are present in HB_BUILD_NAME/-build= setting.
(so now it's in sync with Harbour build in this regard)
* harbour/include/hbclass.ch
% small modification to reduce lock time
* harbour/src/common/hbdate.c
! fixed hb_timeUTCOffset() in MS-Windows builds to work in some
countries/windows versions where GetTimeZoneInformation() returns
TIME_ZONE_ID_INVALID but sets correct tzInfo.StandardBias field.
* harbour/package/mpkg_ver.sh
! fixed to set correctly root path after moving build scripts to
./package subdirectory
* harbour/utils/Makefile
! do not build executable files when HB_BUILD_PARTS is set to 'lib'
* harbour/src/rtl/filesys.c
* unified hb_fsSeek[Large]() return value when seek operation cannot
be executed for given file handle. Now it's 0 for all platforms.
* harbour/include/hbapicls.h
* harbour/src/vm/classes.c
+ added new public C function
PHB_SYMB hb_clsFuncSym( HB_USHORT uiClass )
It returns class function symbol or NULL.
* harbour/ChangeLog
* harbour/config/os2/gccomf.mk
* harbour/include/hbpcode.h
* harbour/include/hbdebug.ch
* harbour/include/hbmath.ch
* harbour/include/hbgfx.ch
* harbour/src/vm/classes.c
* harbour/utils/hbmk2/hbmk2.prg
* removed dummy trailing spaces at EOLs
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Switched .po files to UTF-8.
+ Set svn:mime-type accordingly.
; NOTE: Make sure to use UTF-8 aware editor to edit these files
from now on. These are the first UTF-8 files in hb repo.
* INSTALL
+ Added .xz source file. Thanks Tamas for installing it
required tools onto the nightly server.
* package/mpkg_win_nightly.bat
* Minor to reqs.
* utils/hbmk2/hbmk2.prg
+ Added extension to license. Pls read it, especially projects
including hbmk2 or modified version of hbmk2 (f.e. MiniGUI).
Help text and documentation is now covered by Creative Commons
Attribution-ShareAlike 3.0.
Plus some restriction to not tear hbmk2 off of Harbour Project,
to clearly show modified nature and always distribute modified
source.
My intent is to leave hbmk2 as coherent part of Harbour,
possibly unmodified and my name not stripped.
* config/global.mk
% Minor opt.
* package/mpkg_nightly.sh
! Harmless typo.
* package/winuni/RELNOTES
* Updated.
* INSTALL
+ Some binary link.
* utils/hbmk2/hbmk2.prg
! Changed the way links are installed. This should fix it
for win platform.
* Will now delete link before trying to create it in install phase.
* include/hbcomp.h
* src/macro/macro.yyc
* src/macro/macro.y
* src/macro/macrolex.c
* src/compiler/hbmain.c
* src/compiler/complex.c
* src/compiler/harbour.yyc
* src/compiler/harbour.y
* Changed prefix used for bison generated function prefix
(hb_comp -> hb_comp_yy, hb_macro -> hb_macro_yy)
; Pls review.
This avoids collision between hb_macroError/hb_macroerror
for obsolete tools like bcc implib which uses case-insensitive
symbol lookup by default)
* package/winuni/mpkg_win_uni_extra_copy.bat
+ Added trick to generate special implib for core .dlls so
that now bcc can use the regular Harbour one and doesn't
need the special '-bcc' postfixed version to be shipped.
An ugly trick for an obsolete compiler.
(release process now requires bcc implib tool because of this)
* utils/hbmk2/hbmk2.prg
+ Added -c option to implib calls. This fixes implib generation
for certain .dlls, like OpenSSL.
* contrib/gtalleg/gtalleg.hbc
! Fixed allegro-config command to not contain output redirection.
* contrib/hbcurl/hbcurl.hbc
! Fixed lib name on non-win platforms.
* contrib/hbgd/hbgd.hbc
! Fixed gd lib name on Linux.
* contrib/hbodbc/hbodbc.hbp
* contrib/sddodbc/sddodbc.hbp
* contrib/hbssl/hbssls.hbp
* contrib/hbcurl/hbcurl.hbc
* contrib/hbcurl/hbcurls.hbp
% Using allwin instead of win|wce.
* utils/hbmk2/hbmk2.prg
+ Added trick to not corrupt version numbers in libnames when
adding extension. (it will check for extensions beginning
with numeric and add instead of replace extension in such case)
! Fixed pkg-config/*-config parser when result contained LF chars.
* config/postinst.hbs
* Do not create dynlib symlink on non-*nix platforms.
; Now HB_BUILD_CONTRIB_DYN works for all contribs also on Linux.
; TODO: Shouldn't harbour-2.1.0.so be called harbour.so.2.1.0 ?
; TODO: Creating versionless links for contribs.
* contrib/make.hbs
+ Generalized the way dynamic lib dependencies are found
to make it work on *nix systems, too.
* include/harbour.hbx
+ src/rtl/libnamec.c
* src/rtl/libname.prg
* src/rtl/Makefile
+ Added HB_LIBEXT() and HB_LIBPREFIX() functions.
* utils/hbmk2/hbmk2.prg
+ Added "platform", "compiler", "cpu", "buildname", "dynsuffix"
to --hbinfo returned data.
* INSTALL
+ Documented HB_BUILD_CONTRIB_DYN setting. The default is
'no', and if set to 'yes', the build system will create
dynamic lib versions of the contribs.
* src/Makefile
* utils/hbformat/Makefile
* utils/hbi18n/Makefile
* utils/hbtest/Makefile
* config/global.mk
* config/dos/watcom.mk
* config/dos/djgpp.mk
* config/dyn.mk
* config/rules.mk
* INSTALL
* Renamed HB_BUILD_DLL to HB_BUILD_DYN.
* ChangeLog
* include/harbour.hbx
* src/rtl/Makefile
+ src/rtl/libname.prg
+ tests/libname.prg
+ Added HB_LIBNAME( <cDynLibName>[, <cDynLibDir> ] ) -> <cOSDynLibName>
Serves to convert a raw dynlib name, f.e. "hbct" to OS specific
notation, by adding platform specific extension, lib name prefix and
optional directory
* utils/hbmk2/hbmk2.prg
! Fixed dynlib prefix for symbian
* utils/hbmk2/hbmk2.prg
! Fixed to not propagate _ERRLEV_STOP from sub-projects.
% -stop will not stop processing any further cmdline options.
* Avoided one dangerous IF instruction.
* contrib/hbqt/hbqt_commons.hbm
% If static mode is not requested stop before loading plugins.
* config/global.mk
! Always set HB_REBUILD_* options to 'no' when HB_BUILD_PKG=yes.
* config/global.mk
! Fixed setting LD_LIBRARY_PATH under pre-3.81 GNU Makes.
+ Will now set HB_SYSLOC=yes when creating .tgz packages which
are meant to be installed to system locations. (didn't test
this one)
+ Will now set HB_INSTALL_DOC to /share/doc/harbour on *nix systems.
! Fixed to set HB_INSTALL_MAN to /share/man (instead of /man) on
*nix systems.
; Please test/review these.
* config/postinst.hbs
+ Create directory for "root documents". They are now stored
in /share/doc/harbour for *nix.
! Fixed to store proper directory in ld.so.conf.d setting by
removing HB_INSTALL_PKG_TOP from the beginning of full dynlib
path.
* debian/rules
* package/harbour.spec
* package/harbour-win.spec.in
* package/harbour-wce.spec.in
! Use HB_INSTALL_PKG_TOP to denote the root of package dir structure.
; TODO: Change the name to HB_INSTALL_PKG_ROOT
; TODO: Optimize variable usage.
; TOFIX: Use HB_INSTALL_DYN instead HB_INSTALL_LIB in context of
dynamic libs in postinst.hbs and package scripts.
* package/harbour.spec
! Fixed to honor HB_BUILD_NAME in local LD_LIBRARY_PATH setting.
(is it needed?)
* INSTALL
- Deleted note about GNU Make 3.81.90
3.82 is out and the bug was fixed.
! Updated mpkg_src.sh location.
* contrib/make.hbs
* Do not create dynlib, .hbd, .hbx if the main build process
returned with non-zero errorlevel.
* utils/hbmk2/hbmk2.prg
+ Return errorlevel when -stop is used in project.
+ Use manifest constants for errorlevels.
* config/hbextern.hbs
* Local function renamed.
* contrib/xhb/xhb.hbx
* contrib/hbxpp/hbxpp.hbx
* Regenerated.
* src/vm/pvaluehb.c
! Typo in comment.
* utils/hbmk2/hbmk2.prg
% Implemented optimized header parser code created by Przemek.
With these additions/modifications from previous algorithm:
+ Use FindHeader() to locate the referenced headers.
+ Use different algorithm to find C vc PRG headers.
% Completely skip known standard system headers.
% Do not go down to headers included as system (using <>)
IOW Check their timestamp but don't parse it for sub-headers.
Please review it, it was quite a tough task, so I may have
missed something. Here my reference build time went down
from ~4 to ~2.5secs.
! Above implementation had the nice side effect that it fixed
-autohbc feature in -inc mode.
! Fixed header finder code to always look in parent dir
(and don't look in current dir in such case).
I'd appreciate if this function (FindHeader() would be peer-reviewed
to verify if it really matches the way how Harbour and C compilers
try to find headers.
* config/postinst.hbs
! Fixed typo in a recent commit causing RTE.
* config/hbextern.hbs
* Hide stderr in lib listing call.
* contrib/hbcurl/hbcurl.c
% Use '#include <>' to refer to curl header.
* utils/hbmk2/hbmk2.prg
+ Added ${hb_dynsuffix} macro which returns a dynlib suffix
value compatible with the naming system used for Harbour core
dynlib (-x64, -wce-arm, -bcc, etc..)
% Internals optimized to use dynsuffix value when calculating
harbour core dynlib name.
! Fixed to not require macros inside filters to be uppercases.
(as a side effect now unknown macro names will be passed
as is to getenv() to check for possible envvar value)
* contrib/hbpost.hbm
+ Will now use ${hb_dynsuffix} when forming output name in
-hbdyn mode. So f.e. for x64 targets an '-x64' suffix will
be used, which matches with the one used with core harbour
dynlib. Also bcc targets will get -bcc postfix.
+ Will now use ${hb_dynsuffix) when forming implib output name
if it's not empty (for x86, ia64, wce and bcc in practice).
* contrib/make.hbs
* config/postinst.hbs
! Display msg about extern generation only if it was really started.
* config/hbextern.hbs
! Fixed to check for the presence of input file.
* utils/hbrun/hbrun.prg
+ Will now add the script's home directory to the header dir list.
* contrib/make.hbs
* config/postinst.hbs
+ config/hbextern.hbs
+ Moved extern header generation low level logic to separate script.
+ Added feedback about extern generation.
+ Moved core extern header generation logic to postinst.hbs.
! Minor fix to output when postinst is used in non-install phase.
* contrib/global.mk
+ Displays HB_REBUILD_EXTERN setting.
* Makefile
* Changed to always execute config/postinst.hbs, not just in
install phase.
* include/hbextudd.ch
* include/hbextsca.ch
* include/hbextcdp.ch
* include/hbextlng.ch
* include/hbextern.ch
+ Replaced content with automatically generated one.
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/ideshortcuts.prg
* Deleted "just" functions and replaced them with HB_SYMBOL_UNUSED()
macro, which has no runtime overhead.
* contrib/hbide/hbide.hbp
- contrib/hbide/iderequests.prg
- Deleted requesting HBQT component via "just" function. Now it's
done by EXTERNAL statements. BTW this function was not called,
so it was ineffective. Pls correct me if I missed the point
of the old solution.
* contrib/make.hbs
+ Will now automatically generate EXTERN lists for libs if
using HB_REBUILD_EXTERN=yes setting and GCC compiler.
Pls note that after regeneration a new build pass is
required to reflect the changes in final binaries.
NOTE: I chose the .hbx extension for EXPORT code.
Pls comment on it (adding a postfix to regular
.prg or .ch extension is not an option as it won't
fit the 8.3 filename limit).
* Changed --hbinfo call to pass parameters just like the
"real" hbmk2 call, to get correct information about
the project.
% Minor optimizations.
* utils/hbmk2/hbmk2.prg
+ --hbinfo extended to return 'outputname'.
* INSTALL
+ Documented HB_REBUILD_EXTERN
* utils/hbmk2/hbmk2.prg
+ Added trick to filter out target lib name from input lib list -hblib
mode and to filter out target implib name from input lib list in
-hbdyn mode. This fixes problems when linking -hbdyn by speccing both
project .hbp and .hbc files. I'm still thinking of a better solution
to solve this problem.
* contrib/make.hbs
! Fixed recent bug in filter processing.
* include/hbapi.h
+ Added HB_EXPORT to hb_releaseCPU(), hb_idle*() and hb_cmdarg*() functions.
* contrib/hbide/idemisc.prg
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* Cleanup.
* utils/hbmk2/hbmk2.prg
! Fixed regression where -head=native would miss the header dir options
when doing the header detection.
+ Added TOFIX about (experimental) -autohbc not working with -inc option.
* utils/hbmk2/hbmk2.prg
% normalize rebased sources paths (mingw, *nix/gcc).
- contrib/hbqt/generator/qt45.qtp
+ contrib/hbqt/generator/qtcore.qtp
+ contrib/hbqt/generator/qtnetwork.qtp
+ contrib/hbqt/generator/qtgui.qtp
* Split monolithic .qtp to components.
! Moved QUiLoader to qtgui (from qtcore) to fix circular component
dependency.
* contrib/hbqt/generator/hbqtgen.prg
+ Rewrote to avoid internal tricks to detect which class belongs to
which component.
+ Changed to create GC related functions on a per-component bases
(instead of monolithic hbqt_garbage.h).
* Changed to save documents using core hbdoc API.
% Deleted some unused functions and variables.
; After these changes the generator doesn't have any hard-coded
information about components, so it can be extended with new
one via new .qth files.
* contrib/hbqt/qtgui/*
* contrib/hbqt/qtcore/*
* contrib/hbqt/qtnetwork/*
* contrib/hbqt/doc/en/*
* Regenerated.
- contrib/hbqt/qtcore/TQUiLoader.prg
- contrib/hbqt/qtcore/QUiLoader.cpp
+ contrib/hbqt/qtgui/QUiLoader.cpp
+ contrib/hbqt/qtgui/TQUiLoader.prg
! Moved QUiLoader to qtgui (from qtcore) to fix circular component
dependency.
* contrib/hbqt/qth/QUrl.qth
! Fixed to not inherit from class present in qtgui.
(fixes dependency)
* contrib/hbqt/hbqt.h
- contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbevents.h
* contrib/hbqt/hbqt_hbslots.h
+ contrib/hbqt/qtcore/hbqtcore_garbage.h
+ contrib/hbqt/qtgui/hbqtgui_garbage.h
+ contrib/hbqt/qtnetwork/hbqtnetwork_garbage.h
- Deleted central header for GC functions.
+ Added per component GC function header.
- contrib/hbqt/filelist.hbm
- contrib/hbqt/hbqt.hbc
- contrib/hbqt/hbqt.hbp
- contrib/hbqt/hbqtmain.hbp
- contrib/hbqt/hbqtmains.hbp
- Deleted central hbqt holder project and .hbc file.
+ contrib/hbqt/hbqtcore.hbc
* contrib/hbqt/hbqtcore.hbp
* contrib/hbqt/hbqtcores.hbp
* contrib/hbqt/hbqtgui.hbp
* contrib/hbqt/hbqtguis.hbp
+ contrib/hbqt/hbqtgui_filelist.hbm
* contrib/hbqt/hbqtnetwork.hbp
* contrib/hbqt/hbqtnetworks.hbp
+ contrib/hbqt/hbqtcore_filelist.hbm
+ Merged qtmain lib content to qtcore and qtgui. This finally
drops the need for an additional wrapper lib compared to qt ones,
and it fixes build dependencies.
Formerly libs had circular dependencies, now qtcore is the
main lib and other qt* libs depend on this central one.
* contrib/hbqt/hbqt_common.hbm
+ Added qtcore to header path list.
* contrib/hbqt/tests/hbmk.hbm
* contrib/hbqt/tests/wvtqt.hbp
* contrib/hbxbp/hbxbp.hbc
* Updated to include per component .hbc files instead of
central hbqt.hbc.
* contrib/hbplist
* Changed central hbqt project to its three components.
* contrib/hbxbp/tests/wvtqt.hbp
! Fixed hbc reference.
; After these changes, the qt lib layout is much cleaner and
it makes it possible to build .dll versions of them. Except
still one issue.
; TODO: Further cleanup to file layout. Componentize docs,
qth files, move files in central dir to component dirs.
; TOFIX: hbqtcore references qtgui in QMESSAGEBOX() which is a
hbqtgui function. This has to be fixed. hbqtcore.dll is
not build because of this.
The easiest would be to rewrite HBQT_MESSAGEBOX() in
C++ to use QMessageBox QT class directly and place
this function into hbqtcore.
Pritpal, can you do it?
; TOFIX: If this is done it would be also good to fix hbqtcore -> qtgui
dependencies. Currently this is QMessageBox plus some stuff
referenced from hbqt_hbqabstractitemmodel.cpp. This latter
can pbly be solved by moving this HB class to hbqtgui.
* utils/hbmk2/hbmk2.prg
* Changed to not give fatal error if cmdline (or .hbp)
didn't contain any sources. Just warn. Required for hbqt.hbp,
which is a holder project without own output.
; NOTE: BTW HBQT fails very badly on any dynamic lib creating
attempt, and the reason is that it's still a monolithic
lib under the surface, just split some files into separate
libs to avoid cmdline length.