* make_b32.mak
* make_vc.mak
! Added hbpp.lib and hbcommon.lib to HBRUN_DLL liblist.
* include/hbapi.h
* source/vm/cmdarg.c
* source/common/hbver.c
* source/common/hbverdsp.c
* source/rtl/console.c
* source/rtl/setcolor.c
* source/rtl/setcurs.c
+ Added HB_EXPORT to some functions to make it possible
to build hbrun-dll.exe.
For other reasons, it only works if Harbour built with
set C_USR=-DHB_DYNLIB.
; TODO: Make HB_DYNLIB the default build mode, do gradual
steps to remove separate DLL building pass, and
finally to remove HB_BUILD_DLL option.
The only drawback will be about 10-100K
(currently) overhead in final executable size due
to included export table for BCC and MSVC builds.
* make_b32.mak
* contrib/mtpl_b32.mak
* config/w32/bcc32.cf
- Added -4 switch, which means Intel 386 CPUs are not
not supported by default.
* make_vc.mak
+ Added -GA switch to MSVC 32/64 which creates smaller
(and only slightly faster) TLS access code.
* source/compiler/cmdcheck.c
* source/compiler/hbusage.c
+ Added -/+ suboptions to -k? options to make it
possible to set them to the opposite setting.
; NOTE: BTW, shouldn't -ki option also disable
#pragma BEGINDUMP/ENDDUMP? IMO it should,
otherwise it doesn't really enforce C
out of .prg code.
* config/w32/gcc.cf
* config/w32/mingw.cf
* Changed -march=i486 to -march=i586.
; NOTE: Please comment on CPU optimization switches, IMO
we can quite safely target Pentium/586 as the
minimum CPU requirement these days for default
Harbour builds. If someone needs to run it on
386 (Win95) or 486 (Win98/WinME), a special built
can be created.
* make_b32.mak
* make_vc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_vc.mak
* "IF EXIST" -> "if exist" for consistency.
* "-" echo supression char consistently changed to "@",
and added where it was missing (for 'if exist' commands).
* make_vc.mak
% Cleaned WinCE C options from unnecessary quotes.
% Minor opt in .dll flag assembly.
% Some commented options removed.
* WinCE LDFLAGS uppercase to lowercase.
% Minor opt in non-WinCE LDFLAGSDLL assembly.
* source/rtl/gtwvt/gtwvt.c
* Minor formatting.
* common.mak
* make_b32.bat
* make_b32.mak
* make_vc.bat
* make_vc.mak
* make_gcc.mak
* HB_BUILD_VERBOSE=yes is now the default. If someone
is wanting to build Harbour from source and is bothered
by the compiler command-lines being shown, these can
be turned off with HB_BUILD_VERBOSE=no.
These lines are IMO very important to see, which options
were exactly used when Harbour was built, I personally
archive these logs along with the builds.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
+ Readded -b when HB_BUILD_STATIC=yes.
Now it should work.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
% Deleted -l- switch when HB_BUILD_STATIC=yes.
Line numbers are automatically enabled when
-b switch is used.
* source/debug/debugger.prg
* Renamed getdbginput() -> __dbgInput()
; NOTE to TOFIX: Do we need "Mono display" these days? :)
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* Removed disabling -b for non-debug builds.
; We aim to remove RTL .prg dependencies from hbdebug.lib,
either by local implementation, .c rewrite, or force
disabling debug mode in more core files.
Until this happens, one will have to be careful with
using -b switch to compile Harbour. These are the core .prg
modules currently used by hbdebug.lib:
- HBGETLIST(), GET(), __GET(), __GETLISTACTIVE(), __GETLISTSETACTIVE(), READINSERT(), READMODAL()
- HBCLASS()
- HBOBJECT()
- HBEDITOR()
- TBCOLUMNNEW()
- ACHOICE()
- ALERT()
* source/debug/dbgtobj.prg
* source/debug/dbgbrwsr.prg
* source/debug/dbgtwin.prg
* source/debug/dbgmenu.prg
* source/debug/dbgthsh.prg
* source/debug/tbrwtext.prg
* source/debug/dbgwa.prg
* source/debug/debugger.prg
* source/debug/dbghelp.prg
* source/debug/dbgtarr.prg
* source/debug/dbgtmenu.prg
* source/debug/dbgtmitm.prg
+ Readded '#pragma DEBUGINFO=OFF'.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
! Minor formatting.
* include/hbapierr.h
! Fixed casting in macro HB_ERR_FUNCNAME, as it was
generating a new warning with MSVC in 64-bit mode.
'( ( char * ) 1 )' -> '( ( const char * ) NULL + 1 )'
('const' keyword was not enough to silence it)
* include/hbapierr.h
* source/rtl/errorapi.c
- Disabled (marked with HB_LEGACY_LEVEL) hb_errFuncName
symbol. No longer supported, pls use HB_ERR_FUNCNAME
instead.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* Removed special 'set HB_GT_LIB=gtXXX' support. For the exact
same effect - in case you want to modify default GT at
build time, which is not recommended -, pls use this:
'set C_USR=-DHB_GT_LIB=XXX' where XXX is 'wvt', 'std', etc.
- Removed HARBOURFLAGSDLL, LDFLAGSDLL, CFLAGSDLL as public options.
It's better to keep these settings common IMO, and handle
all DLL subtleties in our make files.
+ L_USR is now respected for .dlls, too.
! Fixed make_gcc.mak internal HARBOURFLAGSDLL to be in sync
with the other .mak files (removed -l switch).
- Removed HB_BUILD_MODE for VC builds. Now C/C++ is left to
the default value (which is C mode for core), and it's possible
to override using:
'set C_USR=-TP' for C++ mode (or -TC for forced C mode).
% Other minor cleanups.
* contrib/mtpl_b32.mak
* contrib/mtpl_vc.mak
- Removed HB_BUILD_MODE undocumented options from contrib
make files. For Borland C++ mode, use 'set C_USR=-P'.
For VC, see above.
- Removed HB_BUILD_ST undocumented option.
% Other minor cleanups.
* contrib/xhb/hbcompat.ch
* contrib/xhb/xhb.ch
! Moved __COPYFILE() translation to xhb.ch.
* common.mak
* make_b32.mak
* make_vc.mak
* make_gcc.mak
- Removed option HB_BUILD_ST to build another version
of Harbour MT build [for non-GNU builds], or forced
SingleThreaded (non -tWM) Harbour builds.
* Modified to not allow CFLAGSMT to be tweaked from the
outside [for non-GNU builds].
* make_b32.mak
* make_vc.mak
! Fixed to use 'COPY /B' instead of 'COPY /A' to install
headers, to avoid appending and EOL to these files.
They should work as is.
* make_gcc.mak
! Fixed mainstd lib name.
[TOMERGE 1.0]
* include/hbthread.h
% Disabled HB_USE_TLS for __BORLAND__ and __MINGW32__ for
best performance.
* contrib/hbwhat/whtmmcap.c
! Fixed some warnings under certain MinGW 4.3.2
installations.
TODO: hbwhat users pls finish this fix.
* utils/hbmake/hbmake.prg
! Fixed hbw32 to hbwin.
* Win32 references changed to Windows.
* make_gcc.sh
* Not accepting CFLAGS anymore as custom C flags envvar.
Pls use C_USR instead.
* make_gcc.mak
+ Added wsock32 lib to Cygwin system liblist.
! Removed setting HB_OS_* macros explicitly.
* make_b32.mak
* make_vc.mak
* Minor formatting.
* make_b32.mak
* make_gcc.mak
* make_vc.mak
* harbour.spec
* source/rtl/hbgtcore.c
* source/rtl/Makefile
* source/rtl/gtsys.c
* config/w32/poccce.cf
* config/w32/xcc.cf
* config/w32/pocc.cf
% Removed HB_GT_DEFAULT envvar, which was the exact synonym
of HB_GT_LIB. Please use HB_GT_LIB instead, if you - by any
chance - want to change the default GT at Harbour build-time.
* tests/speedtst.prg
! Fixed to delete temp .dbf files before exiting.
* make_b32.mak
* make_vc.mak
* common.mak
* source/rtl/hbgtcore.c
! Any messing with HB_GT_LIB and HB_GT_DEFAULT was removed
from non-GNU make files, to leave these things to the
source code itself (just like in GNU-make).
+ Added automatic selection of GTWVT from source code,
so that it also works in GNU-make.
* source/rdd/dbfcdx/dbfcdx1.c
! Restored RTE behaviour when key length is zero.
! Recently added C53 compatible but C52 incompatible
RTE enabled only if HB_COMPAT_C53 and HB_C52_STRICT
are both #defined to not make valid C52 apps crash.
; Someone pls review me.
* debian/changelog
* Synced with 1.0.1.
* source/pp/ppcore.c
! Minor typo in one PP error message. (sync 1.0.1)
* Cleaned ":" from all PP error/warning messages to be
friendly with Eclipse.
* source/compiler/hbgenerr.c
* Cleaned some more ":" chars from compiler error/warning
messages to be friendly with Eclipse.
; NOTE: Few more still remain. If you have an idea how to rephrase these, pls tell:
"Bound error: '%s'"
"Syntax error: '%s'"
"Syntax error: \"%s at '%s'\""
"Invalid lvalue: '%s'"
"Invalid use of '@' (pass by reference): '%s'"
"3Incompatible type in assignment to declared array element expected: '%s'"
"4Suspicious type in assignment to declared array element expected: '%s'"
* utils/hbmake/hbmake.prg
* Updated by large patch from Bill Robertson.
Adds several enhancements, fixes and optimizations
to the previous version.
* utils/hbdoc/hbdoc.prg
* utils/hbmake/hbmake.prg
* utils/hbrun/hbrun.prg
* Changed the way version number is shown.
* utils/hbmake/hbmake.prg
* Updated MT lib lists. (untested)
* make_b32.mak
* Minor sync with make_vc.mak.
* make_vc.mak
* Attempt to implement hbvmmt.lib just like in
make_b32.mak to make them synced.
* make_b32.mak
* contrib/mtpl_b32.mak
+ Added -vG -Od to debug flags (CodeGuard and no optimization
if HB_BUILD_DEBUG is 'yes').
; I couldn't test it, because I'm getting a fatal error
when trying with my BCC build file.
Fatal: Unable to open file '.OBJ'
* harbour/bin/pack_src.sh
* added file list to archive so it's possible to recreate it later without SVN data
* harbour/common.mak
* harbour/make_b32.mak
* harbour/make_gcc.mak
+ added HBVMMT library for default builds
BCC version not tested - please test.
* harbour/source/vm/hvm.c
* moved language and code page setting before class and error initialization
* harbour/source/rtl/fserror.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/fssize.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/filesys.c
! fixed overloading FS error codes by other operations, f.e. accessing
TLS data by OS API function call
* make_b32.mak
+ Now setting 'HB_BUILD_ST = no' will generate an MT build.
TODO: Change the default to 'yes' should be the way to go
IMO.
* bin/bld.bat
+ Added cw32mt.lib for BCC32 to make it work for MT Harbour.
; I hope this won't break ST Harbour builds, a quick tests
proved not.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* A change with the goal to further clean duplicate build
controlling options and make the configuration of GNU
and non-GNU build systems closer. INCOMPATIBLE.
Builders should make the following changes in their
configurations and build scripts:
- CFLAGS -> C_USR
- CLIBFLAGS -> C_USR
- LDFLAGS -> L_USR
- HARBOURFLAGS -> PRG_USR
* BCCDLL_WITH_DYNRT -> HB_BCCDLL_DYNRT
Shouldn't this be the default, if it's marked as 'recommended'?
; Basic rules for builders is now pretty simple:
C_USR for .c options, L_USR for link options,
PRG_USR for .prg options.
; L_USR doesn't work the same way as in GNU-make, yet.
; Also expect, that in the future - even before 1.1 release -
these switches might be also standardized to be
HB_USR_C, HB_USR_PRG, HB_USR_L, HB_USR_A.
* make_b32.mak
* make_vc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_vc.mak
+ Attempt to add support for L_USR and A_USR
in non-GNU make. A_USR is probably wrong, L_USR
might also be. Please test.
* make_vc.bat
* make_vcce.bat
* make_vc.mak
- make_vcce.mak
% make_vcce functionality merged into make_vc.
* make_vcce.bat changed to a stub calling make_vc.bat.
; WinCE builds can be triggered using envvars:
set HB_BUILD_WINCE=yes
set HB_CC_NAME=vcce
Please update your environment and test WinCE builds
after this change.
* make_vc.mak
* contrib/mtpl_vc.mak
* Changed HB_VISUALC_VER default to 80.
It was 60 for non-WinCE builds and contribs,
80 for WinCE builds. Now it is 80 for all
these cases.
* make_b32.mak
* Minor comment visual sync with make_vc.mak.
* config/os2/gcc.cf
% Cleaned include path for OS/2/GCC.
David, please test it if it still builds successfully.
* make_b32.mak
* make_gcc.mak
* make_vc.mak
* make_vcce.mak
* utils/hbmake/hbmake.prg
% Removed using -D__EXPORT__ from any Harbour command lines,
as this switch has no effect of the .prg level.
* harbour/bin/hb-func.sh
* harbour/source/vm/hvm.c
* harbour/source/rtl/hbgtcore.c
* added const to s_defaultGT and s_pszLinkedMain declarations
* make s_pszLinkedMain visible and functional for platforms
which does not use HARBOUR_START_PROCEDURE
* harbour/source/vm/extrap.c
+ added exception trap for SIGSEGV, SIGILL, SIGFPE and SIGBUS
for *nixes which support sigaltstack()
* harbour/include/hbwmain.c
* harbour/source/vm/mainwin.c
* use of WinMain() from hbwmain.c
* harbour/source/pp/pplib.c
* ignore all #pragma directives setting compiler switches instead
of generating RT error when user uses PP in .prg code by __PP_*()
functions
* harbour/source/Makefile
+ harbour/source/hbextern
+ harbour/source/hbextern/hbextern.prg
+ harbour/source/hbextern/Makefile
* harbour/common.mak
* harbour/make_b32.mak
* harbour/make_gcc.mak
* harbour/make_vc.mak
* harbour/make_vcce.mak
* harbour/bin/hb-func.sh
+ added hbextern library
+ added hbextern to harbour shared library. Now all functions
are registered and visible for dynamically linked applications
not only .prg ones and .c functions explicitly bound with some
.prg code
* harbour/utils/hbrun/Makefile
* harbour/utils/hbrun/hbrun.prg
* use hbextern library instead of #include "hbextern.ch"
It has no noticeable effect on static builds but greatly
reduce the size of dynamic builds, f.e. current hbrun
linked dynamically in my Linux box has 12KB.
* harbour-ce-spec
* harbour-w32-spec
* harbour.spec
* common.mak
* make_b32.mak
* make_gcc.mak
* make_vc.mak
* make_vcce.mak
* make_tgz.sh
* debian/rules
- doc/man/hbdot.1
* doc/man/hbrun.1
- utils/hbdot
* utils/hbrun/Makefile
* utils/hbrun/hbrun.prg
- utils/hbrun/external.prg
* Replaced hbrun functionality with hbdot's.
- Removed separate hbdot tool.
* contrib/hbsqlit3/sqlite3/sqlite3.c
* contrib/hbsqlit3/make_vc.bat
! Fixed bug in foreign code (sqlite3.c) to compile in
MSVC C++ mode. (HANDLE -> HMODULE)
* C++ mode is no longer forced in non-GNU MSVC builds,
this way also avoiding a screen warning.
* contrib/examples/dbu/bld_b32.bat
* contrib/examples/dbu/bld_vc.bat
! Fixed to call 'patch' with '-N' so that it doesn't
ask to reverse patches when run multiple times.
+ utils/hbdoc/bld_b32.bat
+ utils/hbdoc/bld_vc.bat
+ Added non-GNU make batch files to build hbmake.
; This is a step towards detaching hbdoc from core.
* utils/hbdoc/hbdocdef.ch
! Fixed equality operators to be SET EXACT independent.
; Minor formatting.
* make_b32.mak
* make_gcc.mak
* make_vc.mak
* make_vcce.mak
! Fixed to delete hbverbld.h from include dir on 'clean'.
! Using INCLUDE_DIR instead of some hard-wired 'include'
dir references.
* source/common/hbverdsp.c
* Some cleanups on appearance.
* Company names removed (except CA).
* contrib/rddads/adsmgmnt.c
* Minor formatting.
+ contrib/examples/dbu/hb_dbu.dif
* contrib/examples/dbu/bld_b32.bat
* contrib/examples/dbu/readme.txt
+ Added .dif file with a patch fixing some
multiplatforms issues in original dbu source.
It's a quick hack, I might have missed something,
and I didn't do any testing. Add your own fix,
if you have some.
* DBU_DIR -> HB_DIR_DBU
* make_b32.mak
* contrib/mtpl_b32.mak
* config/w32/bcc32.cf
+ Added following switches for BCC:
-d: merge duplicate strings (was enabled already in GNU make)
-w: enable warnings.
-w-sig-: disable 'Conversion may lose significant digits' warnings.
* make_b32.mak
* make_vc.mak
* make_vcce.mak
+ Added HBDOC_LIBS to specify external libs for HBDOC.
Only for non-GNU B32/VC/VCCE builds! For non-GNU GCC
it's probably LDFLAGS, for GNU it's probably LDLIBS.
NOTE: Use full path for the libs.
Such dependency is anything by good though (the core
build depends on a contrib lib, the contrib lib depends
on the core build), so consider this a temporary solution.
Moving HBDOC to the contrib area is one possibility,
dropping it is another one.
; There is quite a big mess regarding these envvars depending
on the type of make system, platform, compiler, etc,
that it's almost impossible to document or understand, so
maybe it'd be worth a review after the release, and sync
all these external flag and dir envvars.
* utils/hbdoc/genpdf1.prg
! Fixed warnings in HBDOC_PDF guarded code.
* common.mak
* make_vcce.mak
* make_b32.mak
* make_gcc.mak
* make_vc.mak
* utils/hbdoc/Makefile
* utils/hbdoc/hbdoc.prg
* utils/hbdoc/genpdf1.prg
- Removed pdflib references from make file, since the
contrib was not working and got removed.
+ PDF enabling logic in HBDOC made local to HBDOC.
Now HBDOC_PDF should be #defined in HARBOURFLAGS
(or PRG_USR) envvar, proper pdf library should be
specified using LDFLAGS envvar.
* contrib/mtpl_b32.mak
! Removed permanent '-P' C compiler switch
from .prg -> .c rule. Thanks Rafa.
Marek pls check me.