* contrib/hbct/hbct.hbp
* raise c dialect to gnu90 on linux for stime()
* contrib/hbwin/wapi_winbase.c
! define WAPI_GET*PATHNAME() as noop functions on wce
* contrib/hbwin/win_shell.c
! made WIN_SHELLNOTIFYICON() a dummy on wce
* contrib/hbwin/mapi.c
! do not undef UNICODE for wce (results in missing LoadLibraryA() on link)
* contrib/hbwin/wapi_commctrl.c
! made WAPI_IMAGELIST_LOADIMAGE() a dummy on wce
* contrib/sddfb/sddfb.hbp
* contrib/hbfbird/hbfbird.hbp
* set c dialect to gnu90 for fbird headers
* contrib/hbpre.hbm
* set c dialect to gnu90 for wce/allmingw for cegcc Windows headers
* utils/hbmk2/hbmk2.prg
+ Added -c=/-cpp= dialect support for sunpro, icc, clang, watcom.
Many thanks to Tamas for the information.
+ Added dialect support for vxworks/diag
* contrib/hbpre.hbm
- do not set any C++ std in contrib area
it's a mess.
* utils/hbmk2/hbmk2.prg
+ Added experimental -c=[iso90|iso99|iso1x|gnu90|gnu99|gnu1x] and
-cpp=[iso98|iso0x|gnu98|gnu0x] hbmk2 options to select
C/C++ dialect in a C compiler and built setting independent way.
It will currently affect GCC and compatible family of compilers.
If you happen to know about C dialect/std selection in other
compilers, pls tell and they can be mapped to this option.
F.e. in other win compilers the adaptation to C/C++ stds is very
fuzzy, where such option exists at all (f.e. BCC -A* options),
mostly it's just toggling some compiler extensions.
Comments are welcome of course.
+ Added TOFIX for vxworks with potential disagreement on C std level.
I used hardwired C99 forcage hack while porting Harbour to it.
+ Added internal logic for C- and C++-only options.
; NOTE: Behavior with Objective C sources is yet to be tested.
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbunix/hbunix.hbp
* contrib/gtalleg/gtalleg.hbm
* contrib/xhb/xhb.hbp
* contrib/hbqt/hbqt_common.hbm
* contrib/rddads/rddads.hbp
* contrib/hbfimage/hbfimage.hbp
* contrib/hbpre.hbm
* contrib/hbssl/hbssl.hbm
+ -cflag=-std=... => -c=gnu90 hbmk2 option.
* utils/hbmk2/hbmk2.prg
+ new filter values: lngcpp and lngc. Can be used to
check forced C++/C mode.
* contrib/hbmzip/3rd/minizip/ioapi.h
* contrib/hbmzip/3rd/minizip/zip.h
* contrib/hbmzip/3rd/minizip/minizip.dif
! C++ -> ANSI C comments
* contrib/hbmzip/3rd/minizip/minizip.hbp
! Override c89 mode with gnu89. For f*64() functions.
* contrib/rddads/rddads.hbp
! Override c89 mode with gnu89. ADS headers need it.
* contrib/hbpre.hbm
+ Forcing c89 mode for GCC family compilers (in non C++ forced mode)
Results were pretty good and Harbour/3rd party code complies
very well.
* contrib/hbunix/hbunix.hbp
* contrib/hbcurl/hbcurl.hbm
* contrib/hbnetio/hbnetio.hbp
* contrib/gtwvg/gtwvg.hbp
* contrib/hbwin/hbwin.hbp
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/hbexpat/hbexpat.hbp
* contrib/hbmemio/hbmemio.hbp
- Deleted just added local c89 mode forcage. Now it's done global.
* contrib/hbqt/qtgui/hbqtgui.h
! Fixed HBQT_TYPE_QIcon redefinintion. Pls check, I didn't rebuild the
whole package after the mod.
* utils/hbmk2/hbmk2.prg
* Changed the way target selection (-hblib, -hbdyn*, -hbexe, etc)
options are handled. So far the last one specified remained
active, now the first one specified will stay active.
IOW: 'hbmk2 -hbdyn mylib.hbp' will result in dynamic lib target,
even if mylib.hbp contains -hblib option.
; Beware of some regressions or incompatibility with certain
build configs.
* contrib/hbpost.hbm
* contrib/hbpre.hbm
* Moved -hbdyn option to hbpre.hbm. This makes it possible
for .hbp files to act differently when built as dynamic lib.
; Such will be required for
* external/libhpdf/libhpdf.hbp
* Cleared TOFIX after above changes.
* contrib/hbplist
* contrib/hbmzip/hbmzip.hbp
* contrib/hbmzip/hbmzip.hbc
- external/minizip
+ contrib/hbmzip/3rd
+ contrib/hbmzip/3rd/minizip
* contrib/hbmzip/3rd/minizip/minizip.hbc
* contrib/hbmzip/3rd/minizip/minizip.hbp
- contrib/hbmzip/3rd/minizip/Makefile
* Moved minizip dir under the contrib that uses it.
; Please test.
* contrib/hbqt/qtcore/hbqt_misc.prg
% Optimized HbQtObjectHandler:connect() and HbQtObjectHandler:disconnect()
! Type in error msg text in hbqt_error()
% Deleted unnecessary headers.
* contrib/hbpre.hbm
* Turned off -trace by default. You can now turn on with HB_BUILD_VERBOSE=yes
* contrib/make.hbs
% Cleaned away test/migration modes.
* One STATIC var changed to local.
* contrib/hbpre.hbm
+ It's now possible to get all hbmk2 output along the Harbour
build process by setting HB_BUILD_VERBOSE=yes.
* examples/hbdoc2/gentpl.prg
* examples/hbdoc2/genhtml.prg
* examples/hbdoc2/hbdoc2.prg
% Optimized out another pathsep holder variable.
* 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.
* 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.
* 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.
* utils/hbmk2/hbmk2.prg
+ --hbrefs option renamed to --hbinfo and now also includes
target type.
+ Extended target detection with 'hbppo' and 'hbhrb' types.
These are automatically detected from Harbour option usage.
+ Added ${hb_outputname} macro. Returns the output name as
specified with -o option, without extension. Returns empty
if there wasn't -o option at the point of usage.
+ Added ${hb_outputdir} macro. Returns the output dir as
specified with -o option. Returns empty if there wasn't
-o option at the point of usage.
+ -p -s options don't require to manually select -hbraw
mode, it will be autodetected.
! Fixed to not interpret -i- Harbour option as include dir.
+ Don't add the same Harbour option twice.
* contrib/Makefile
* contrib/make.hbs
+ contrib/hbpost.hbm
+ contrib/hbpre.hbm
% Cleaned the way build options are passed to hbmk2.
+ Synced much more options and build behavior of hbmk2
based contrib build with GNU Make build (debug, unicode,
warnings, Harbour settings, C settings)
+ Added more projects to hbmk2 build method.
% Deleted MS-DOS specific hack (for now) because the new
cmdlines are very short.
; TODO: Now make.hbs is not self-contained, which would
better be solved somehow.
* contrib/make.hbs
+ It will now detect and show target type in stdalone mode.
+ Synced default build options with GNU Make.
* contrib/hbqt/hbqts.hbp
* contrib/hbqt/hbqtguis.hbp
* contrib/hbqt/hbqtcores.hbp
* contrib/hbqt/hbqtnetworks.hbp
+ Added -hblib option to make it easy to detect target type
for 3rd party tools.
* contrib/hbnetio/utils/netiosrv.prg
+ Will now also accept .hbs and .prg files as RPC filters.
- contrib/hbnetio/utils/modules
* contrib/hbnetio/utils/modules.hbp
+ contrib/hbnetio/utils/rpcdemo.hbs
* Renamed RPC demo to .hbs.
* Deleted modules subdir.
- contrib/hbnetio/utils/hbmk.hbm
* contrib/hbnetio/utils/hbnetio.hbp
- Deleted separate hbmk.hbm.
* contrib/hbnetio/utils/netiocmd.prg
! Minor in help screen.
* contrib/hbnetio/tests/netiotst.prg
+ Added some feedback.