* utils/hbmk2/hbmk2.prg
! Fixed RTE when using post-process command on systems without
implib functionality. Recent regression.
% Fixed bad performance in default -head=partial mode, which made
it slower than -head=full. Now they are on par, so maybe -head=full
should be made the default and partial mode deleted.
; Thanks to Przemek for bug reports.
* include/hbset.h
* include/hbgtcore.h
* include/hbapi.h
+ Added some HB_EXPORT flags.
* utils/hbmk2/hbmk2.prg
! Fixed ${hb_workdynsub} macro not returning correct value.
! Fixed to install implibs when -instforce is used and targets are
up to date.
+ Added -implib=<dir> option to control placement of implibs generated
in -hbdyn and -hbexe modes. (by default it's the output dir for
main target)
+ Added autodetection of hbmaindllp lib and this case generate little
stub posted by Przemek on the list earlier this year, and in this
case also enabling linkage of shared Harbour lib in -shared mode.
NOTE: Pls check this, this solution is Windows centric, but until
I know this is the correct track I didn't want to extend it.
Przemek can you take a look at it?
* Changed the install group name to "depimplib" for implibs generated
for dependencies, and use "implib" group for implibs generated for
our own targets. This is needed to be able to control them
separately, since we don't necessarily want to install "depimplib"
while we always want to install "implib"s.
* contrib/make.hbs
* contrib/hbpost.hbm
* Updated list of TODOs
* HB_BUILD_CONTRIB_DLL changed to HB_BUILD_CONTRIB_DYN
+ HB_BUILD_CONTRIB_DYN now works also in stdalone mode.
% Moved HB_BUILD_CONTRIB_DYN related options to hbpost.hbm
+ Added -shared and -lmaindllp options to dynamic lib build mode.
* Changed dependency implib install target to have 'depimplib'
prefix to differenciate from -hbdyn implib install target.
+ Added -implib=<dir> option to tell hbmk2 to create implibs
in lib dir in -hbdyn mode.
+ Added install target for implibs generated in -hbdyn mode.
; All this means that now by setting HB_BUILD_CONTRIB_DYN=yes,
a dynamic version will be build of the libs, import lib
placed in lib dir, dynamic lib placed into dynamic lib dir
(bin on non-*nix platforms, lib on *nix platforms).
IOW, now HB_BUILD_CONTRIB_DYN=yes should work, at least on
win and wce. I didn't make functional tests though.
Please review/test it.
* debian/dirs
! Deleted doc/en dir.
* doc/Makefile
- doc/whatsnew.txt
+ NEWS
* COPYING
* doc/howtorel.txt
* debian/changelog
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* Renamed doc/whatsnew.txt to /NEWS
* debian/copyright
* Updated with COPYING content.
* package/harbour.spec
! Fixed to include doc/* instead of doc/*.txt.
* utils/hbrun/hbrun.prg
- Deleted envvar method of passing dirbase to scripts.
* contrib/make.hbs
+ Using HBRUN_DIRBASE() function instead of envvar trick.
Maybe some more generic named value passing would be better.
* contrib/Makefile
! Using '-' prefix when running hbrun instead of '+', to not
cause fatal breakage in build stage if make.hbs contains
something which previous build of hbrun didn't offer.
* config/global.mk
- HB_INSTALL_PREFIX will not default anymore to source root
dir (on non-*nix systems) to avoid FAQ where installation
fails because of former install into source root, causing
old contrib headers to ovveride current ones and breaking
build. Please note that 'install' is truly optional with
current builds, so only use it for what it was designed.
Pls should if some things fail with empty HB_INSTALL_PREFIX
and requesting 'install' anyway.
* contrib/xhb/xhbat.c
! Applied this fix to Harbour:
2010-07-29 12:28 UTC-0430 Ron Pinkas <ron.pinkas/at/xharbour.com>
* source/rtl/at.c
+ Added missing extended strings support, to hb_AtSkipStrings()
* utils/hbrun/hbrun.prg
* utils/hbrun/hbrun.hbp
* utils/hbrun/Makefile
- Deleted "burn-in" trick to tell hbrun where to find the
Harbour include dirs. We need to find something universally
useful (portable).
* utils/hbrun/hbrun.prg
+ Added public function HBRUN_DIRBASE() which returns the
same value as envvar __HBRUN__DIRBASE, but this one looks
a superior interface between scripts and runner environment.
Pls comment.
* contrib/make.hbs
* contrib/hbpost.hbm
* Updated TODO list.
* Renamed internal _HB_*_INSTALL vars to _HB_INSTALL_*
; TODO: Do the same in Harbour with HB_*_INSTALL envvars.
* utils/hbmk2/hbmk2.prg
! Changed pkg-config based dependency detection to only consider
a given component present, if there is -I option present
among the returned options. This should fix false positive
cups detection, though I've yet to try it.
Maybe it'd be even better to make detection even more robust
by checking for the key header on the found headers paths
when using pkg-config based detection.
* utils/hbrun/hbrun.prg
+ Making available original hbrun location using __HBRUN__DIRBASE
envvar. This information is lost when doing the argshift trick,
pls shout if you see a better solution for it (or any concerns
with this one).
* contrib/make.hbs
+ Will now use unified method for both stdalone and GNU Make to
find out the location of hbmk2. It will look for it in the same
dir as of hbrun's.
* config/postinst.hbs
* Converting bash to .prg in progress.
* INSTALL
+ Documented Mac OS X architecture flags.
* utils/hbmk2/hbmk2.prg
+ Added -instforce option which will force the target to be
copied to -instpath even if it was up to date. This is to
make it in sync with GNU Make behaviour, where single
'make install' will copy everything regardless of being
up to date or not.
* contrib/hbpost.hbm
+ Added -instforce to make it in sync with old GNU Make
behavior. Such case is exploited by .rpm generation, and
this is the reason why the contrib libs weren't
appearing in target lib dir.
* config/postinst.hbs
+ Added two .so related TOFIXes.
* mpkg_src.sh
+ Changed to always delete temp file bin/hb_flst.tmp containing
a list of all source files. (anyone knows why was it left there?)
* package/harbour.spec
* Minor in comment.
* Temply commented adding .so files in the lib/ root (without harbour postfix)
* contrib/make.hbs
* contrib/hbpost.hbm
+ Added support for HB_MAN_INSTALL, HB_ETC_INSTALL.
* utils/hbmk2/hbmk2.prg
+ Enabled multi-input compilation for *nix gcc family. This means that
all C source files will be now compiled in one gcc invokation, instead
of compiling them one by one.
% PATHNORMALIZE(): delete unused function.
% ISDRIVESPEC() converted to macro _ISDRIVESPEC().
* config/postinst.hbs
+ Added code to create ld config file.
+ Added commented original bash code to create .so links which I cannot
understand. Anyone to jump in?
+ Added PathNormalize() function from hbmk2.
+ Changed back DirBuild() to always normalize path before creating it
(to filter out potential ".." and "." dirs from it). Required for
ld creation.
* config/global.mk
* HB_ETC_INSTALL is now format equally on all *nix platforms to have a
'harbour' subdir. Required to work well with ld creation logic in postinst.hbs.
* config/postinst.hbs
+ Added more feedback.
* Internal cleanups.
+ Changed to always copy to etc if there is target dir defined.
! Fixed typo in man copying.
* config/global.mk
+ Added logic to setup dirs for *nix package creation.
Fixing .tgz creation to work like before.
* Changed to only set HB_MAN_INSTALL if installing to sysloc.
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
! Fixed DirBuild() function when crearing absolute paths without
a drive letter. It created dir in current dir on non-*nix and
didn't do anything while returning success on *nix.
; Now mpkg_tgz.sh replacement is about finished.
It's pbly not 100% the same still, so pls review it.
* utils/hbmk2/hbmk2.prg
+ Added new plugin APIs:
- hbmk2_AddInput_OBJ()
- hbmk2_PathFromWorkdirToCWD()
- hbmk2_CWD()
+ Changed to not abort processing if there are no input files, but
there are custom plugin input parameter.
+ bin/hbmk_l2d.hbs
+ Added rough plugin to convert static libs to dynamic libs
on platforms supporting 'ar' tool (and of course the notion
of such conversion). This is meant to replace functionality
provided by bash script hb-mkdyn.sh.
Pls find cmdline example in the script header.
* config/postinst.hbs
+ Now installs hbmk_l2d.hbs
- bin/hb-mkdyn.sh
- Deleted hb-mkdyn speciality shell tool to convert static
libs to dynamic ones.
- bin/postinst.sh
- Deleted, it only started hb-mkdyn.sh, which was just deleted.
* Makefile
- Do not run postinst.sh anymore.
- mpkg_deb.sh
- Deleted wrapper script. Pls use the method documented in
INSTALL to build .deb files.
* utils/hbmk2/hbmk2.prg
* Minor change in output for better clarity.
* debian/rules
* harbour.spec
* config/instsh.mk
* Do not use HB_INST_PKGPREF.
* harbour.spec
+ Use HB_MAN_INSTALL
* config/global.mk
+ Added HB_MAN_INSTALL and HB_ETC_INSTALL
+ PKG_NAME is now filled in little bit different way for
*nix systems to emulate old mpkg_tgz.sh logic.
* bin/postinst.sh
- Deleted no more used subroutines.
- Deleted mk_hblibso() function.
- it maintained loca list of contribs which breaks the
effort of contrib "plug-in" system
- it contained lots of platform dependent build details in
hard to maintain bash shell code.
; If someone needs this functionality pls try to integrate
it in hbmk2 or write a .hbs script in modular fashion
(not contrib names). I cannot tell what exactly was the functionality
implemented there though. Maybe rewriting it locally is also an
option.
! Do not use HB_INST_PKGPREF.
* config/postinst.hbs
+ Rewritten mpkg_tgz.sh logic in .prg code. This logic is
finally in it's proper place.
+ Implemented copying of man files on *nix systems.
; NOTE: Not tested at all, it was hard enough to rewrite it,
pls help on finishing and debugging it. See TODOs in
source. Previous replicated with some differences.
- mpkg_tgz.sh
- Deleted. Now implemented in postinst.sh.
Build Harbour with HB_BUILD_PKG=yes to try it.
* INSTALL
+ Added HB_MAN_INSTALL and HB_ETC_INSTALL
+ Updated .tgz binary instructions (now same on all platforms)
* utils/hbrun/hbrun.prg
* utils/hbrun/hbrun.hbp
* utils/hbrun/Makefile
* Renamed include dir control var.
* Change so that now simple HB_INC_INSTALL value will
trigger burn-in of header location.
+ Added logic to only use burnt-in header location if
it is an absolute path.
! Synced .hbp file with this feature.
; NOTE: This is still non-portable and error
prone solution. Pls see my thought on dev list
about possible solutions to use precompiled
Harbour headers compiled right into the executable.
* contrib/hbqt/tests/wvtqt.hbp
* contrib/hbxbp/tests/wvtqt.hbp
! Added missing SVN header.
% Cleanup.
* INSTALL
* contrib/hbpost.hbm
* config/global.mk
* Changed HB_BUILD_IMPLIB to HB_INSTALL_IMPLIB to reflect
new meaning after recent changes. With new build system
the implibs are always created in lib working dir, and
this setting only controls whether to copy it to final
install directory. The default is still 'no'. Setting it
to yes is only recommended if the installation will be
used in local environment (3rd party .dlls) only. IOW
never set this to yes when creating a build for other
users (f.e. for distribution).
INCOMPATIBLE if you used this setting, pls change it now.
* INSTALL
+ Documented HB_STATIC_* options.
* contrib/make.hbs
* Updated TODO list.
* src/debug/debugger.prg
* src/rtl/dirscan.prg
* tests/wcecon.prg
* contrib/xhb/traceprg.prg
* contrib/hbqt/tests/wvtqt.hbp
* contrib/hbqt/generator2/hbqtgen2.prg
* contrib/hbxbp/tests/demoxbp.prg
* contrib/hbxbp/tests/dialogqt.prg
* contrib/hbxbp/tests/wvtqt.hbp
* contrib/hbhpdf/tests/harupdf.prg
* contrib/gtwvg/tests/wvgtbrowser.prg
* contrib/gtwvg/tests/wvgwvtclasses.prg
* contrib/hbtip/tests/dbtohtml.prg
* contrib/hbtip/mail.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idetools.prg
* contrib/hbide/idesources.prg
* contrib/hbide/hbide.prg
* examples/uhttpd2/umain.prg
* examples/hbvpdf/tests/pdf_demo.prg
* examples/httpsrv/uhttpd.prg
* examples/httpsrv/cgifunc.prg
* examples/httpsrv/modules/tableservletdb.prg
* examples/httpsrv/session.prg
* HB_OSPATHSEPARATOR() -> HB_PS()
% Delete temp vars along the way.
* utils/hbmk2/hbmk2.prg
+ Generalized internals for support for older Harbour and
xhb versions.
+ Added -hb20 option. (thanks for asking for it so nicely ;)
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* HB_CONTRIBLIBS -> HB_BUILD_CONTRIBS
* contrib/make.hbs
! Adjusted wording in log output.
* utils/hbmk2/hbmk2.prg
! Fixed bad regression caused by extending filters to
all options. I reverted it. It has a killer effect
without huge benefit. Maybe it will be implemented
differently in the future.
The user effect of the regression was that libs were
created in bin dir.
* Cleaned some variable names passed to plugins.
* utils/hbmk2/examples/plug_tpl.hbs
+ Added comment about requirement of reentrancy.
* utils/hbmk2/hbmk2.prg
- Deleted handling of .hbi extension.
- Deleted -target and -alltarget cmdline options as an
effort for simplification. Now all cmdline options apply
to all targets.
+ .hbp file references will now be executed as sub-projects,
using an internal recursive call to the hbmk2 engine.
This means that projects can now be embedded. INCOMPATIBLE
if someone used .hbp file references inside other make
files. If you want to create common settings in a separate
file, always use .hbm extension.
Pls note that sub-projects will inherit all cmdline options
of original hbmk2 invocation.
+ Added ${hb_targetname} macro to return the parent project
name.
+ Added ${hb_targettype} macro. Returning target type.
+ Changed -run option to only run the top level project.
+ Changed --hbinfo to return a flat list of information
about all projects involved. Currently the main project
is the last one in the list (order of execution).
+ Filters can now be used also for file inclusion and -skip
options (which means they can now be used for all possible
cmdline and .hbm/.hbp options)
! Fixed the way automatic cmdline options based on
hbmk2's own filename are created. From now -hbcmp, -hblnk,
-hbcc, -rtlink, -xhb, -hb10 will be added to the left side
of the existing option (to precede everything else), while
the rest (f.e. -hblib, -hbexe, -hbdyn) will be added last.
; NOTE: Quite heavy changes so pls expect (and report) any
regressions. Most probably there will be room for
tweaks here and there to make the new cascading build
feature as smooth as possible.
* contrib/make.hbs
% Internally simplified since now the handling of sub-projects
is the job of hbmk2 and .hbp make files.
+ In standalone mode it will now detect the name of the project
in current dir, so the codepaths are much similar to the
GNU Make mode now and stdalone mode will also rely on pkglist,
instead of trying to detect what to build on its own.
+ Not require pkglist to list any sub-projects anymore, now
it's simple list of main .hbp files.
+ Changed along with hbmk2 to deal with multiple project
information returned by --hbinfo.
+ Avoid using the word "contrib", use "package" instead.
* contrib/pkglist
* Simplified to a mere list of main .hbp files for packages.
* utils/hbrun/hbrun.prg
* contrib/make.hbs
* config/postinst.hbs
* PathSepToSelf() rewritten to not make assumptions about
__PLATFORM__* macro vs hb_ps() value, instead use hb_ps()
value to decide what to do.
* utils/hbrun/hbrun.prg
! Fixed to not save the (empty) history after each non-interactive
session.
* config/win/cygwin.mk
! Fixed to add z and pcre libs if the locally hosted ones
aren't used.
* contrib/hbqt/generator/hbqtgen.prg
! Fixed OS names in doc output.
* Formatting.
* contrib/gtalleg/gtalleg.hbm
* contrib/gtalleg/gtalleg.hbp
* contrib/gtalleg/gtallegs.hbp
* contrib/hbcurl/hbcurl.hbm
* contrib/hbcurl/hbcurl.hbp
* contrib/hbcurl/hbcurls.hbp
* contrib/hbtip/hbtip.hbm
* contrib/hbtip/hbtip.hbp
* contrib/hbtip/hbtipssl.hbp
* contrib/hbssl/hbssl.hbm
* contrib/hbssl/hbssl.hbp
* contrib/hbssl/hbssls.hbp
* contrib/hbqt/hbqt_common.hbm
- contrib/hbqt/hbqt.hbm
+ contrib/hbqt/filelist.hbm
* contrib/hbqt/hbqt.hbp
* contrib/hbqt/hbqts.hbp
* contrib/hbqt/hbqtgui.hbp
* contrib/hbqt/hbqtguis.hbp
* contrib/hbqt/hbqtcore.hbp
* contrib/hbqt/hbqtcores.hbp
* contrib/hbqt/hbqtnetwork.hbp
* contrib/hbqt/hbqtnetworks.hbp
- contrib/hbqt/gtqtc/gtqtc.hbm
+ contrib/hbqt/gtqtc/filelist.hbm
* contrib/hbqt/gtqtc/gtqtc.hbp
* contrib/hbqt/gtqtc/gtqtcs.hbp
* contrib/hbqt/qtwebkit/hbqtwebkit.hbp
* contrib/hbqt/qtwebkit/hbqtwebkits.hbp
* contrib/hbqt/qtdesigner/hbqtdesigner.hbp
* contrib/hbqt/qtdesigner/hbqtdesigners.hbp
* contrib/hbqt/hbqscintilla/hbqscintilla.hbp
* Cleanup along with latest changes:
Using ${hb_targetname} instead of ${hb_name}, so it's safe to
use it inside .hbm file, instead of replicating them in every
.hbp file.
+ Now primary .hbp project files always reference the sub-project
.hbp files:
- hbqt
+ hbqts
+ hbqtcore
+ hbqtcores
+ hbqtgui
+ hbqtguis
+ hbqtnetwork
+ hbqtnetworks
Which means that 'hbmk2 hbqt.hbp' will rebuild the whole
stuff (all libs, and even static libs if requested) in one pass.
* Renamed some file for more uniform layout.
* utils/hbmk2/hbmk2.prg
! Fixed stupid error not allowing to add the same install
path for multiple groups.
! Fixed to not create workdir in --hbinfo mode.
% Do not install twice the implibs defined in dependencies.
* contrib/make.hbs
+ Make sure to disable envvars influencing build options
also in stdalone mode.
* src/rtl/stuff.c
! Fixed GPF in STUFF() when HB_SIZE is signed value.
(HB_SIZE_SIGNED mode)
* contrib/make.hbs
% Normalized some dirs to give cleaner and shorter output.
+ Shows HB_BUILD_CONTRIBS value.
! Fixed to only generate doc once for multi-hbp packages (HBQT f.e.).
% Internal cleanups.
* contrib/hbqt/hbmk2_plugin_qt.hbs
+ Honor HB_WITH_QT also on OS/2.
* Internal. Feedback is still not perfect.
* utils/hbmk2/hbmk2.prg
+ Normalize implib source dirs, -o dirs, -workdir dirs.
+ Implibs automatically generated for dependencies are now put
in the 'implib' install target category, so they can be controlled
separately.
* contrib/hbpost.hbm
! Fixed to only install new automatic implibs when HB_BUILD_IMPLIB=yes.
; TODO: Rename this setting to HB_INSTALL_IMPLIB (or some better
name). Now implib are always made, this setting only controls
whether to install them (f.e. we don't want to install them
when creating package for distribution).
- Deleted stuff belonging to stdalone -hbimplib targets. This
method is deprecated inside contrib area.
* config/global.mk
- Do not show HB_CONTRIBLIBS value anymore.
* 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/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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* utils/hbmk2/Makefile
* utils/hbmk2/hbmk2.prg
+ Added build time configuration for GPM (on Linux) and
WATT (on MS-DOS) builds. This makes hbmk.hbc generation
(at 'install' phase) unnecessary, which means that now
'install' is not required on _any_ platforms and scenarios
to use hbmk2. Since hbmk2 is now used to build contribs,
this is now also a reqiurement.
; Please test, I didn't make any Linux, MS-DOS build tests
after this change.
* config/postinst.hbs
- Deleted hbmk.hbc creation. Now this logic is included in
hbmk2 at build-time on Linux and MS-DOS build which have
GPM lib and WATT lib detected respectively.
* contrib/hbct/numline.c
* HB_ISIZ variables renamed.
* include/hbapicdp.h
* src/rtl/cdpapi.c
* src/rtl/cdpapihb.c
+ tests/utf8at.prg
+ Added hb_cdpUTF8StringAt()
; Patch by Carlos Bacco. Many thanks!
* include/hbextern.ch
* include/hbapicdp.h
* src/rtl/cdpapi.c
* src/rtl/cdpapihb.c
; my modifications to above patch:
- Using HB_BOOL instead of int for flag value.
% HB_UTF8AT(), HB_UTF8RAT() optimized to use hb_param(),
plus optimized out variables.
! HB_UTF8AT(), HB_UTF8RAT() fixed 'nEnd < nStart' case.
! Some formatting.
+ Added new functions to hbextern.ch.
* tests/utf8at.prg
* Changed to use UTF8 string as base.
* Avoiding "OEM" and "ANSI" Microsoft misleading terms,
using standard CP names instead.
! Using HB_TRANSLATE() to convert between CPs (instead
of non-portable, Windows-only HB_OEMTOANSI()/HB_ANSITOOEM()
functions).
* Formatting.
* Using '?' instead of QOUT(), plus added simpleio.ch to
allow redirection of output.
* contrib/make.hbs
* Minor step to make dependency evaluation and automatic
sorting of components for build.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added -vcshead support for Monotone version control
software.
% Cleaned and optimized "in dir" C compiler run mode.
(currently used by mingw)
! Fixed "in dir" C compiler run mode when using -jobs=
option for multithreaded builds.
% Little optimization to --hbinfo option.
* utils/hbmk2/hbmk2.prg
! Fixed to rebase -I dirs also, when using new in-dir mingw
(experimental) call method.
* contrib/hbmzip/hbmzip.c
* contrib/hbbz2/hbbz2.c
* contrib/hbmemio/memio.c
* contrib/hbxpp/xppopc.c
* contrib/hbmisc/strfmt.c
* contrib/hbmisc/stringsx.c
* contrib/hbtip/utils.c
* HB_SIZE/HB_ISIZ variables renamed.
* contrib/hbmemio/memio.c
* HB_ULONG -> HB_SIZE in missing places.
* contrib/hbtip/utils.c
* contrib/hbtip/thtml.prg
* PSTRCOMPI() function renamed to __TIP_PSTRCOMPI()
INCOMPATIBLE: If someone by any chance used this internal
worker function in user code, pls update the name.
% __TIP_PSTRCOMPI(): optimization.
* src/rtl/hbdoc.prg
* include/hbextern.ch
+ Added __HBDOC_TOSOURCE( <aEntry> ) which is able to
rebuild original HBDOC source from memory variable.
ATM language information is lost in the process, this
will have to be solved in the future.
* utils/hbmk2/hbmk2.prg
+ Added experimental optimization to mingw build, where the
compiler is called only once to compile all files. Since
gcc doesn't have a switch for that, it's done in tricky
way by changing directory and recalculating source dir
relative from workdir. Now it's active by default, pls
report any build errors, especially in multithreaded mode.
* contrib/hbqt/generator/hbqtgen.prg
* Cleanups
* contrib/hbwin/win_shell.c
! Reverted previous patch 2010-07-13 08:55, it broke mingw builds.
* utils/hbmk2/hbmk2.prg
! Fixed to honor -stop option in -hbimplib mode.
! Fixed --hbinfo when there is missing dependency.
* contrib/hbmysql/hbmysql.hbi
* contrib/gtalleg/gtalleg.hbi
* contrib/sddmy/sddmy.hbi
* contrib/sddfb/sddfb.hbi
* contrib/hbblat/hbblat.hbi
* contrib/hbfbird/hbfbird.hbi
* contrib/sddpg/sddpg.hbi
* contrib/hbcurl/hbcurl.hbi
* contrib/hbhpdf/hbhpdf.hbi
* contrib/hbpgsql/hbpgsql.hbi
* contrib/rddads/rddads.hbi
* contrib/hbfimage/hbfimage.hbi
* contrib/hbgd/hbgd.hbi
* contrib/sddoci/sddoci.hbi
* contrib/hbcairo/hbcairo.hbi
* contrib/hbssl/hbssl.hbi
+ Added -stop option in case HB_WITH_* var is empty.
This helps reducing some clutter in build log output.
* contrib/make.hbs
! Fixed to clear target type detection result from previous
contrib (even though such case cannot happen if hbmk2
does it's job right)
* contrib/hbdoc2/gentpl.prg
* contrib/hbdoc2/gentxt.prg
* contrib/hbdoc2/tmplates.prg
* contrib/hbdoc2/genxml.prg
* contrib/hbdoc2/genhtml.prg
* contrib/hbdoc2/hbdoc2.prg
* contrib/hbdoc2/hbdoc2.ch
% Peeling off unused code and other cleanup work.
(didn't retest)
* include/hbextern.ch
* src/rtl/Makefile
+ src/rtl/hbdoc.prg
+ Added __HBDOC_LOADDIR() internal RTL function to read
NFDOC formatted documentation source directories into
memory. The result will be a list of hashes which contain
the raw content of doc files. The function does format
validation (but not content) and add all agreed-on metadata
to the hashes.
It's a start and I hope others can join to create new
layers of function for below functionality:
- doc content validation
- pre-formatting
- output generators
The goal is to avoid local solutions and standardize
the format.
+ tests/hbdoctst.prg
+ Added small test app which will find and parse all
documentation inside the Harbour source tree and
save them in .hbd (serialized doc hash) format.
Such .hdb files can be generated by the build process
in the future, so tools like HBIDE can use the content
to display intellisense or built-in help.
; TODO: HBQT doc/html should be removed as it's
hbdoc tools' job to convert HBDOC source
format to html or whatever else format needed.
* harbour.spec
* debian/rules
- doc/man
+ src/pp/hbpp.1
+ src/main/harbour.1
+ utils/hbmk2/hbmk2.1
+ utils/hbtest/hbtest.1
+ utils/hbrun/hbrun.1
* Moved man doc files to their own component dirs.
* doc/Makefile
* doc/en/Makefile
+ doc/clipper.txt
- doc/en/clipper.txt
* Moved non-NFDOC formatted doc file to doc dir.
* doc/en/Makefile
! Fixed missing 1stread.txt
* doc/en/hb_apigt.txt
* doc/en/hbinet.txt
* doc/en/tbrowse.txt
* doc/en/hb_apifs.txt
! Fixed NFDOC non-standard entries.
* bin/hbxpatch.hbs
! Fixed detecting dirs. (could cause errors only in rare cases)
* contrib/hbdoc2/tmplates.prg
* Formatting.