* config/win/global.mk
+ Enabled UNICODE mode for all 64-bit Windows targets.
Here there is no concern about Win9x compatibility, so
it can be safely done, and I hope this move will make it
easier to catch UNICODE coding problems, as it will be now
part of some default builds.
The ultimate litmus test is on Windows is msvc64, where
C++, 64-bit and Unicode compatibility is tested at the
same time.
+ contrib/hbmemio/tests
+ contrib/hbmemio/tests/hbmk.hbm
+ contrib/hbmemio/tests/test.prg
+ Added test dir.
+ Added test code included by Mindaugas in the ChangeLog entry.
* contrib/hbmemio/Makefile
+ contrib/hbmemio/memio.c
- contrib/hbmemio/iodmem.c
* Renamed to be in sync with netio.
! Fixed strcpy() call to hb_strncpy().
Review me I didn't check if the set length limit is a valid one.
! Fixed C++ casting errors on buffer allocation calls.
; TOFIX: These warnings remain:
---
../../../memio.c(170) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(423) : warning C4244: '=' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(452) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(501) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(508) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(580) : warning C4267: 'argument' : conversion from 'size_t' to 'ULONG', possible loss of data
../../../memio.c(627) : warning C4267: '=' : conversion from 'size_t' to 'ULONG', possible loss of data
../../../memio.c(674) : warning C4244: 'argument' : conversion from 'int' to 'USHORT', possible loss of data
memio.c(373) : warning C4701: potentially uninitialized local variable 'pFile' used
---
* contrib/hbmemio/hbmemio.hbc
! Corrected svn props to be like in howtosvn.txt.
- contrib/iodmem
+ contrib/hbmemio
- contrib/hbmemio/iodmem.hbc
+ contrib/hbmemio/hbmemio.hbc
* contrib/hbmemio/Makefile
* contrib/Makefile
* Renamed to have 'hb' prefix and to be in line with hbnetio.
! Fixed props on Makefile.
! Corrected to list this lib in no-dependency section in contrib/Makefile.
+ harbour/contrib/Makefile
+ harbour/contrib/iodmem/Makefile
+ harbour/contrib/iodmem/iodmem.hbc
+ added make files
* harbour/contrib/iodmem/iodmem.c
! updated to be compatible with the latest SVN (rename method implemented)
* some warnings are fixed
+ harbour/contrib/iodmem
+ harbour/contrib/iodmem/iodmem.c
+ Implemented Memory file system. Public functions hb_memfs*() are
availible, if HB_MEMFS_PUBLIC_API is defined.
+ Implemeted I/O driver for memory file system
; HB_IODMEM request can be used to force linking of I/O driver and
memory FS into executable.
"mem:" prefix should be used to indicate a MemFS file, ex.:
REQUEST HB_IODMEM
PROC main()
LOCAL nI
FIELD F1
DBCREATE("mem:test", {{"F1", "N", 9, 0}},, .T., "memarea")
FOR nI := 1 TO 1000
DBAPPEND(); F1 := HB_RANDOM() * 1000000
NEXT
INDEX ON F1 TAG f1
DBEVAL({|| QOUT(F1)})
DBCLOSEAREA()
DBDROP("mem:test") // Free memory resource
RETURN
; TODO: locking is not supported yet (but it is not very usefull
if MemFS is used to store of a temporary database opened in
exclusive mode).
* utils/hbmk2/hbmk2.prg
+ Added support for -strip option in -hblib mode.
! Fixed -strip in -hbdyn mode for darwin and sunos targets which
use individual strip command.
* harbour-win-spec
* harbour-wce-spec
* Reverted change in 2009-09-21 14:03.
; See related pending question on dev list.
* config/sunos/global.mk
! Fixed to not use -s option for stripping. This doesn't seem to
be supported on sunos platform, at least according to code found
in hbmk2.
* utils/hbmk2/hbmk2.prg
+ Added support for -strip in -hbdyn mode.
+ Added -strip support for sunos/gcc targets.
! Fixed to use strip command instead of -s option with sunos/sunpro
targets.
* utils/hbmk2/hbmk2.prg
* config/bin.mk
+ Added hbmainstd lib for os/2 targets in shared mode.
Maurilio, please restest after this change.
; Needless to say I couldn't test these, so I'd appreciate if sunos
users could verify it (except -strip in -hbdyn mode).
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
% Using HB_BUILD_STRIP instead of stripping locally.
* harbour.spec
% Using HB_BUILD_SHARED instead of rebuilding tools locally.
* Changed 'make -i' to 'make' to sync with other spec files.
* config/global.mk
! Fixed to recent changes to sysloc detection.
* config/linux/gcc.mk
+ Added HB_BUILD_STRIP for linux/gcc.
* config/bin.mk
! Fixed to not try to build a shared binary for binaries not
dependent on HVM. It's done in a little tricky way, maybe
we should introduce a new variable to signal Harbour
executables vs plain C ones.
This should fix link errors in harbour reported by users.
* contrib/hbqt/Makefile
* contrib/hbqt/hbqts/Makefile
* contrib/gtqtc/Makefile
* contrib/gtqtc/gtqtcs/Makefile
! Fixed QT detection on darwin after 2009-09-18 12:19 change
in detfun.mk.
* utils/hbmk2/hbmk2.prg
+ Comment added (from .mk).
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/darwin/global.mk
* config/rules.mk
+ Implemented HB_BUILD_STRIP for darwin.
(on darwin strip has to be called directly)
* ChangeLog
! Added missing lines from prev entry:
* bin/postinst.sh
+ Added HB_CCPATH to strip cmd. Suggest by Przemek.
! Minor fix to find cmd by Tamas Tevesz.
* harbour-win-spec
* harbour-wce-spec
* INSTALL
* bin/postinst.sh
* Makefile
* source/pp/Makefile
* source/Makefile
* config/global.mk
* HB_BUILD_PART -> HB_BUILD_PARTS (simple rename)
+ HB_BUILD_STRIP added. It's dummy yet. Support will have to
be added on the compiler level and removed from postinst phase.
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/bin/hb-func.sh
* harbour/config/global.mk
* updated to work with modified base make internals and envvars
* do not overload defined by user HB_TOOLS_PREF
! fixed c&p typo in DJGPP cross build HB_TOOLS_PREF
Warning: it still needs export HB_BUILD_SHARED=no before creating
RPMs but it should be fixed in base make together with native builds.
TODO: we should agree some conditions for alternative system wide
cross build installation, like .cfg file name and localization.
* utils/hbmk2/hbmk2.prg
; Fixes based on Przemek's extensive tests/suggestions on different *nix systems.
! -fixshared option now only effective for gcc compilers. For the rest
it behaves as -fullshared.
! Added x11 and curses/slang libpath for bsd targets in shared mode.
hbmk2 solution is rough, but didn't see a reason to make it more
complicated. I hope it fixes the problem.
+ Enabled -fullstatic mode for sunpro compilers.
* utils/hbmk2/hbmk2.prg
! Fixed to add /usr/X11R6/lib64 dir to libpath list on linux
targets only. (sync with similar guard in sunpro compiler support)
; TOFIX: This leaves the GPF in sunpro/linux on the pending list.
; TOFIX: And here comes to mind that mingw64 also GPFs in shared mode.
* utils/hbmk2/hbmk2.prg
* config/global.mk
+ Added beos system location detection.
+ Added system location detection based on [LD_]LIBRARY_PATH.
; Please review and even tweak code if needed. I didn't test these changes.
* utils/hbmk2/hbmk2.prg
% system location detection code disabled for non-*nix hbmk2 builds.
It's of no use there, as far as I can overview all scenrios.
* config/global.mk
* Restored default lib dir to simply lib on *nixes.
% Minor opt to system location detection.
! Fixed to only use 'harbour' lib/inc postfixes on beos
when installed on system location. Thanks Przemek for the patch.
* config/global.mk
* Changed to install libs by default to lib/<plat>/<comp> on *nixes too.
(if HB_INSTALL_PREFIX isn't a system location)
* config/dyn.mk
! Typo in prev.
* bin/postinst.sh
! Fix to strip command. Now using 'find' again and using -maxdepth 1
to prevent it from parsing subdirs.
* config/global.mk
+ Added new user settings to screen dump.
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
* config/darwin/gcc.mk
* config/linux/gcc.mk
* config/dyn.mk
+ Attempt to add link creation for dynlibs.
Not tested yet.
; TODO: darwin needs even more sopthistication.
; TODO: clean support is missing yet.
; TODO: add this to rest of targets.
* source/vm/vmmt/Makefile
! Disabled HB_HVM_ALL for linux-icc, because it causes compiler internal
error when using -fpic.
* source/vm/Makefile
* Indenting.
* INSTALL
! Fixed typos in new section.
; NOTE: Please review this section, as I don't have an rpm-capable
distro at hand. I may have also missed some sudo/fakeroot
commands as I never use them in context of Harbour.
TODO: If there it's at all possible I think Harbour package
creation should support sudo-less way to *create* packages.
'sudo' should be a must only to install them to system location.
* mpkg_tgz.sh
* bin/postinst.sh
% Attempt to clean mpkg_tgz.sh from redundant make logic.
Some tasks (stripping, shared tool making using HB_BUILD_SHARED,
chmod on HB_INC_INSTALL) moved to postinst.sh, some others
deleted (platform detection, shared tool building using old
method, component detections, install dir forming and creation.
; Please review me and test.
; TODO: Maybe above tasks in postinst.sh should only be
executed when HB_BUILD_PKG=yes.
* config/global.mk
! Fixed to only use lib64 dir if it exists. Please review/test
this feature.
+ Now exports HB_SYSLOC variable which is set to non-empty if
HB_INSTALL_PREFIX points to system location.
* harbour.spec
- Deleted PIC option related lines. These are handled by GNU Make now.
* utils/hbmk2/hbmk2.prg
+ Added PIC related options to *nix compilers when using -hbdyn option.
% Deleted PIC related option from link command. Not needed.
* INSTALL
* config/global.mk
+ HB_BUILD_SHARED will now default to yes, if HB_INSTALL_PREFIX
points to a *nix system location. (in sync with hbmk2 logic)
* config/dos/djgpp.mk
+ Added .dll building rule, but it doesn't work, so I've commented it.
(-shared isn't accepted by DJGPP ld)
* config/bin.mk
+ Added HB_BUILD_SHARED support for os2/watcom.
* source/Makefile
* Deleted env space saving optimization for dos platform
and added support for gtdos when building dos .dlls.
% Deleted line after prev changes.
* config/global.mk
+ Added special .dll names when building dos based ones.
(harbour / harbourm)
* config/dos/watcom.mk
+ Enabled absolutely experimental dos .dll support.
; Current result:
---
wlink OP quiet SYS cwdllr NAME '..\..\..\..\..\bin\dos\watcom\harbour' OP implib='../../.
./../../lib/dos/watcom/harbour.lib' @__dyn__.tmp
Warning! W1027: file clib3r.lib(cstart): redefinition of ___begtext ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __nullarea ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __D16Infoseg ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __x386_zero_base_selector ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __exit_ ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __do_exit_with_msg__ ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __GETDS ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of ___GETDSStart_ ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of ___GETDSEnd_ ignored
Error! E2030: file clib3r.lib(cstart): multiple starting addresses found
mingw32-make.exe[2]: *** [harbour] Error 1
---
; TOFIX: hbpp object will be (or is) again a showstopper.
* config/win/watcom.mk
* Synced with dos/watcom.mk after above change.
* config/bin.mk
! Fixed to leave sys libs for non-*nix systems in shared mode.
+ Added support for win/watcom.
* utils/hbmk2/Makefile
* utils/hbrun/Makefile
+ Added extra core lib specs required in shared mode.
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
* source/Makefile
* config/global.mk
* config/bin.mk
+ Added experimental support for HB_BUILD_SHARED=yes setting,
which tells GNU Make to create shared Harbour tool executables.
; TOFIX: watcom for sure needs to be fixed.
* utils/hbmk2/hbmk2.prg
% Deleted bin dir from lib dir list in shared mode for
non-*nix compilers. Implibs are used in all cases so this
is isn't necessary anymore.
* harbour/bin/hb-func.sh
! fixed few problems introduced by macro name modifications and removed
some wrong RT checking
* harbour/bin/hb-func.sh
* harbour/source/common/hbprintf.c
* harbour/source/rtl/fstemp.c
* harbour/config/bsd/libs.mk
* updated for NetBSD builds
* INSTALL
* HB_INC_* -> HB_WITH_*. This is now the new documented (pbly
the final name) to control external dependencies. Usage is
the same as with HB_INC_*. HB_INC_* is still accepted.
+ Synced .deb and .rpm package names with information found in
mpkg_*.sh files.
* config/detfun.mk
! Fixed to accept HB_WITH_* variables in place of HB_INC_*.
If both are specified, HB_WITH_* will be used.
* mpkg_deb.sh
% Deleted redundant-looking package detection. Packages are now
detected from GNU Make everywhere where needed.
Also deleted redundant assembly of HB_CONTRIBLIBS variable.
* mpkg_tgz.sh
% Deleted -fPIC handling. Now handled by GNU Make system.
- Deleted HB_NCURSES_FINK variable which isn't used in Harbour anywhere.
* config/global.mk
+ Setting lib INSTALL dir to lib64 for x86_64 targets.
(Please extend this with other 64-bit CPU types, if
this is how it should work on *nixes)
This rule was taken from mpkg_tgz.sh.
* external/sqlite3/sqlite3.c
* external/sqlite3/sqlite3.dif
* external/sqlite3/sqlite3.h
+ sqlite upgraded to 3.6.18 (from 3.6.17)
* external/sqlite3/Makefile
+ Enabled for mingwarm. Now it compiles with only one warning.
* utils/hbmk2/hbmk2.prg
+ Added 'fossil' version control system support to -vcshead option.
* debian/rules
% Minor Makefile optimizations. I hope this is right.
* INSTALL
+ Readded alternative package for curl on debian.
+ external/zlib/zlib.dif
+ external/sqlite3/sqlite3.dif
+ Added .dif files for local patches to locally hosted
3rd party code. Pls update these when modifying original
source locally.
; NOTE: I intentionally didn't add svn props to these files.
* external/sqlite3/Makefile
! Typo in comment.