* INSTALL
* Documented how to [re]build one specific contrib package.
* INSTALL
* contrib/make.hbs
* Using 'contrib package' instead of 'contrib lib'.
* package/winuni/mpkg_win_uni_extra_copy.bat
* Do not install contrib utils sources anymore. If they
are important, they can be built as part of regular build
a shipped as binary.
* package/winuni/mpkg_win_uni_extra_copy.bat
* contrib/make.hbs
* contrib/hbqt/generator/hbqtgen.prg
- contrib/hbmysql/hbmysql.hbi
- contrib/hbmysql/Makefile
- contrib/gtalleg/gtalleg.hbi
- contrib/gtalleg/gtallegs
- contrib/gtalleg/Makefile
- contrib/hbct/Makefile
- contrib/sddmy/sddmy.hbi
- contrib/sddmy/Makefile
- contrib/hbodbc/Makefile
- contrib/xhb/Makefile
- contrib/sddfb/sddfb.hbi
- contrib/sddfb/Makefile
- contrib/hbtpathy/Makefile
- contrib/hbgt/Makefile
- contrib/hbsqlit3/Makefile
- contrib/hbmzip/Makefile
- contrib/hbblat/Makefile
- contrib/hbblat/hbblat.hbi
- contrib/hbqt/qtgui/qtguis
- contrib/hbqt/qtgui/Makefile
- contrib/hbqt/qtcore/qtcores
- contrib/hbqt/qtcore/Makefile
- contrib/hbqt/qtcore/filelist.mk
- contrib/hbqt/Makefile
- contrib/hbqt/detect.mk
- contrib/hbqt/filelist.mk
- contrib/hbqt/hbqts
- contrib/hbqt/gtqtc/gtqtcs
- contrib/hbqt/gtqtc/Makefile
- contrib/hbqt/moc.mk
- contrib/hbqt/qtnetwork/filelist.mk
- contrib/hbqt/qtnetwork/qtnetworks
- contrib/hbqt/qtnetwork/Makefile
- contrib/hbfbird/hbfbird.hbi
- contrib/hbfbird/Makefile
- contrib/sddpg/sddpg.hbi
- contrib/sddpg/Makefile
- contrib/hbziparc/Makefile
- contrib/hbxbp/Makefile
- contrib/hbbz2/Makefile
- contrib/hbblink/Makefile
- contrib/hbnf/Makefile
- contrib/hbcurl/hbcurl.hbi
- contrib/hbcurl/hbcurls
- contrib/hbcurl/Makefile
- contrib/hbmemio/Makefile
- contrib/hbxpp/Makefile
- contrib/hbfship/Makefile
- contrib/hbcups/Makefile
- contrib/rddbmcdx/Makefile
- contrib/hbfoxpro/Makefile
- contrib/hbnetio/Makefile
- contrib/rddsql/Makefile
- contrib/hbhpdf/hbhpdf.hbi
- contrib/hbhpdf/Makefile
- contrib/gtwvg/Makefile
- contrib/hbpgsql/hbpgsql.hbi
- contrib/hbpgsql/Makefile
- contrib/hbclipsm/Makefile
- contrib/rddads/rddads.hbi
- contrib/rddads/Makefile
- contrib/sddsqlt3/Makefile
- contrib/hbfimage/hbfimage.hbi
- contrib/hbfimage/Makefile
- contrib/sddodbc/Makefile
- contrib/hbgd/hbgd.hbi
- contrib/hbgd/Makefile
- contrib/hbmisc/Makefile
- contrib/sddoci/sddoci.hbi
- contrib/sddoci/Makefile
- contrib/hbcomm/Makefile
- contrib/hbtip/hbtipssl
- contrib/hbtip/Makefile
- contrib/hbcairo/hbcairo.hbi
- contrib/hbcairo/Makefile
- contrib/hbwin/Makefile
- contrib/hbssl/hbssls
- contrib/hbssl/hbssl.hbi
- contrib/hbssl/Makefile
- contrib/hbsms/Makefile
- Deleted references to .hbi and GNU Make files in contrib
area. Now hbmk2 is used here to create the targets.
This has a few consequences:
- From now on *.hbp / *.hbc files need to be updated
whenever files are added, deleted or renamed. Pls remember it.
- hbmk2 will have to be updated in sync with the GNU Make
system when adding new platforms and compilers.
- in-place 'make' won't work, pls see new method in
INSTALL. (it may still change)
* contrib/hbqt/hbmk2_plugin_qt.hbs
+ Do not pollute output with meaningless error message, when
HB_WITH_QT=no is used.
* contrib/hbpgsql/postgres.c
! Fixed msvc C mode warning. (this one is valid, though I
couldn't find out why this is only reported in C mode,
there are also some other seemingly unfixable warnings
reported in C mode.)
* contrib/hbpre.hbm
+ Will now enable C++ mode by default for msvc compilers,
to stay in since with GNU Make behavior.
* utils/hbmk2/hbmk2.prg
! Fixed to not rebase dirs passed to -deptimplibs options.
! Fixed to stay silent but still fail when dependencies
are forcefully disabled.
! Reorganized msvc compiler version dependent options to
better handle the case when no compiler version is present
(to go with the less risky option in such case)
* config/global.mk
+ Added msvc64 and msvcia64 version detection.
* Renamed one variable to avoid being same as new hbmk2 macro.
* config/postinst.hbs
* Minor in feedback text.
* utils/hbmk2/hbmk2.prg
+ Tackled watcom target platform autodetection to be in
sync with global.mk. Whole autodetection should be
rewritten in hbmk2 (it's an old TODO).
! Fixed to not show error when trying to create implibs
defined in dep spec on platform that don't support it.
* contrib/make.hbs
- Deleted one TODO.
* ChangeLog
! Typos in prev. Add note new 'option names tentative' yet.
* utils/hbmk2/hbmk2.prg
+ Added mingw/mingw64 version detection. Not very extensively
tested.
+ Added -depimplibs=, -depimplibd cmdline options, and depimplibs=
and depimplibd .hbc options. They serve to configure automatic
(without stdalone .hbi file using -hbimplib) import library
generation for dependencies. The internal logic is the same,
but now implibs can be generated for multiple dependencies
at once, using pure .hbp files (or eveb .hbc for that matter).
+ Filters now also support '<' and '>' operators.
+ Filters will now expand internal macros before looking for
envvars.
+ Added HB_COMP_VER macro, returning compiler version.
! Fixed to handle "*.hbs" passed as option.
! Fixed to do entry detection also for .hbs files.
* contrib/make.hbs
- Temply disabled .hbi handling, now it's done by .hbp files.
! Refixed to skip hbhrb/hbppo projects in stdalone mode.
* contrib/hbqt/tests/testbrow.prg
* Updated with Bacco's 'testedit.prg' sent to the list.
* Formatting. (pls try to format it like this)
* contrib/hbpost.hbm
+ Enabled 'dynamicbase' and 'nxcompat' exe generation flags
for newer versions of msvc and mingw, to be in sync with
our GNU Make settings (and safety).
* contrib/xhb/hbcompat.ch
! Fixed some wrong xhb to Harbour translations reported by Rossine.
* contrib/hbide/hbide.hbp
% Deleted -gc3. It made the executable 2MBs larger.
Pls report any performance problems after this
change.
* contrib/gtalleg/gtalleg.hbp
* contrib/hbblat/hbblat.hbp
* contrib/hbcairo/hbcairo.hbp
* contrib/hbcurl/hbcurl.hbp
* contrib/hbfbird/hbfbird.hbp
* contrib/hbfimage/hbfimage.hbp
* contrib/hbgd/hbgd.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbmysql/hbmysql.hbp
* contrib/hbpgsql/hbpgsql.hbp
* contrib/hbssl/hbssl.hbp
* contrib/rddads/rddads.hbp
* contrib/sddfb/sddfb.hbp
* contrib/sddmy/sddmy.hbp
* contrib/sddoci/sddoci.hbp
* contrib/sddpg/sddpg.hbp
+ Added new switches to enabled automatic import library
generation without .hbi files.
Please note that this means that now HB_WITH_BLAT will
have to be set from now on for hbblat lib.
* config/global.mk
* Minor.
* config/win/watcom.mk
! Fixed to add .exe extension to watcom tools to make it work
in wine-based cross build situations. [pls note that watcom
can create cross builds using its native tools, so this is
just the cherry on top :)]
Patch provided by Tamas Tevesz.
* contrib/hbxbp/xbpbrowse.prg
+ Added: constructs to allow context menu.
* contrib/hbide/idebrowse.prg
* contrib/hbide/idemisc.prg
+ Implemented: context menu on a browser.
Context menu has three options:
1. Set to Natural Order.
2. Set to Indexed Order -> presents further menu of index definitions.
3. Scroll to Column -> presents menu to select a column.
More actions are scheduled to go inside this menu.
* contrib/make.hbs
* Internal renames, cleaned debug stuff, comments.
+ Added some provision to cleanup the referenced component
directory handling. Still a TODO.
* Makefile
* contrib/Makefile
* Will now skip all hbrun/hbscript based build parts
if HB_NO_HBSCRIPT=yes is set. Name tentative.
* contrib/hbide/hbide.hbp
* contrib/hbqt/hbqt.hbc
! Added SVN header.
- Deleted -gc3 switch. It will make the final exe 2MB smaller.
+ Moved HBQT specific msvc settings to hbqt.hbc.
* Added QUESTION to -gc3 switch enabled for HBIDE. It makes
the executable significantly larger (~2MB without debug info)
Was this ever tested, or just enabled and forgotten about?
; TODO: HBIDE should hold its 'plugins' dir in user and all users
home dirs, and use the name 'hbide_plugins' in the
executable's home directory to avoid collision with
other tool which might also have a "plugin" folder.
- contrib/rddbmcdx/hbbmcdx.hbp
+ contrib/rddbmcdx/rddbmcdx.hbp
- contrib/rddbmcdx/hbbmcdx.hbc
+ contrib/rddbmcdx/rddbmcdx.hbc
* contrib/make.hbs
* Renamed make files and output name (when using hbmk2)
to match its recently renamed directory.
Thanks to Juan Galvez for reporting it.
* contrib/hbxbp/xbpbrowse.prg
+ Added: constructs to edit cells.
* contrib/hbide/idebrowse.prg
* contrib/hbide/idesaveload.prg
+ Implemented: basic cell editing feature.
To invoke:
1. press CTRL+E on any cell, change the value,
2. press TAB|SHIFT+TAB to advance to next|previous field under edit mode,
OR
3. press ENTER to terminate the editing mode.
4. Changed value is saved to table instantly.
All the four types are supported:
Character, Date, Numeric, Logical.
TODO: mask management and editable fields.
row wide editing OR column wide.
+ Implemented: ideDBU toolbar icon "Tables" treeview now presents
formatted structure plus tooltip on "Table name" node suggesting
more artifacts about the table.
"Tables" dialog now remembers its previous position.
* contrib/make.hbs
* contrib/hbpre.hbm
+ Will now automatically rebuild all dependent contribs.
So f.e. when building hbide, it will automatically update
hbqt then hbxbp. Pls note that extra hbmk2 options passed
at the cmdline are only applied to primary target.
+ Will now automatically sort the list of contribs in order
of dependency.
[ there is quite interesting tree parsing/building and
topological sorting employed. ]
+ Added log message at the end of the build process.
+ Standalone mode will now launch raw hbmk2 session if
anything non-option and non-GNU control keyword is passed
to it (f.e. a .hbp or a .prg). In such case it will act
as plain hbmk2 call.
! Fixed -quiet keyword to be really quiet (should be on the
cmdline for that effect).
+ Added GPL2 license header.
* contrib/Makefile
% Greatly simplified.
* contrib/hbqt/hbmk2_plugin_qt.hbs
+ Changed to do all tool detection in init 'pre_all' stage,
and return an error if anything is missing. This allows
hbmk2 to gracefully end the build process in such case.
* utils/hbmk2/hbmk2.prg
+ hbmk2 will now gracefully exit with errorlevel 20 if
any plugins return error at 'pre_all' stage.
+ --hbinfo will now return whether incremental mode is
enabled for a project.
+ Plugins can now return at 'init' stage, in such case
the plugin will be instantly unloaded.
+ hbmk2 will now display the stage where error is reported
by plugins.
* Experimental trick added: On win/wce/os2/dos platforms,
if no explicit dependency location path was set by user
(using HB_WITH_*) and there was no locally hosted location
specified either, hbmk2 will show a warning instead of
an error.
+ Added new internal variable to store implib extension.
(OS/2 supports .imp as such extension, although hbmk2
does not yet)
+ Replaced os2/gcc -implib method with a new post cmd method
(instead of using --out-implib mingw-like option which
doesn't exist in OS/2). Thanks Maurilio for tests and
information.
* INSTALL
+ Added more visibility and more clear wording to TROUBLESHOOTING
section reference in top of INSTALL doc.
+ Numbered items in TROUBLESHOOTING section so that they can be
easily referred to.
+ Added new TROUBLESHOOTING suggestion (somewhat redundant)
to first try to remove any special build options.
* Makefile
+ Never attempt to run postinst.bat and postinst.cmd.
* ChangeLog
* Changes marked as DONE.
+ contrib/hbide/resources/database.png
+ contrib/hbide/resources/database_accept.png
+ contrib/hbide/resources/database_add.png
+ contrib/hbide/resources/database_down.png
+ contrib/hbide/resources/database_lock.png
+ contrib/hbide/resources/database_next.png
+ contrib/hbide/resources/database_previous.png
+ contrib/hbide/resources/database_process.png
+ contrib/hbide/resources/database_remove.png
+ contrib/hbide/resources/database_search.png
+ contrib/hbide/resources/database_up.png
+ contrib/hbide/resources/open2.png
+ Added: few more images for ideDBU interface.
+ contrib/hbide/tables.ui
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.qrc
+ Added: one more dialog resource - tables.ui.
* contrib/hbqt/hbqt.ch
+ Added: constant for QAbstractItemDelegate class manipulation.
* contrib/hbxbp/xbpbrowse.prg
+ Added: few methods ( experimental ) to have editing available
in browsers. Now with a little success. Hopefully in near future
I could implement "editing" with masks and validities.
* contrib/hbide/idebrowse.prg
* contrib/hbide/idemisc.prg
+ Added: many constructs, viz., left-toolbar, status-bar, etc.
! Rearranged: icons on the ideDBU toolbar in logical sections.
% Corrected: many artifacts about focus and allied.
+ Added: toolbar-icon to present all tables on all panels with
structures under a tree representation, a very handy info.
* contrib/hbqt/hbqt_hbqabstractitemmodel.cpp
+ Added: :flags - Qt::ItemIsEditable.
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added: signals for QAbstractItemDelegate().
* contrib/hbxbp/xbpbrowse.prg
+ Code cleanup.
+ Added: :setFocus() method.
+ Added: CASE Qt_EditRole.
This will form the basis of editing in the browser.
So far prelimanaries only, I could not implement how to.
* contrib/make.hbs
* contrib/hbpost.hbm
% Internal simplifications, merged list of contribs into one.
% Moved HB_BUILD_PARTS logic to .hbmk file.
* contrib/sddodbc/sddodbc.c
! Applied previous patch for hbodbc to sddodbc.
Thanks for Tamas Tevesz to supply the .dif.
* contrib/make.hbs
+ Instead of having to list .hbi files explicitly,
it will now always look for one and build it automatically
if exists.
* Cleanups.
* utils/hbmk2/hbmk2.prg
+ Will now append a _dll postfix in -hbdyn mode (and _exe in -hbexe mode)
to implib generated when -implib option is used. This is needed
to make it not collide with statis libraries generated in parallel.
+ Added technique with which even the fatal borland C compiler can
tricked to create implibs with custom names. I didn't test it
very much, I just hope the implib is equivalent with the one
generated directly by linker. For borland users I recommend to
switch to a modern compiler.
+ Will now also install implib if -instpath is specified and
-implib is used on platforms that it's supported.
! Fixed to escape filenames in post-build command (strip on some
platforms and now implib).
* contrib/make.hbs
+ Enabled -implib hbmk2 option in HB_BUILD_CONTRIB_DLL=yes mode.
* Disabled debug stuff.
* config/postinst.hbs
* Changed to only create .hbd documentation file for the
core. This is to ensure separation of components.
* contrib/Makefile
- Deleted old Makefile-based build logic in contrib area,
now this make file does nothing else than passing the
control to make.hbs Harbour script.
* contrib/make.hbs
* contrib/hbpre.hbm
* contrib/hbpost.hbm
% Moved -instpath options to hbpost.hbm to save cmdline length.
% Moved HB_BUILD_SHARED control logic from make.hbs to hbpost.hbm
! -warn option moved to hbpre from hbpost, so libs can override it
(can be important for external code)
+ Will now compile .hbd binary documentation in 'install' phase
and copy it to HB_DOC_INSTALL.
* Internal pathsep cleanup.
! Fixed to accept 'install'/'clean' regardless of casing.
+ Now accepts HB_BUILD_CONTRIBS instead of HB_CONTRIBLIBS
(though old envvar still work for while)
+ Log feedback now show the build action executed.
+ Added more TODOs.
* INSTALL
* Documented the change to HB_BUILD_CONTRIBS from HB_CONTRIBLIBS.
* utils/hbmk2/hbmk2.prg
+ Will now automatically recognize HB_BUILD_NAME envvar and
convert it to -build= cmdline option.
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/odbcold.c
* contrib/hbodbc/odbc.c
* Renamed SQLSTOD to HB_ODBCSTOD
* Renamed SQLSETNUMLEN to HB_ODBCSETNUMLEN.
* Old names are deprecated with HB_LEGACY_LEVEL3.
If you happen to use these function names, pls update to
the new ones ASAP.
* contrib/Makefile
+ Enabled to build all contribs using hbmk2 from now on.
This is huge step, but in fact a zillion little ones in
the last 2 years, and it means that contribs now rely on
hbmk2 and hbmk2 make files (.hbp and .hbc) to be build and
used respectively. For implibs, .hbi is used. The whole
process is orchestrated by a script written in Harbour: make.hbs.
With this change GNU Make is retired when it comes to contrib
area. This new hbmk2 based system gives us much flexibility,
many complicated build situations can now be potentially
handled, while also making the contrib area fully modular,
since they don't depend even on /config GNU Make system anymore.
This means that any external contribs having hbmk2 make files
are easy to import and any Harbour contribs are easy to detach
from our SVN. It also allows to include more features (f.e.
executables) in final distros. Executables hosted in the
contrib area have the great advantage that they can use any
other contrib libs (so far we were limited to core features
for exes). It also allows to dynamically add extra contribs
(or delete existing ones) on a per distro basis, so f.e.
certain builders can create their own binary distro with
a standard core and extra set of contribs. New system also
makes it possible to build dynamic libs from contribs. It's
also easier to move locally hosted external projects inside
the contrib tree, even as a subdir inside the contrib that
requires it (f.e. minizip, bz2 or sqlite). This can make
these projects fully self-contained.
Some things are not perfect yet, f.e. I'm still fighting
with cmdline length (relevant in MS-DOS) and the "in-place"
build (I call "in-place" build when you build only one
contrib at a time, like when issuing win-make inside a
contrib subdir) will certainly need some getting used to,
and maybe even some refinement in make.hbs. I've yet to
implement automatic dependency detection and tree-sorting
so that everything automatically builds in right order of
dependency. Such thing can even be added for "in-place"
build mode, and f.e. building hbide can automatically
launch hbqt and hbxbp builds. BTW I retained the
"header-copy-on-install" method, but I'm not sure it's
right solution, anyhow we still have time to think about
a better one.
If everything goes fine, the GNU Makefiles in contrib
area will be gone, so there won't be any redundancy again.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ -stop cmdline option now accepts a message it displays before stopping.
+ skip= .hbc command will now stop if there is text in its parameter.
INCOMPATIBLE: So far -skip only skipped if 'on' was passed as value,
now it will always skip. This means this command always has to be used
along a filter. If the filter evaluates, skip will happen, if not it
won't.
+ Added stop= .hbc command which will halt complete build process,
similarly to -stop cmdline option. It also supports text to be
displayed.
* contrib/hbqt/hbqt.hbc
+ Will now stop with a screen message if this component is tried
to be used on unsupported platform.
* contrib/hbwin/hbolesrv.hbc
* examples/hbsqlit2/hbsqlit2.hbp
* examples/gtwvw/gtwvw.hbp
* Changed to use new hbmk2 -stop facilities.
* src/rtl/filesys.c
+ Missed two casts from previous commit.
- examples/gtwvw/Makefile
- Deleted.
* include/hbdefs.h
+ Added HB_SIZE_SIGNED macro which enables signed HB_SIZE
types. It so far dangerous setting because it may generate
breakage without compiler warning, f.e. STUFF() GPFs
in hbtest after enabling it. Plus there is about 40-60
new warnings shown, I'm out of ideas how to fix most
of them.
* src/rtl/filesys.c
* Changed to pass LPDWORD to ReadFile()/WriteFile()
win32 branch, instead of *HB_SIZE. It caused warnings
for signed HB_SIZE.
; Please review me.
* ChangeLog
* Updated VxWorks notes in 2010-07-16 18:22 UTC+0200 Viktor Szakats
with missing hb_secondsCPU() support yet.
* contrib/gtalleg/gtallegs.hbp
* contrib/hbcurl/hbcurls.hbp
* contrib/hbssl/hbssls.hbp
* contrib/hbtip/hbtipssl.hbp
+ Added -hblib options to make it easy for tools to detect
target types.
* contrib/gtalleg/gtalleg.c
! Fixed C mode MSVC function pointer cast warning.
* src/rtl/hbsocket.c
* Minor cosmetic.
* contrib/hbqt/qtgui/QFormLayout.cpp
* contrib/hbqt/doc/en/*.txt
* Regenerated.
* contrib/hbqt/generator/hbqtgen.prg
! Fixed missing initialization for enums returned
by reference. An msvc warning was shown about them.
; TOFIX: I've reported similar warnings long ago with msvc. Anybody to fix them?
---
hbqt_hbqplaintextedit.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(101) : warning C4512: 'QtConcurrent::BlockSizeManager' : assignment operator could not be generated
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(83) : see declaration of 'QtConcurrent::BlockSizeManager'
hbqt_hbqsyntaxhighlighter.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/global/qglobal.h(2078) : warning C4512: 'QForeachContainer<T>' : assignment operator could not be generated
with
[
T=QMap<QString,HBQSyntaxHighlighter::HighlightingRule>
]
hbqt\hbqt_hbqsyntaxhighlighter.cpp(172) : see reference to class template instantiation 'QForeachContainer<T>' being compiled
with
[
T=QMap<QString,HBQSyntaxHighlighter::HighlightingRule>
]
moc_hbqt_hbqplaintextedit.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(101) : warning C4512: 'QtConcurrent::BlockSizeManager' : assignment operator could not be generated
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(83) : see declaration of 'QtConcurrent::BlockSizeManager'
QMimeData.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/global/qglobal.h(2078) : warning C4512: 'QForeachContainer<T>' : assignment operator could not be generated
with
[
T=QList<QUrl>
]
hbqt\qtcore\QMimeData.cpp(451) : see reference to class template instantiation 'QForeachContainer<T>' being compiled
with
[
T=QList<QUrl>
]
HBQPlainTextEdit.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(101) : warning C4512: 'QtConcurrent::BlockSizeManager' : assignment operator could not be generated
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(83) : see declaration of 'QtConcurrent::BlockSizeManager'
---
* ChangeLog
* src/vm/dynlibhb.c
* config/vxworks/libs.mk
+ Documented fact that VxWorks only supports dlopen() in
shared executables. I can see no way how Harbour could
support this.
* config/vxworks/gcc.mk
* config/vxworks/diab.mk
* Minor cleanups to HB_BUILD_SHARED mode.
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/odbcold.c
* contrib/hbodbc/odbc.c
- Deleted SQLEXTENDEDFETCH() wrapper. The original ODBC
function was in compatibility status since ODBC 3.0 and
it was causing permanent build problems in Harbour, due
to disagreement in parameter widths/types on different
platforms and compiler headers (f.e. on Linux AMD64 C++
mode, POCC and XCC).
INCOMPATIBILITY: This compatibility function was deleted,
use SQLFETCHSCROLL() instead.
* Replaced SQLEXTENDEDFETCH() with SQLFETCHSCROLL() in TODBC
code as recommended by MS.
! Added cast to silence msvc C mode warning.
* config/vxworks/gcc.mk
! Fixed vxworks/gcc HB_BUILD_SHARED=yes link mode.
* include/hbdefs.h
* src/rtl/hbsocket.c
* include/hbthread.h
* Moved header collision avoidance hack to the root of
the problem, right after '#include <stdint.h>'.
This way it's done centrally.
* config/vxworks/diab.mk
- Deleted fixed TOFIX.
* ChangeLog
* Updated VxWorks notes in 2010-07-16 18:22 UTC+0200 Viktor Szakats
* include/hbsetup.h
* Enabled HB_USE_SHARELOCKS_OFF for VxWorks. This fixes creation
of plain .dbf files, _but_ it will make a weird bug surface
when creating .dbf+.dbt: The content of the .dbt file is
written into the .dbf and the .dbt is kept as a zero length
file. Przemek if you read this, do you have any idea what
this could be?
* src/rtl/hbgtcore.c
* src/rtl/gtsys.c
! Fixed to set default GT for vxworks also in hbgtcore. Made NOTE
in source that needs to be kept in sync. This finally fixes
the uninitialized GT error.
* Reset default vxworks GT to GTSTD instead of GTCGI.
* utils/hbmk2/hbmk2.prg
* Minor.
* contrib/hbodbc/odbc.c
- Deleted compatibility trick which mapped SQL[U]LEN to SQL[U]INTEGER.
The trick is most likely not needed anymore, they were first
introduced in 2007-01-24 10:25 UTC+0100 Przemyslaw Czerpak with
the description 'synced with xhb', next it was extended with the
"U" version in 2008-08-13 03:08 UTC+0200 Viktor Szakats, for
__DMC__ compatibility. We dropped DMC support since.
; Tamas can you pls retest if this fixed the Linux AMD64 build
error in C++ mode?
* src/rtl/gtsys.c
* Made GTCGI the default GT for VxWorks. (GTSTD doesn't work now)
* utils/hbmk2/hbmk2.prg
% Won't anymore do dependency check on system headers found on
autodetected dependency locations. This has the upside that
now hbmk2 f.e. won't traverse the deep header structures of
QT, greatly enhancing build performance. The downside is
that now libs won't be automatically rebuilt if such dependency
is updated (f.e. after upgrading to a new version of QT).
Pls speak up if you have an opinion on this, maybe
using other solution or to control this behavior using
a global or dependency level switch.
* config/vxworks/gcc.mk
* config/vxworks/diab.mk
+ Setting 'soname'. It's mandatory according to VxWorks docs.
Now shared diab exes will find Harbour dynlib (but not the
libc one, but I reckon this needs local env tweaks only).
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
! Fixed to use variable instead of hardcoded 'harbour' text to
set .dylibs 'install name'. It also fixes 'harbour' being used
also for MT mode dylib.
* contrib/hbide/idemisc.prg
! Fixed to add some new chars which need to be escapted in HTML
output.
% Removed some redundancy.
* src/rtl/hbsocket.c
+ Enabled ioctl() calls for VxWorks.
! Worked around 'socklen_t' vs 'int' warnings with VxWorks.
(still remains some 'const char *' and 'caddr_t' vs 'char *
warnings, nothing serious though)
* include/hbthread.h
! Enabled HB_CRITICAL_NEED_INIT for VxWorks. Avoids the compiler
warnings caused by PTHREAD_COND_INITIALIZER having one less
structure member than initialized structure.
MT mode still doesn't work though.
* contrib/hbodbc/odbc.c
+ Added HB_ODBCVER() function to return build-time ODBC version
reported by ODBCVER macro.
* contrib/hbodbc/tests/testodbc.prg
+ Show ODBC version number.
- contrib/hbqt/doc/html
- Deleted. doc dirs now have to abide by the HBDOC rules posted
on the dev list, which means doc may contain (non-empty) language
dirs only. html should be generated by client app or by install
process.
* contrib/hbwin/hbwinole.h
! Patch by Tamas Tevesz, fixing NONAMELESSUNION issue for watcom.
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
! Fixed: a bug in "find in Files" output where characters "<" and ">"
were eaten up by the html engine, reported by Massimo Belgrano.
* contrib/hbide/idebrowse.prg
+ Implemented: "connections" concept for third-party RDD hooks.
Will write a white-paper to this effect soon once the engine
becomes stable. It is working for my native RDDs.
* include/hbsetup.h
* src/vm/hvm.c
* contrib/hbmisc/hb_f.c
! Added workaround for diab bug. Now build goes fine without HB_LONG_LONG_OFF
trick.
* config/vxworks/diab.mk
+ Minor change to sync one C compiler option with VxWorks Workbench
generated one. (missed from prev commit)
* INSTALL
+ Added Windows and OS/2 specific extra requirements for
GNU Make version. Windows: 3.81, OS/2: 3.81r3
Older versions are too buggy/risky on these platforms.
* ChangeLog
+ Added more VxWorks NOTEs to 2010-07-16 18:22 UTC+0200.
* external/minizip/minizip.dif
+ Updated after latest changed by Tamas Tevesz. Thanks a lot!
* utils/hbmk2/hbmk2.prg
+ Added support for vxworks/diab compiler.
* utils/hbtest/hbtest.prg
+ Added my name to the copyright header.
* config/global.mk
! Fixed to only assign *nix specific default value HB_INSTALL_PREFIX
on *nix hosts (only a problem when doing *nix cross-builds _from_
non-*nix systems).
* utils/hbmk2/hbmk2.prg
* config/vxworks/gcc.mk
* config/vxworks/diab.mk
+ Added minimal support for HB_BUILD_SHARED=yes for vxworks targets.
For diab it just won't find the harbour .so (see comment for more)
For gcc it links okay, though it's detected as kernel task, so
current support is most probably not right.
* config/vxworks/diab.mk
* Minor change to sync one C compiler option with VxWorks Workbench
generated one.
; NOTE: By this change Harbour VxWorks base port is finished. Besides
being an interesting excercise, it helped to develope new
non-*nix to *nix cross building codepaths, tweak Harbour for
"headless" (w/o terminal) OSes, and to break the ground for
target CPU selection inside one target platform.
Harbour builds cleanly using both vxworks/gcc and vxworks/diab,
and compiler tools plus non-MT utils run properly as well.
Obviously I made few functional tests, but from the experiences
of the port effort, these are the remaining areas:
- reporting bug(s) to Wind River (particularly the one
breaking hvm.c compilation, requiring HB_LONG_LONG_OFF
forcage, causing other unnecessary limits and hbtest
failures)
- serial I/O needs to be implemented using VxWorks specific
sioLib API
- 'fork' has to be replaced.
- sockets were not tested, anyhow they are supposed to work.
- termios is missing, so large parts of GTSTD and GTTRM are
disabled on this platform.
- ARM/MIPS CPU support needs to be added to hbatomic.h
- HB_LIBLOAD() and friends need to be implemented, but I hit
walls here.
- MT apps GPFs, this needs to be fixed probably inside our
code, but it's possible some build options are needed which
I missed all along.
- HB_SHARED_MODE=yes needs further tweaking.
* contrib/hbide/idebrowse.prg
! Fixed: ideDBU - sequential search on a character field was
making exact comparison, i.e., fieldval == searchval, now
it is : fieldval = searchval.
* include/hbinit.h
! Fix to prev. Missed another 'static' qualifier.
; Now hbtest runs OK on vxworks/diab. (there are more
errors though due to HB_LONG_LONG_OFF)
* utils/hbmk2/hbmk2.prg
! Fixed to not request GTTRM in vxworks builds.
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_hvm.prg
* utils/hbtest/rt_hvma.prg
* utils/hbtest/rt_stra.prg
* utils/hbtest/rt_vars.ch
- Disabled long string tests for vxworks. They fail because of
memory exhaustion.
! Fixes to prev.
; Now hbtest runs OK on vxworks/gcc.
* config/global.mk
+ Now defines __PLATFORM__VXWORKS for cross-builds.
! Fixed typo in lastly added __PLATFORM__ redefinition.
* INSTALL
+ Added vxworks/diab example.
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_hvm.prg
* utils/hbtest/rt_hvma.prg
* utils/hbtest/rt_stra.prg
* utils/hbtest/rt_vars.ch
+ Enabled GTCGI for Harbour builds. This makes it independent
for GTs, to there is better chance to run it. Now it also
works on VxWorks.
+ Will now detect .dbf creation failure and continue gracefully
with a message and skipping all related tests.
* src/rtl/hbsocket.c
* external/minizip/ioapi.h
* include/hbthread.h
+ Added/cleaned hacks to avoid collision between VxWorks's own
system types.
* external/minizip/ioapi.h
! Disabled 64-bit FSIO for whole VxWorks.
* config/vxworks/gcc.mk
* config/vxworks/diab.mk
* config/vxworks/global.mk
+ _VX_CPU is now defined in vxworks/global.mk.
* src/common/hbarch.c
! Fixed hb_put_le_uint64() definition to match declaration.
* include/hbdefs.h
! Fixed compatibility type definitions in HB_LONG_LONG_OFF mode.
* include/hbsetup.h
+ Added bzero() declaration hack for vxworks.
* include/hbinit.h
+ Added support for diag compiler init function.
It requires the constructor to have public visibility.
* src/common/hbver.c
+ Changed to always display x.x.x.x format verison no for diab.
(in generic way).
* INSTALL
* Updated list of CPUs supported by vxworks.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
+ Added: :hbSelectAll() method.
* contrib/hbxbp/xbpbrowse.prg
! Minor.
+ contrib/hbide/fetchdate.ui
+ Added: dialog to fetch a date value. It also employs calender widget.
* contrib/hbide/ideedit.prg
! Fixed: many artifacts related to selection behaviour.
* contrib/hbide/idemisc.prg
* contrib/hbide/idebrowse.prg
+ Implemented: search in the current browser.
Search is available in two modes:
1. When table has some index active : DbSeek() is performed.
The value to seek is based on the type returned by valtype( &( IndexKey() ) ).
2. When table has no active index: sequential search is performed.
The value of search is based on the current highlighted cell.
Input dialog is presented depending upon the search variable type.
Sequential search is a slow process but there is no alternative to that.
Sequential search is initiated from the current record downwards and terminated
either on oBrw:hitBottom is encountered or value is found.
Icon: ideDBU toolbar-serach Hotkey: CTRL+F
+ Implemented: goto record. It is straight forward. DbGoto( nRecord ) is issued.
Icon: ideDBU toolbar-goto record Hotkey: CTRL+G
Please forward your opinions.
* src/common/hbver.c
* Formatting.
* config/vxworks/diab.mk
! Refined tweak added to make hbsocket compile. I overdid
it, causing other breakage.
! Fixed dynlib generation to cope with Windows cmdline
length limits.
+ Added proper dynlib generation rule.
* config/vxworks/gcc.mk
* config/vxworks/global.mk
+ HB_CCPOSTFIX setup made common to all compilers, because
it's needed for 'strip' call.
* utils/hbmk2/hbmk2.prg
+ Some vxworks environment setup made common to all compilers.
* harbour-win-spec
* harbour-wce-spec
! Deleted hbmk.hbc references.
; Patches by Tamas Tevesz:
* harbour.spec
! Fixes to make it work.
* external/minizip/minizip.dif
* Updated.
* INSTALL.
* Nevermind.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
! Changed: the space character not to terminate the code completion dialog.
It is needed for commands to be selected at next level.
+ contrib/hbide/plugins/hbide_script_rdds.prg
+ Added a dummy script to supply the required info
for different actions of an RDD operation if another
RDD is linked with hbIDE. DBFCDX and DBFNTX are
linked by default.
To make this feature functional, this dummy script has
to be popiulated with real-time code and be copied inside
"resources" folder with another name prefixed as:
hbide_persist_myrdd.prg
A complete example will be published in the meantime.
* contrib/hbide/hbide.prg
* contrib/hbide/idebrowse.prg
* contrib/hbide/ideplugins.prg
+ Implemented: persistent record/order/rowpos/colpos
of ideDBU views. Now tables are opened in the same
state of last run.
+ Totally reworked table-management engine. Now supports
external RDDs if linked which take effect automatically
for database operations, i.e., /rdds/exists/select/open;
more actions will follow.
* config/vxworks/diab.mk
+ Implemented support for Wind River Compiler.
Incomplete yet, as I couldn't test each build
feature due to errors in earlier build stages.
* src/common/hbver.c
+ Added fourth version number level.
+ Added version detection for Wind River Compiler (diag).
* Formatting.
* src/common/hbprintf.c
* external/minizip/ioapi.h
+ Fixes for Wind River Compiler (diag)
* src/rtl/hbdyn.c
! Dirty fix to compile in HB_LONG_LONG_OFF mode.
Przemek if you see this, can you take a look at it if
it's right or at least not terribly off?
* include/hbsetup.h
! Temporary hack for Wind River Compiler to use
HB_LONG_LONG_OFF, otherwise the compiler crashes with
internal error in hvm.c (without hvmall and optimizations
also). Now, this flag caused another slew of problems,
so as it looks now support for this compiler cannot
be added:
"../../../hvm.c", line 9827: internal compiler error (etoa:1000): - Failed allocating register pair
please contact support@windriver.com */
* include/hbinit.h
+ Enabled Wind River compiler to use the GCC init mode.
(didn't actually test it, but it compiles)
* utils/hbmk2/hbmk2.prg
+ Added new debug switch -debugpars to get a list of
input parameters processed by hbmk2.
+ Synced automatic HB_CCPOSTFIX configuration based on cpu
setting with GNU Make logic.
* config/vxworks/gcc.mk
* Cleanups.
+ Added more CPU postfixes.
* INSTALL
* Minor convenience added to prev.
* INSTALL
! vxWorks casing.
+ Added vxworks/gcc/arm example.
* utils/hbmk2/hbmk2.prg
% -DARMEL no more defined for vxworks/gcc/arm. It turns
out it's a predefined macro.
* config/global.mk
! Fixed HB_CPU autodetection after prev change.
* INSTALL
; NOTE: After previous change HB_CCPOSTINST is automatically
set on vxworks/gcc.
* config/vxworks/libs.mk
* config/vxworks/gcc.mk
+ Tried to enable dynlibhb, didn't succeed, see comments.
* config/vxworks/gcc.mk
% Deleted unnecessary compile time macros.
; TOFIX: vxworks HB_BUILD_SHARED=yes is broken. harbour .so
is not found. Couldn't find out why.
; TOFIX: vxworks/gcc/arm hbatomic.h needs support added.
arm harbour and hbpp builds fine.
* utils/hbmk2/hbmk2.prg
+ Added experimental -cpu option. (not at the level
of comp/plat internally, as there won't be separate
subdir open for different cpu builds created in parallel)
+ Added some untested support for vxworks/gcc/arm.
* utils/hbmk2/hbmk2.hbp
+ Synced with Makefile.
* config/global.mk
! Fixed to default HB_CPU value to x86 for vxworks.
+ Exports HB_CPU.
* config/vxworks/libs.mk
* config/vxworks/gcc.mk
+ Added experimental support to select arm target by
using HB_CPU=arm.
* config/wce/msvcarm.mk
! Missed re-xmastree changed done now. (for pre GNU Make 3.81 compatibility)
* include/hbthread.h
! Hacked around collision between vxWorks headers.
* ChangeLog
! Fixed casing of vxWorks.
* utils/hbmk2/hbmk2.prg
+ Added vxworks/gcc libpaths.
! Fixed vxworks/gcc system lib list.
! Fixed ar to have postfix.
; All these are syncs with GNU Make.
* src/rtl/hbsocket.c
! Typos in previous vxworks patchs.
* config/global.mk
! Fixed forming automatic HB_INSTALL_PREFIX value in *nix cross-build
situations. (it's still wrong as it assumes nix->win cross-builds)
; Now vxworks/gcc/x86 build is clean.
There are iTODOs left, and
- this particular class of warnings, which seems
to be a bug down the <pthread.h> system header:
hbnetio\netiocli.c:155: warning: missing initializer
hbnetio\netiocli.c:155: warning: (near initialization for 's_netioMtx.mutexAttr.mutexAttrType')
- also this, each time FD_ZERO() and friends are used:
warning: implicit declaration of function 'bzero'
- "argument n of 'x' differ in signedness" and "discards qualifiers from pointer target type"
warnings in hbsocket.c code.
; TOFIX:
- Unrecoverable error 9998: Harbour terminal (GT) initialization failure
when running hbtest.
- GPF when running hbmk2 and hbrun. (hbformat, hbi18 startup fine)
* INSTALL
+ config/vxworks
+ config/vxworks/libs.mk
+ config/vxworks/gcc.mk
+ config/vxworks/diab.mk
+ config/vxworks/global.mk
+ Started experimental VxWorks port.
; NOTE: VxWorks port was made possible by Wind River Systems Inc.,
who were so kind to mail me a full VxWorks development
environment, for the purpose of porting Harbour to this
platform. Thank you very much guys.
[ The free license is valid for one month, so if anyone
is interested in helping in this project, I can help with
real tests, builds and information. BTW, the devenv is
Eclipse based plus cmdline, running on Windows (available
for Linux and Solaris, too) and the target VxWorks exes
run in a virtual environment. ]
* config/global.mk
+ Added autodetection of VxWorks platform.
* utils/hbmk2/hbmk2.prg
+ Added VxWorks support. It's incomplete yet.
! Fixed to quote *nix/gcc compiler family in
Windows-host cross-platform situations.
* src/vm/thread.c
* src/common/hbgete.c
* src/common/hbffind.c
* src/common/hbtrace.c
* src/common/hbdate.c
* src/rtl/gtstd/gtstd.c
* src/rtl/gttrm/Makefile
* src/rtl/hbsocket.c
* src/rtl/filesys.c
* src/rtl/diskspac.c
* src/rtl/cputime.c
* src/rtl/disksphb.c
* src/rtl/gtpca/gtpca.c
* src/rtl/net.c
* src/rtl/hbproces.c
* src/rtl/gtsys.c
* src/rtl/hbcom.c
* external/zlib/inflate.c
* external/jpeg/jmorecfg.h
* external/pcre/Makefile
* include/hbapifs.h
* include/hbthread.h
* include/hbdefs.h
* include/hbsetup.h
* contrib/xhb/hboutdbg.c
* contrib/xhb/hbsyslog.c
* contrib/xhb/hbserv.c
+ vxworks/gcc port. First phase.
; Please review.
; NOTE: - vxworks has no termios, for serial comm
support it has sioLib.h.
- vxworks supports another C compiler, which
was not tested yet.
- vxworks supports lots of CPUs, only x86 was
tested yet.
- There are still mutex related warnings to sort out.
- Some parts had to disabled, like HB_LIB*() functionality.
; TODO: Regenarate .difs in external/.
* src/vm/hashfunc.c
* Silenced warnings shown by vxworks/gcc.