+ contrib/hbcurl/hbcurls
+ contrib/hbcurl/hbcurls/Makefile
* contrib/hbcurl/Makefile
+ Added generation of static flavour of hbcurl. This can
be used to link against static libcurl.
* utils/hbmk2/hbmk2.prg
! Fixed target exe name with msvc.
! Added /debug link switch for msvc in -debug mode.
* utils/hbmk2/hbmk2.prg
+ Added -clean option to clean incremental work files and dir.
+ Added -rebuild option to force full rebuild in incremental mode.
* utils/hbmk2/hbmk2.prg
* Autodetection of embedded MinGW installation is now done
*after* trying to detect user installed compiler. This way
it's more natural to use the unified build as it will
automatically use the user's C compiler if setup. It's also
easier to override MinGW in unified builds, since there
is no need to force compiler using -comp: option, it's
enough to put preferred C compiler in the PATH.
* utils/hbmk2/hbmk2.prg
+ Added -workdir:<dir> cmdline option to override default
working dir (arch/comp) in -inc mode.
+ Added support for working directory in -inc mode.
Due to lack of output dir option in certain compilers
(most sadly in gcc family), these compilers will have to
be executed for each input file, slightly reducing
performance. I hope some day their developers will add such
basic option.
+ -quiet option will now suppress the header lines for
executed commands, creating a good progress output with
'-trace -quiet'.
! Fixed output related regressions in msvc/bcc.
* Removed explicit warning level settings from C compiler
options. User can override if needed.
* Returns errorlevel 19 instead of 9 in help mode. Now
returns 9 if the working dir couldn't be created.
! Fixed resource compiler command for bcc, msvc, pocc.
Turns out none of them supported multiple inputs.
% Minor code size optimization in target output dependency
checking.
* utils/hbmk2/hbmk2.prg
! Fixed to delete stub object in -inc mode.
! Fixed to handle .res input files with MinGW compilers.
+ Now using different extension (.reso) for compiled .rc and
.res file with MinGW compilers instead of former .o extension
which could collide with source files with the same name.
* utils/hbmk2/hbmk2.prg
* Added separate compile and link phases for gcc family.
Please retest, this may cause regressions.
* win/bcc made to use separate compile/link phases in all
cases.
+ Added simple progress in -inc mode.
! Fixed to detect target timestamp in hblib/hbdyn modes.
* utils/hbmk2/hbmk2.prg
+ Added support for incremental build mode. Still a work in
progress, many combinations weren't tested and some features
may not work with certain compilers yet. (bcc/msvc/pocc/owatcom
should be working, only msvc was tested)
+ Added support for multiple resource input files for mingw
and owatcom.
+ Added support for inc=on/off .hbp option.
+ msvc targets now use separate link phase. This will automatically
enable incremental linking if target already exists.
! Fixed not prepending CCPATH to resource compiler in mingw mode.
* tests/speedtst.prg
! Fixed missing hb_progname() for non-Harbour compilers.
* include/hbextern.ch
+ Added time related new functions.
* utils/hbmk2/hbmk2.prg
+ Added -runflag: option to pass flags to target executable.
+ Started -inc (incremental link) support. It's very early
stage, don't expect it to work yet and please don't report
any problems with this feature yet.
* source/vm/asort.c
! Fixed to return Clipper compatible results when non-logical
non-numeric value is returned from ASORT() codeblock.
* utils/hbtest/rt_array.prg
* Cleaned ASORT() tests when sorting block returns constant value.
Now Clipper results aren't bent anymore, instead I've added
different expected results for Harbour and Clipper. The
difference is due to different sorting algorithms used,
here the point is to get similar *pattern* for different
invalid values.
* source/rtl/philes.c
% HB_FGETDATETIME(): Removed double call to hb_stortdt().
* contrib/hbqt/tests/hbqt.hbp
* Removed extra line at EOL.
* contrib/gtqtc/tests/hbqt.hbp
! Removed environment dependent 'libspath=' line.
Please don't add such path to Harbour SVN, since these
can differ from system to system and is also non-portable.
The correct name of the directive is: 'libpaths='.
* contrib/gtqtc/Makefile
% Removed double SVN ID.
This file needs to be updated according to hbqt latest
Makefile portability changes.
* contrib/rddads/ads1.c
* Minor formatting.
* utils/hbmk2/hbmk2.prg
+ Added executable / dll compression using -compr switch.
hbmk2 uses UPX, which needs to be in PATH to work.
Not having UPX won't cause a fatal error even when -compr
switch is specified.
* utils/hbmk2/hbmk2.prg
! Possible fix for *nix shared lib problem when Harbour
is installed in system location. Couldn't test it.
* ar now called with 'rcs' parameter (was: cr).
Advertized as runlib equivalent, but it doesn't seem to
make any difference.
* bin/postinst.bat
! Fixed shared executable creation for cross-builds.
* utils/hbmk2/hbmk2.hbm
* utils/hbi18n/hbi18n.hbm
% Added -nulrdd. This will remove the hbmk2 build size overhead
compared to GNU Make built executables.
* utils/hbmk2/hbmk2.prg
! Don't add the same libdir twice in some cases.
+ Added support for wce arch in remaining places.
! Added hbmainwin and hbmainstd for mingw targets.
This should fix some failing shared lib scenarios I've
experienced with minwgce. I hope it doesn't break
everything else (tested mingw64 and mingw scenarios worked).
* Internal change to handle shared libname separately
so that special extensions and handling can be added
for it, if needed.
* utils/hbmk2/hbmk2.prg
! Fixed to properly set errorlevels. For some reason I thought
returning a number from MAIN() will set the errorlevel. Now
using ErrorLevel() function.
* contrib/hbqt/generator/rebuild_hbqt.bat
* Added errorlevel checking after hbmk2 call.
! Removed HB_COMPILER check.
* bin/hb-mkdyn.bat
* owatcom tweaks. Build is still going dunno if this will be okay.
* contrib/hbqt/generator/rebuild_hbqt.bat
* Added hbmk2 dir.
* utils/hbmk2/hbmk2.prg
! Fixed stupid MSVC typo.
* utils/hbmk2/hbmk2.prg
+ Added --hbdirbin, --hbdirlib, --hbdirinc
+ Added --version and --help to help screen.
! Changed to use OS native slashed in path when calling harbour executable.
+ -quiet will now suppress messages when -traceonly option is used.
Script dumps will still have a header for clarity.
+ Will now dump harbour executable name to Harbour command -trace
output, even if internal compiler is used.
* utils/hbmk2/hbmk2.prg
! Fixed finding shared libs since /lib/<arch>/<comp> lib path
autodetection was added. Please test.
+ Added -traceonly cmdline switch which will display all commands to
be executed, without actually executing them. Notice that this isn't
a complete "dry" run, as some temp files will may be created and
normally created temp files are deleted along the process.
* contrib/hbqt/Makefile
! Fix to include statement.
* utils/hbmk2/hbmk2.prg
+ Enabled rtlink/blinker parsing code, so now hbmk2 will
work as a plugin replacement for clipper, rtlink/blinker/exospace
when renamed to these names. Example:
---
> copy hbmk2.exe clipper.exe
> copy hbmk2.exe rtlink.exe
> clipper hello.prg
> echo OUT myhello FI hello > rtl.lnk
> rtlink @rtl.lnk
---
* INSTALL
* Minor.
* utils/hbmk2/hbmk2.prg
! Fixed to add 'lib' prefix when -hblib option is used with
GCC family compilers.
! Fixed to not override compiler output when -hblib option is used.
* contrib/hbqt/generator/hbqtgen.prg
+ contrib/hbqt/Makefile_gen
* contrib/hbqt/Makefile
+ Added Makefile_gen which holds the generated part of
the Makefile. This way there is no (less) hidden make
logic inside hbqtgen.
* config/wce/global.cf
- Removed gtwin.
; TODO: Move GT inclusion logic to GT local Makefiles.
* harbour-wce-spec
* INSTALL
* bin/postinst.bat
* Makefile
* make_gnu.bat
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* contrib/gtalleg/Makefile
* contrib/hbodbc/Makefile
* contrib/hbtpathy/Makefile
* contrib/hbole/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/Makefile
* contrib/hbfbird/Makefile
* contrib/hbwin/Makefile
* source/vm/Makefile
* source/vm/vmmt/Makefile
+ Added wce arch and mingwarm/msvcarm/poccarm support.
In parallel with old win/mingwce|msvcce|poccce support.
As soons as this new one work, the old one will be deleted.
* make_gnu.bat
! Fixed to work like rest of targets for GCC family.
It will now only initiate a 'clean install' if HB_BUILD_DLL=yes.
* utils/hbmk2/hbmk2.prg
+ Added Przemek's code for rtlink/blinker script parsing.
Not yet activated.
* utils/hbmk2/hbmk2.prg
+ Added support for pocc64, poccce. Not tested.
This is a very gray area for pocc. Currently it doesn't work
because polib is broken and doesn't generate an implib:
POLIB: fatal error: Internal error (create_archive_file).
; TOFIX: poccce also doesn't work, but this is probably solvable,
there are unresolved externals when linking.
* utils/hbmk2/hbmk2.prg
+ Added clipper/rtlink/exospace/blinker self-name recognition.
clipper will switch it to hbcmp mode,
rtlink/exospace/blinker will switch it to hblnk mode.
rtlink parameter recognition is yet to be done.
* contrib/hbct/ctmisc.prg
! Fixed CENTER() to not LTrim() the input string.
* contrib/hbwin/wapi_commctrl.c
! 0/1 -> FALSE/TRUE
! Fixed to use proper macro instead of hb_parnint().
% Using hb_arraySetNL() rather than hb_arraySet().
* mpkg_win.nsi
* Minor.
* doc/Makefile
! Removed license.txt.
* INSTALL
+ Added Windows/Windows CE build examples.
Cleaned mingw64 and mingwce cross-builds.
* mpkg_win.bat
* Using make_gnu.sh instead of make_gnu_xmingwce.sh
for mingwce target for uniformity.
* utils/hbmk2/hbmk2.prg
! Fixed silly typo causing RTE if compiler autodetection
fails to detect any tier-one compilers (or none).
+ Added automatic postfixing external Harbour executable
name if hbmk2 executable name is also prefixed. Currently
-x64 and -ia64 are recognized. Useful to call harbour-x64.exe
/ harbour-ia64.exe when hbmk2-x64.exe / hbmk2-ia64.exe is used.
* make_gnu_xmingwce.sh
* config/rules.cf
* config/win/mingwce.cf
* config/win/poccce.cf
* config/win/msvcce.cf
* config/wce/global.cf
* Moved -D__PLATFORM__WINCE to .cf files. This also fixes
missing __PLATFORM__WINCE for poccce and msvcce targets.
* INSTALL
+ Added information on HB_EXTERNAL* envvar settings.
* utils/hbmk2/hbmk2.prg
+ Added support for wce target. Currently in parallel
with win/*ce targets.
* INSTALL
* Moved Windows CE compilers into a separate section.
* bin/hb-mkdyn.bat
* Changes made to allow wce arch. (provision for wce arch)
* mpkg_win.bat
* Allows to override HB_ARCHITECTURE. (provision for wce arch)
+ Include arch in target directory. (provision for wce arch)
* include/hbatomic.h
- Turned off inline asm for _MSC_VER compilers in 64-bit mode. (pocc64, msvc64)
These target don't support inline asm.
This fixes previously reported regressions with these targets.
* utils/hbmk2/hbmk2.prg
% win/owatcom: Pentium Pro scheduling.
* win/owatcom: Temply set back stack calling convention.
* external/libhpdf/Makefile
- Disabled for pocc64 due to errors, even internal compiler error:
---
can't spill register variable: rcx (3) image
../../hpdf_image.c(480): fatal error: Internal error: best_spillee.
---
* config/win/bcc.cf
+ Added comment about -4, -5, -6.
* ChangeLog
! Minor fix to prev entry.
* harbour/config/dos/owatcom.cf
* harbour/config/win/owatcom.cf
* harbour/config/linux/owatcom.cf
* harbour/config/os2/owatcom.cf
* harbour/utils/hbmk2/hbmk2.prg
* removed unnecessary linker options
* use 'SYS causeway' to enable causeway stub in DOS builds instead
of setting it manually. DOS users can also use DOS4G (default) or
PMODE (commercial) stubs.
* harbour/source/vm/dlmalloc.c
! fixed casting
* harbour/source/vm/fm.c
% use DLMALLOC as default memory manager in OpenWatcom Windows builds.
Warning: HB_FM_DLMT_ALLOC does not work with OpenWatcom.
* harbour/config/dos/owatcom.cf
* harbour/config/win/owatcom.cf
* harbour/config/linux/owatcom.cf
* harbour/config/os2/owatcom.cf
* changed alignment settings from 8 to 4
* synced optimization flags used in different builds
! fixed linker parameters when HB_BUILD_DEBUG=yes is set
; TOVERIFY: I do not remember what calling convention should be used
in OpenWatcom MT OS2 builds to eliminate GPF when APIENTRY16 functions
are called. It's possible that current settings are wrong.
* harbour/config/win/owatcom.cf
* removed STACK=65536 from OpenWatcom linker parameters.
This switch probably was inherited from old DOS WatcomC builds.
Later I'll test current OpwnWatcom builds to check if we can also
remove it from DOS builds when cwstub.exe is used.
* restored -bm switch. When DLMALLOC is used it does not cause
noticeable performance reduction.
* use default register calling convention. We can change it
in the future but 1-st we should check the performance overhead.
If calling convention is a problem only for .DLLs then it can
be resolved by modifying HB_EXTERN declaration and adding function
attributes which will force given calling convention.
* harbour/config/linux/owatcom.cf
* enabled pentium pro instruction in OpenWatcom Linux builds.
It reduces the code size and increase performance a little bit.
Windows users which do not need pure pentium CPU support can make
the same.
* harbour/utils/hbmk2/hbmk2.prg
! fixed object extension used in OpenWatcom Linux builds: it's .o not .obj
! fixed linker parameters in OpenWatcom Linux builds: DEBUG ALL is single
option
! fixed OpenWatcom calling convention settings. Viktor you cannot chose
simultaneously register and stack calling convention. You have to chose
one and keep it synced with Harbour compile time settings. Otherwise
you will have unresolved external or you will force creating by linker
dynamically function call wrappers (of course if OW support such
functionality) what may strongly reduce the performance.
! removed -j compile time switch - it's not used to compile core code
* synced optimization flags with core code
I'm really interested in current OpenWatcom speedtst results compared
with other Windows builds (MSVC, MinGW, BCC, POCC) in ST and MT builds.
* utils/hbmk2/hbmk2.prg
! Don't attempt to strip leading 'lib' from libnames, since
this breaks libs which actually begin with 'lib', not meant
as a prefix. F.e. libpng, libhpdf, libjpeg.
* contrib/hbqt/tests/hbqt.hbp
+ Added static QT libname as comment (for now).
* utils/hbmk2/hbmk2.prg
+ Added autofilling CCPREFIX on Windows platform when
-comp=mingw64 or -comp=mingwce is specified.
+ Added autofilling CCPATH on Windows platform when
-comp=mingw64 or -comp=mingwce is specified and
corresponding embedded MinGW installations are found in
Harbour directory.
; IOW this means that it's now possible to create a unified,
self-contained install kit, which is able to easily build
x64, WinCE and x86 executables with command below:
> hbmk2 test.prg => test.exe for x86
> hbmk2 -comp=mingw64 a.prg => test.exe for x64
> hbmk2 -comp=mingwce a.prg => test.exe for ARM/WinCE
Can it be any simpler than that?
My sample install .zip is 322MB and it contains Harbour libs
for msvc, mingw, mingw64, mingwce, bcc, owatcom and contains
all required MinGW files.
It will be even easier if we add CPU platform identifiers
to Harbour.
* utils/hbmk2/hbmk2.prg
+ Added autodetection of lib/<arch>/<comp> lib dir. This
makes it possible to use hbmk2 in multicompiler scenarios
without 'make install'ing Harbour, or even multicompiler
end-user configurations for any compiler regardless of
lib format and naming.
+ contrib/hbqt/tests/hbqt.hbp
+ Added .hbp file for hbqt.
* contrib/hbodbc/odbc.c
* Further type cleanup.
* Formatting.
* contrib/hbole/tests/testole.prg
* Minor cleanups.
* contrib/hbole/olecore.c
* Using hb_itemGetCPtr2() instead of hb_itemGetCLPtr()
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/wapi_winuser.c
! WinCE fixes.
* Formatting.
* contrib/examples/hbwhat/tests/hbwhat.hbp
- Removed no longer necessary Windows libs.
* utils/hbmk2/hbmk2.prg
* contrib/hbole/tests/hbole.hbp
* contrib/gtwvg/tests/gtwvg.hbp
* contrib/hbwin/tests/hbwin.hbp
- utils/hbmk2/examples/winapi.hbp
+ Added all important Windows system libs to all
win compilers in hbmk2.
- Removed above libs from .hbp files.
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/browodbc.prg
* contrib/hbodbc/odbc.c
* Further cleanups.
SETNUMLEN() -> SQLNUMSETLEN(). This should probably be a core
function by the name HB_NUMSETLEN().
* contrib/hbole/tests/testole.prg
* contrib/hbole/tests/sample.odt
+ Updated to latest hbole code.
; TOFIX: hbole code doesn't compile with MSVC in default C++
even if #define CINTERFACE 1 is enabled.
; TOFIX: OpenOffice example fails at some point. It probably
needs array support.
* contrib/hbole/olecore.c
* Minor formatting.
* contrib/hbqt/hbqt_qabstractitemview.cpp
! Fixed backslash to forward slash.
* contrib/hbct/tests/ctwtest.prg
* contrib/hbnf/dispmsg.prg
* contrib/hbnf/pegs.prg
* contrib/hbnf/tbwhile.prg
* contrib/hbnf/calendar.prg
* contrib/gtwvg/tests/demowvg.prg
* contrib/examples/terminal/trm_server.prg
* contrib/examples/terminal/trm_client.prg
! Using manifest constants.
* contrib/hbmysql/mysql.c
* contrib/hbodbc/odbc.c
* Minor cleanup.
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/odbccall.prg
* contrib/hbodbc/tests/testodbc.prg
* Minor.
* doc/en/Makefile
* doc/Makefile
- doc/en
+ doc/en-EN
* Renamed.
+ man
+ man/nfdoc
+ man/manpages
+ Added new dir for Harbour manuals.
; TODO: Move files here from /doc.
* contrib/hbtpathy/tests/testtp.prg
* Applied update/fix by Barry Jackson.
* utils/hbmk2/hbmk2.prg
+ Added autodetection of MinGW compiler if installed in the
Harbour directory tree in the mingw dir.
This way it's possible to create a fully setup-free
install kit, which is able to produce Harbour executables
right after unzip by simply issuing command: hbmk2 hello.prg