* make_vc.mak
* config/rules.cf
* config/w32/mingwce.cf
* config/w32/poccce.cf
* config/w32/msvcce.cf
* Use Harbour option -gc0 for WinCE builds.
* Use C option -O2 (instead of -O3) for MinGWCE builds.
; None of these were tested.
* 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_vc.mak
+ Added /nxcompat linker flag for non-WinCE, non-DLL,
HB_VISUALC_VER >= 80 MSVC executables.
This should add extra safety.
* include/hbextern.ch
* source/rtl/rat.c
+ Added HB_RAT() which is similar to RAT(), but also accepts
<nStart> and <nEnd> optional paramaters, similarly to HB_AT().
; Please test.
* source/rtl/at.c
* Minor formatting.
* make_vc.mak
* -GA option only used for HB_VISUALC_VER >= 70.
Please update this if older versions also support it.
* include/hbver.ch
* source/common/hbver.c
* Some more fiddling with version number terminology and
hb_version() values:
HB_VERSION_MICRO -> HB_VERSION_RELEASE
HB_VERSION_BLD_DATE_STR -> HB_VERSION_BUILD_DATE_STR
HB_VERSION_BLD_DATE -> HB_VERSION_BUILD_DATE
HB_VERSION_BLD_TIME -> HB_VERSION_BUILD_TIME
HB_VERSION_CHANGELOG_REV -> HB_VERSION_CHANGELOG_ID
Third part of version number could also be: PATCH, MICRO, BUILD
SVN revision could also be: BUILD
BUILD is inherently connected with a physical binary, so
I dropped it, PATCH is limiting and negativ, MICRO is not
very common (otherwise good), so a finally opted for
RELEASE. REVISION kept as is.
; If there are no objections I'll HB_VER_REVISION macro to
HB_VER_RELEASE. This will be an INCOMPATIBLE change, but
I expect not too many ppl being affected.
* TODO
- Removed MT as a TODO. Thanks Przemek for the nice job.
* 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_vc.mak
* contrib/mtpl_vc.mak
- Removed no longer necessary '-D_CRT_SECURE_NO_DEPRECATE'
for MSVS 2005 and upper.
* include/hbsetup.h
* Mapping snprintf() calls to hb_snprintf().
; TODO: Replace the calls in source code.
* source/common/hbstr.c
! Fixed hb_snprintf(). Please verify on your platforms.
; TODO: It may need further tweaking to smooth out the
platform implementation differences.
* make_vc.mak
! Changed '!' (non-working) echo supression char to '@'.
* contrib/mtpl_b32.mak
* contrib/mtpl_vc.mak
% Changed to create the obj dir as a separate build rule
(just like for core) rather than for each file.
* 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.
* bin/hbmk.bat
! Fix to previous change. (MT and GUI status was reset in the loop).
* bin/hbmk.bat
* bin/hbmk_os2.cmd
! Help message corrections.
* bin/hbmk.bat
* make_vc.mak
* config/w32/msvc.cf
* config/w32/msvcce.cf
* Using lowercase linker options for MSVC. Just for consistency.
* Using '/' as a switch char for MSVC linker. This works fo all
old version.
* contrib/mtpl_vc.mak
* Minor formatting.
* tests/rto_get.prg
+ Added tests for assigments as function calls (o:col( 10 )
and some for assigments as _function calls (o:_col( 10 )).
* bin/hbmk.bat
* make_vc.mak
- Removed /subsystem:console from LDFLAGS. This seems to
be the default so it's not necessary.
* bin/hbmk.bat
+ Added L_USR support for MSVC. Now it's possible to
build GUI (and GTWVT) programs using
'set L_USR=/subsystem:WINDOWS' switch.
* contrib/gtwvg/tests/bld_vc.bat
! Using above method to make it work with MSVC.
* 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].
* contrib/hbole/oleauto.prg
* contrib/hbole/ole2.c
* contrib/hbwin/win_tole.prg
* contrib/hbwin/win_ole.c
* OLESHOWEXCEPTION() implemented on the .prg level, using
Alert() rather than MessageBox().
! All MessageBox()es converted to Alert()s.
+ Added OLEEXCEPTIONSOURCE(), OLEEXCEPTIONDESCRIPTION()
to hbole.
* source/vm/maindllp.c
! Changed MessageBox() call to internal error.
* contrib/gtwvg/gtwvg.c
* source/rtl/gtwvt/gtwvt.c
! Changed MessageBox() calls to internal error.
* contrib/gtwvg/gtwvg.c
* Internal error calls synced with GTWVT.
* source/rtl/hbgtcore.c
- Removed "Internal error" text from two internal error descriptions.
* make_vc.mak
- Removed reference to MessageBox() from comment.
; NOTE: No more MessageBox() calls in Harbour.
(except some wrappers for user .prg code)
* 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.
* make_vc.mak
* Synced with BCC to build in ST mode by default.
; TOFIX: There seems to be an old problem where contrib
.prg files won't get rebuilt after a modification
by running make_vc.bat (MSVC only).
Marek, if you see this, could you take a look at it?
* 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.
* doc/gmake.txt
* doc/gtapi.txt
* doc/hbmake.txt
* doc/windll.txt
* Useless changes.
* make_vc.mak
* Some untested MT support for MSVC.
* include/hbdefs.h
! Removed mistakenly committed experiment to pull in
MT related libs. This caused the strange build problem due
to empty lib name passed to #pragma. This could work
in case someone wanted to deal with it in the future.
* 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.
* include/hbsetup.ch
* Turned off HB_LEGACY_LEVEL by default.
* doc/whatsnew.txt
* Synced with 1.0.1.
* make_vc.mak
* contrib/mtpl_vc.mak
* MSVS warning level changed to -W4 (with one warning
type manually excluded).
; NOTE/TOFIX: This will still generate quite some warnings,
hopefully we can fix these until the next major
release.
* 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.mak
* contrib/mtpl_vc.mak
+ -w34701 VC flag added to enabled warning 4701 (uninitialized vars) on -W3 level.
% -FD VC flag removed. This is only needed for IDEs.
% -Gs VC flag moved to the common section.
% VC flags synced in contrib with core.
+ TOFIX added for WinCE command line. It's full of stuff which is _probably_ not needed.
+ NOTE added about MSDN page explaining VC switches.
; NOTE: -W4 and -Wp64 are recommended for MSVC.
; TOFIX: There are still a few uninit vars warnings:
harboury.c(7226) : warning C4701: potentially uninitialized local variable 'hb_complval' used
macroy.c(3095) : warning C4701: potentially uninitialized local variable 'hb_macrolval' used
dbffpt1.c(2671) : warning C4701: potentially uninitialized local variable 'ulType' used
dbffpt1.c(2614) : warning C4701: potentially uninitialized local variable 'ulSize' used
dbffpt1.c(3073) : warning C4701: potentially uninitialized local variable 'ulOldSize' used
dbffpt1.c(3083) : warning C4701: potentially uninitialized local variable 'ulBlock' used
dbffpt1.c(3652) : warning C4701: potentially uninitialized local variable 'pBlock' used
* source/rdd/workarea.c
! Fixed DBI_POSITIONED value returned.
* include/hbsetup.h
* source/vm/pvalue.c
* source/rtl/fserror.c
* source/rtl/accept.c
* source/rtl/descend.c
* source/rtl/inkey.c
* source/rtl/dates.c
* source/rtl/fkmax.c
* source/rtl/natmsg.c
* source/rtl/hbinet.c
* source/rtl/dates.c
! Fixed some MSVS2008 -W4 warnings (we use -W3 as the default).
; NOTE: There is a lot more of these.
* source/rtl/dates.c
* Formatting.
* 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.
* make_vcce.mak
! Attempt to fix /MANIFEST:NO warnings for MSVC 6.0.
! Attempt to fix WinCE .dll linking error.
; Jose, another test would be great.
* make_vc.bat
* make_vc.mak
* make_vcce.bat
* make_vcce.mak
* Some syncing and minor fixes in comments.
* make_vc.mak
* make_vcce.mak
% Cleaned list of system libraries for VC. winspool.lib
removed, the rest documented.
* Syncing between VC and VCCE.
; NOTE: WinCE system lib list didn't get anything removed
(just added), but nevertheless pls test it.
* ChangeLog
* Some cleanups (regarding my entries).
* source/pp/hbpp.c
! Comment typo.
* source/rtl/gtclip.c
! Fixed for __CYGWIN__.
* contrib/hbw32/dllcall.c
! Disabled asm parts for __CYGWIN__ to make it compile.
* config/w32/gcc.cf
! Added missing system lib wsock32 for Cygwin.
* config/w32/gcc.cf
* config/w32/cemgw.cf
* config/w32/mingw32.cf
* config/w32/owatcom.cf
* config/w32/pocc.cf
* config/w32/watcom.cf
* config/w32/xcc.cf
* Attempt to sort out system libs needed for core from
those needed for contribs. No system libraries have
been removed or added so far. [ I wonder why we need to
include contrib sys lib dependencies here, when Harbour
GNU make system doesn't build any contrib dependent
executables. Also, some ws2_32.lib seems definitely
superfluous. ]
; TOFIX: (for __CYGWIN__)
../../filesys.c: In function `hb_fsPOpen':
../../filesys.c:577: warning: passing arg 1 of `pipe' from incompatible pointer type
* 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.