* harbour/source/rtl/hbi18n2.prg
+ added new Harbour internal i18n functions:
__I18N_POTARRAYTRANS() and __I18N_HASHJOIN()
* harbour/utils/hbi18n/hbi18n.prg
+ added new switch to hb18n tool:
-a add automatic translations to 1-st .pot file using
translations from other .pot or .hbl files
* contrib/hbole/tests/testole.prg
+ Readded CDO and OO open examples (working).
* utils/hbmk2/hbmk2.hbm
+ Added .hbl file generation.
* utils/hbmk2/hbmk2.prg
+ Added translator info to banner.
! Minor fix to now display job # if single-threaded compilation is done.
(Thanks for __enumBase() trick to Przemek)
* Some steps to better support xhb shared mode (untested).
+ Added filter support for .prg and .c/.cpp input files.
(This also means that input files with '{' '}' char pairs in them
aren't supported anymore).
! Minor terminology fix in one of the rare error messages.
; TODO: ? Adding GNU Make support to .pot -> .hbl generation, plus
we'd also need to develop a common rule for naming and
placement for these translation files. Current hbmk2 method
cannot be considered final.
+ utils/hbmk2/hbmk2.hu_HU.pot
+ Added Hungarian translation (not complete/final yet).
* utils/hbmk2/hbmk2.prg
+ Added experimental and partial support to build using/for xhb.
This is to help some 3rd party lib developers who'd like to
target both compilers. Some aspects of xhb support aren't working
or working slightly differently: Default Harbour switch is
-n instead of -n2 which isn't supported in xhb. Everything
related to dll handling won't currently work. Cross-compiling
won't work either due to at least differences in __PLATFORM__
macros. Anyway, play with it and tweak the source if needed.
I hope we can add support without adding too much hacks into
hbmk2 source, if however we need to bend logic too far, I'd
rather leave those problematic parts of to keep the code
maintainable. F.e. xhb compatible COMP/ARCH values aren't
supported and I don't plan to add them.
Enable support by renaming hbmk2 to have an 'x' prefix: xhbmk2,
or use -xhb command line switch. The only intent is be able
to use hbmk2 to build binaries from sources using xhb compiler
and libs. Also notice that I've made just very light tests
only with bcc55 compiler.
[ notice: xhb support doesn't mean you can compile hbmk2 with
xhb. This wasn't intented or planned. ]
* utils/hbmk2/examples/contribf.hbp
! Fixes.
* utils/hbmk2/hbmk2.prg
* Cleanup: Added few internal constants.
* Cleanup: Some debug strings marked as non-translatable.
+ Help screen forming changed to be friendly to translators.
Please update .pot files.
* utils/hbmk2/hbmk2.prg
+ Added multilanguage support. Now LC_ALL, LC_MESSAGES and
LANG envvar will be checked for language ID and loading
of translation will be attempted from <hbmkdir>hbmk2.<lang>.hbl
file (not final name yet). You can compile such .hbl file by using
command:
> hbi18n -g -ohbmk2.<lang>.hbl hbmk2.<lang>.pot
You can create .pot using this command:
> ..\..\bin\harbour hbmk2.prg /jhbmk2-<lang>.pot /i..\..\include
Where <lang> is preferable the std ISO language ID, like: pt_BR.
* utils/hbmk2/hbmk2.prg
+ Changed all output texts to translatable format, using hb_StrFormat().
+ Added hb_i18n_gettext() to all translatable texts, so now it's possible
to create a .pot file. It's not yet perfect for the help text yet.
* utils/hbmk2/hbmk2.prg
+ Added MT support for rest of C compilers (gcc, pocc).
Please test. MT support is now complete, maybe in the
future it can be added for resource compiling if that's
a bottleneck for some users.
* bin/postinst.bat
+ Added generation of libpq.lib from .dll for msvc. (not tested)
+ Added generation of QT implibs for msvc. (not tested)
+ Copying QT implibs for mingw.
* source/common/hbverdsp.c
! Minor in comment.
* utils/hbmk2/hbmk2.prg
+ Added MT support for C compilation phase.
Single input compilers aren't covered yet (gcc, pocc).
+ Added -debugtime internal option to measure running time.
* utils/hbmk2/hbmk2.prg
+ Added -vcshead=<file[.ch]> option. This will generate
a header with local repository information: type of
repository and unique ID (in case of SVN this is the
revision number).
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hbm
* utils/hbmk2/Makefile
+ Added experimental support for multithreaded compilation.
Enable with -jobs=<x>.
Currently Harbour compilation phase supports MT.
If it works out well and details are polished, the same
can be implemented for C/resource compilation phases, too.
I'd appreciate of someone with MT experiences could review
current code and spot bugs/problems with it before I go
any further.
* Changed to build hbmk2 in MT mode.
* utils/hbmk2/hbmk2.prg
! Readded -map support for *nixes.
! Changed -strip support for darwin to use separate strip command.
+ .hbmk dir is now set hidden.
+ Target name is displayed on screen.
* ChangeLog
- Removed one empty line from license header after last commit.
(Przemek pls update your script to reflect that)
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt.h
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/Makefile
! Fixed to use no dir when including qglobal.h. This fixes
darwin compile error.
* utils/hbmk2/hbmk2.prg
! Fixed static lib output extension for rest of compilers (*nix/gcc).
! Fixed 'lib' prefix handling for static lib output names when dir
was present in the name.
* Now -inc files will be put into .hbmk/* dirs.
! Disabled -map option for *nix gcc as it doesn't seem supported
(probably isn't needed on these platforms anyway).
% Cleaned code redundancy in forming output names.
; TOFIX: gcc/darwin complains that -s switch is obsolete and being ignored.
* COPYING
+ Added Creative Commons Attribution-ShareAlike 3.0 Unported (CC-by-sa)
license section. To be used for misc text, documentation and typically
everything which isn't source/program code. Currently these files
(in part or whole) are covered by this license:
INSTALL
ChangeLog
doc/whatsnew.txt
; TODO: If this works out well, IMO we should apply this license to
all non-code parts of our repository. /doc, /man sections
and some files in the root specifically. We can also cover
the homepage content with this license.
* INSTALL
+ Added CC-by-sa license.
* doc/whatsnew.txt
* ChangeLog
+ Added CC-by-sa license. I've covered all my past entries with
this license, besides these, only the new entries will fall
under the license.
* contrib/hbblat/blatwrp.c
! Fixed extern declaration to work in C++ mode.
* source/lang/msgtrwin.c
* source/lang/msgtr857.c
! Typos in comments.
* source/vm/set.c
+ Added copyright for few functions (hb_osEncode()/hb_osDecode()).
* utils/hbmk2/hbmk2.prg
! Fixed RTE in Harbour-only (-gh) mode.
* INSTALL
* Changed QT examples according to 4.5.1 new default dir layout.
* contrib/gtqtc/tests/demoqtc.prg
! Removed zip dependency.
* contrib/gtqtc/tests/wvtext.prg
! Fixed non-lower case filename.
! Fixed wrong reference to test .ico file.
BTW, is .ico portable? I doubt, so we should probably
switch to .png in context of QT.
! Fixed wrong reference to test.dbf.
* contrib/hbqt/tests/hbqt.hbp
* contrib/gtqtc/tests/gtqtc.hbp
+ Added support for HB_QT_DIR envvar to find QT libs.
This is the same envvar which is needed for Harbour
builds, so you may already have it set up.
; TODO: If this works out well, I'll add the same method
for other contribs too.
* utils/hbmk2/hbmk2.prg
+ libpaths will now be checked for existance before being
added to the list.
* utils/hbmk2/hbmk2.prg
* Finished to .pot support (changed po to pot).
* Renamed po= .hbp setting to pots=.
! Few minor fixes in error cases in .hbl generation.
* utils/hbi18n/hbi18n.prg
! Typo in header.
* utils/hbmk2/hbmk2.prg
* Changed to not try to create an .hbl automatically if no
explicit .hbl file is passed or -hbl option used. Instead
now -hbl= or -hbl option will force creation of an .hbl
file with an automatic name.
+ Implemented .po to .hbl conversion inside hbmk2, with
incremental feature (.hbl will only be regenerated if any
.po file dependencies are newer). This is currently the
default, no -inc switch is needed for that.
You can specify .po files in the command line, in po=
lines in .hbp files, output file is passed via -hbl= option.
To handle multiple languages without hassle, you can use
${lng} macro in .po and .hbl filenames, plus pass the list
of languages in -lng=<lang comma list> option:
app_${lng}.po -hbl=lang/${lng}.hbl -lng=en,hu,sk,pl
[ Actual .po -> .hbl conversion code was taken from hbi18n
tool made by Przemek, with little modifications. ]
! Fixed to check included .res file timestamp, but not parse it.
+ Added macro support in libs= .hbp lines.
* utils/hbmk2/hbmk2.prg
+ Added new CPU architecture filters: x86, x86_64, ia64, arm
+ Added new CPU macro: ${hb_cpu} (returning values above)
! Fixed filter keyword detection on darwin due to typo.
* utils/hbmk2/hbmk2.prg
+ Added filter support to -o option.
+ Added macro support to -o option.
! Fixed missing win system libs from bcc linker command.
IMPORTANT: bcc users will have to make sure they add bcc PSDK
lib to their bcc32.cfg and ilink32.cfg files,
otherwise hbmk2 won't work for them:
--- bcc32.cfg
-I"C:\devl\BCC55\Include"
-L"C:\devl\BCC55\Lib";"C:\devl\BCC55\Lib\PSDK"
--- ilink32.cfg
/L"C:\devl\BCC55\Lib";"C:\devl\BCC55\Lib\PSDK"
---
(or manually pass that with -L option to hbmk2)
* -i option moved to main help screen.
* utils/hbmk2/examples/fwh.hbp
+ Added odbc32 lib.
* utils/hbmk2/hbmk2.prg
! Fixed to find headers in originating file directory.
This may need further tweaking. This works a little
differently in Harbour and C compilers and hbmk2 tries
to mimic both. Possible that it's still not fully
compatible, if you know something pls speak up.
+ Added -incpath= option and incpaths= .hbp option. This
is now the preferred method to add headers paths. All
path will be added to both Harbour and C compiler.
Important: a synonym for this switch is simply -i, just
like before, but now the path will be also added to
C compiler command line.
* From now on Harbour include dir will always be the first
one on the include path list passed to compilers. Before
in Harbour it was always first, in C compilers it was
always last. (disregarding include dirs passed directly
to compiler, which will always come first, but isn't
recommended). The ordering is thus this:
compiler ... flags harbourincludedir incpaths ...
- Deleted include path option detection, from now on
only those paths will be scanned wich were passed to
hbmk2 via -incpath/-i options.
% Added -kmo optimization for hbmk2 source.
+ -info and -quiet will now work in .hbm files.
(they will not control some close-to-startup messages
if specified this way though)
* external/libhpdf/Makefile
* external/libpng/Makefile
+ Enabled for darwin.
* contrib/hbqt/generator/hbqtgen.prg
! Recent fix to hbqt.h applied to generator.
* utils/hbmk2/hbmk2.hbm
- Removed no longer needed -km switch.
* utils/hbmk2/examples/hmg.hbp
* utils/hbmk2/examples/hwgui.hbp
* utils/hbmk2/examples/fwh.hbp
% Updated to use -incpaths=
* utils/hbmk2/examples/fwh.hbp
* Updated to work like similar hwgui and hmg files.
; QUESTION: Is hbwin lib required for FWH?
* utils/hbmk2/hbmk2.prg
+ -quiet will now suppress command output in case of error.
This is useful when the commands are large and it makes
valuable tool output visible.
! Fixed recent typos in help code causing RTE.
* utils/hbmk2/hbmk2.prg
+ Using hb_process*() functions instead of hb_run() to elminiate
some bad side effects of the former (like command line limits
on Windows). hb_run() is now only used in DOS builds.
* utils/hbmk2/hbmk2.prg
! Fixed to inherit .hbm dir before doing wildcard expansion.
This makes wildcarded input files work in .hbm files
located in different than current dirs.
* utils/hbmk2/hbmk2.prg
+ .c header detection now takes place before doing anything.
Also compiler setup got moved to the beginning of the
process.
This allows to make a stop if something is missing. Some
more steps are needed to exploit that in practice.
Please test, this may cause regressions, I didn't test
all combinations.
* Generalized internal support for header location detection.
(now can support any C compiler and it's also possible to
add this feature for .prg files if needed)
+ Added new filter keywords: allgcc, allwin, allmingw, allmsvc,
allpocc, allicc.
+ Added support for include dirs with spaces for msvc and mingw.
* utils/hbmk2/hbmk2.prg
+ Added experimental support for header directory autodetection.
This means that you can pass a list of possible dirs to use
when a .c header cannot be found in explicitly passed locations.
! Fixed to always disable -shared with -hbdyn.
! Added hbmaindllp in -hbdyn mode on win|wce.
! Fix in -nohbp parameter handling.
+ Added support for macros in -L, -*flag=, -workdir=
+ Added -stop command line parameter which stops execution.
Can be used in conjunction with arch/comp filters to stop
execution on certain platforms/compilers.
! Fixed to not create workdir in some unlikely combination of options.
! Fixed typo causing newer headers not being detected in resource files.
+ Now 'unix' can also be used in filters to check for any *nix platform.
% Excluding some well-known headers from parsing (windows.h, ole2, os2.h
currently)
; Above changes makes it possible to use hbmk2 to build our contribs.
The only missing feature is 'install', what is a simple copy.
---
-ohbpgsql
# just for the sake of an example, not needed for real hbpgsql.
-stop{dos}
-inctrypath=${HB_INC_PGSQL}
-inctrypath={unix}/usr/include
-inctrypath={unix}/usr/local/pgsql/include
-inctrypath={unix}/usr/local/pgsql/include/libpq
-inctrypath={unix}/usr/include/pgsql
-inctrypath={unix}/usr/include/postgresql
-inctrypath={unix}/postgres/include
-inctrypath={unix}/opt/local/include/postgresql83
postgres.c
pgrdd.prg
tpostgre.prg
---
* contrib/hbole/oleinit.c
* contrib/hbole/hbwinole.h
* Cleanups in header usage and content. This should fix
missing hb_oleInit() symbol on some compilers.
* contrib/examples/pp/hbpptbl.c
- Removed HB_EXTENSION protected two lines.
* source/vm/Makefile
+ Enabled "amalgamated" VM lib for all compilers/platforms,
except for those where this doesn't give any advantage, or
it breaks the build, these are: pocc*, xcc, bcc, dmc.
Please note that Open Watcom 1.7 might also fail (I didn't
test), so make sure to upgrade to 1.8.
* harbour-win-spec
* harbour-wce-spec
* mpkg_win.bat
* mpkg_tgz.sh
* harbour.spec
* bin/hb-func.sh
* include/hbsetup.h
* source/vm/Makefile
* source/vm/fm.c
- source/vm/fm
- source/vm/fmmt
* utils/hbmk2/hbmk2.prg
- Removed hbfm and hbfmmt lib references. These libs are
no longer generated or used.
* Narrowed HB_FM_STATISTICS presence in various source
files. From now on the system default for all builds is
HB_FM_STATISTICS_OFF. We may change this to
HB_FM_STATISTICS_DYN_OFF if we find a solution to the
potential and actual problems with this method.
If someone needs to change mem stat default, it can be
done by ususal means.
* utils/hbmk2/hbmk2.prg
+ Added support for envvar HB_VISUALC_VER_PRE80 to signal
older MSVC versions (just like in Harbour builds).
+ Synced mscvarm optimization switches.
The sync between hbmk2 and Harbour build switches is
now done. The only - intentional - difference is that
hbmk2 won't set any explicit C compiler warning level,
but this also can be implemented later with optional
switches.
! Fixed regression in win/icc linker name.
* utils/hbmk2/hbmk2.prg
! Fixed -strip for gcc family. It got broken after switching
to separate link phase.
! Fixed -bind_as_load and -multiply_defined suppress to be
passed at link phase on darwin. Got broken like above.
Change not tested.
! Fixed RTE in FINDNEWERHEADERS(3064).
* utils/hbmk2/hbmk2.prg
+ Added -opt/-noopt switch (plus .hbp param) to control
C compiler optimizations.
+ Added C compiler optimizations to all compilers identical
to the ones used to build Harbour. Specifically MinGW,
MSVC got new switches, bcc got -6, owatcom got fully
synced.
+ Added internal support for C++ mode selection for all
compilers.
+ Added -debug support for all compilers where it was missing
(most).
! Synced poccarm switch with Harbour build.
- utils/hbmk2/examples/minigui.hbp
+ utils/hbmk2/examples/hmg.hbp
+ Harbour MiniGUI hbmk2 param file updated
and instructions added. Now it's possible
to build hmg apps using hbmk2 very easily,
see instructions in file.
* utils/hbmk2/examples/hwgui.hbp
+ hwgui hbmk2 param file updated and
instructions added. Now it's possible
to build hwgui apps using hbmk2 very easily,
see instructions in file.
* source/vm/itemapi.c
* source/rtl/hbffind.c
* contrib/hbct/atnum.c
! Fixed macro related warnings.
* utils/hbmk2/hbmk2.prg
+ Added support for wildcarded input files for Harbour,
C, resource compiler and object input files.
This also works in .hbm files. Note: You must specify
the extension, so *.* won't work, but *.prg and *.c will.
Use with care, as hbmk2 will pickup everything and this
may not be what you want to do f.e. in our tests dirs,
but it can be useful if you store source files belonging
to the same project in one dir, or with some unique
filename prefix.
(some of these may be unnecessary on *nix platforms, where
the shell does such expansion already, it's still useful
though, as *nix users can also benefit from wildcard usage
inside .hbm files)