* INSTALL
* doc/bintools.txt
* os2-make.exe
! Updated OS/2 make.exe (and links in INSTALL) to make-3.81-r3
(from make-3.81-r2).
This fixes the dreaded cmdline length inducated GNU Make crashes
which made us add .mk workarounds and which created a showstopper
towards OS/2 .dll support.
Many thanks to Maurilio Longo and Andreas Buening for hunting
down and fixing the problem in OS/2 GNU Make port.
* contrib/hbtip/sendmail.prg
! Applied patch from Alex Strickland.
Fixes wrong encoding (7-bit).
Fixed mails sent as multi-part even if there was only simple body.
* utils/hbmk2/hbmk2.prg
! Fixed stupid error in last cmomit.
* utils/hbmk2/hbmk2.prg
+ Extended autodetection of mingw cross-compiler on *nix system.
* Disabled native compiler tool autodetection for non-*nix targets
on *nix hosts. This will need further refinement.
* config/haiku/libs.mk
- Deleted commented lines.
* config/global.mk
+ Some more Haiku/BeOS autodetection.
* utils/hbmk2/hbmk2.prg
% Deleted UTF-8 hack. Now using the built-in UTF-8 conversion
support.
* contrib/hbwin/win_com.c
% Minor optimization and fixed warnings after recent patch.
* INSTALL
+ Added see also HB_CC* to HB_COMPILER settings.
* external/pcre/pcreglob.c
! Fixed fatal mistake in prev commit.
* config/global.mk
+ Extended generic mingw autodetection on *nix to work on Fedora 11.
Please test. On Fedora 11 HB_CCPREFIX is i686-pc-mingw32-
* external/pcre/pcreglob.c
! Fixed watcom compilation. There are still warnings.
Please review it.
* external/pcre/config.h
* external/pcre/Makefile
* -DPCRE_STATIC moved to Makefile from config.h. There is
no dynlib build mode here, so this could be done.
* config/bsd/gcc.mk
* config/hpux/gcc.mk
* config/sunos/gcc.mk
- Deleted -fPIC from DFLAGS. Pls tell if this was put there for a reason.
* config/hpux/gcc.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
+ Added separate compilation pass for Harbour dynlibs using PIC option.
* config/global.mk
+ Added logic for host CPU detection on *nix systems.
Please extend 'check_host_cpu' with more real-world values.
+ HB_CPU made equal to HB_HOST_CPU for *nix systems.
This should be fine-tuned on the compiler level depending
on default compiler behaviour and ABI modifier options.
(if we do this further tweaks in global.mk will be needed)
* INSTALL
! Deleted wrong (and duplicate) HB_INC_* value.
* INSTALL
+ Minor tuning here and there.
* external/libhpdf/Makefile
+ Enabled libpng detection on darwin.
* config/linux/icc.mk
* config/linux/sunpro.mk
+ Implemented PIC compilation phase.
* config/linux/global.mk
* Deleted hacks dealing with PIC. Notice that now
we use -fpic on gcc/icc, while it was previously
set to -fPIC. The old hacks enabled PIC only for
Intel x86/x86_64 ABIs, which is now removed. Pls
speak up if we need to readd them on compiler
level. This way it'd be possible to optimize out second
compilation pass for ABIs which don't need special
PIC code generation. To make this useful in a generic
way, IMO we should fix ABI (CPU) HB_HOST_CPU/HB_CPU
detection in global.mk for *nix systems, and do
compiler level decisions based on HB_CPU value.
* config/linux/gcc.mk
* Minor option reordering.
* config/linux/gcc.mk
+ Enabled separate -fpic (with lowercase as a start) compilation
phase for Harbour dynlib.
% Deleted -fPIC from dynlib link command-line. Please advise if
this is necessary and what are the rules here. On linux/ubuntu
it made no difference whatsoever.
; Please test.
; TODO: hbmk2 will have to updated once we've settled with fpic
setup in GNU Make.
* config/darwin/icc.mk
- Deleted commented fpic option. On darwin this is not needed,
but some further research will be needed what *is* needed
on this platform. (check -fno-common).
* harbour/include/hbapi.h
+ added hb_xgrabz() and hb_xmemdup() macros
* harbour/include/hbapicdp.h
* harbour/source/rtl/cdpapi.c
+ added new functions which can be used in translations changing the
size of trnaslated strings:
hb_cdpDup(), hb_cdpnDup(), hb_cdpnDup2(), hb_cdpnDup3(),
hb_cdpnDupLen(), hb_cdpnDup2Len()
Now hb_cdp[n]Translate() functions are depreciated.
+ added pseduto codepage "UTF8" which can be used in trnaslations only
+ added new function hb_cdpFindExt() which allows to chose pseudo CPs
* harbour/include/hbapi.h
* harbour/include/hbset.h
* harbour/source/vm/set.c
* harbour/source/nortl/nortl.c
- removed old functions: hb_osEncode() and hb_osDecode() with low level
code which was using static char to char translation table
+ add new functions hb_osEncodeCP() and hb_osDecodeCP() which can make
translations changing the size of translated strings.
Warning all parameters have to be initialized.
Passing NULL in second parameter means that the 1-st is dynamically
allocated and can be used as buffer and reallocated if necessary.
if 2-nd parameter is not NULL then the 1-st one is used as const value.
The size of allocated buffer can be passed by reference in 3-rd
parameter and this value is updated on reallocation.
If buffer is two small then new bigger one is allocated and old one
freed.
* harbour/source/vm/set.c
+ added support for UTF8 translations in _SET_OSCODEPAGE
* harbour/source/vm/cmdarg.c
* harbour/source/common/hbffind.c
* harbour/source/rtl/filesys.c
* harbour/source/rtl/philes.c
* harbour/source/rtl/gete.c
* harbour/source/rtl/net.c
* harbour/source/rtl/hbproces.c
* harbour/source/rtl/hbrunfun.c
* harbour/source/rtl/run.c
* harbour/contrib/hbwin/win_misc.c
* harbour/contrib/hbwin/wapi_shellapi.c
* harbour/contrib/hbwin/wapi_winbase.c
* use new hb_osEncodeCP()/hb_osDecodeCP() functions
* harbour/source/rtl/hbi18n1.c
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtpca/gtpca.c
* replaced depreciated hb_cdp[n]Translate() functions with new
hb_cdp[n]Dup*()
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gtcgi/gtcgi.c
* harbour/source/rtl/hbgtcore.c
* replaced depreciated hb_cdp[n]Translate() functions with new
hb_cdp[n]Dup*()
+ added support for UTF8 translations set by hb_setDispCP() and
hb_setTermCP() functions
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* replaced depreciated hb_cdp[n]Translate() functions with new
hb_cdp[n]Dup*()
+ added support for CP translations which can change the size of
translated strings
! disabled memo field translations for fields marked as binary
+ added support for UTF8 translations.
Using UTF8 as CP disables any national sorting in indexes.
Warning: please remember that normal character fields in tables have
fixed size and translation to UTF8 may increase the string
and cut results.
* harbour/source/rdd/dbf1.c
! fixed GPF in dbCreate() with empty struct table
* include/hbdefs.h
* contrib/hbfimage/fi_wrp.c
* contrib/hbfimage/Makefile
! Reverted prev. It does all sort of strange things.
; TODO: So the only way is the proper fix: Cleaning Harbour
source from BOOL, BYTE, LONG, ULONG and all other
'legacy' types.
* include/hbdefs.h
* Using #define instead of typedef for legacy core types.
This is needed to allow for ugly hack to disable these.
* contrib/hbfimage/fi_wrp.c
! Added terrible hack to make them build on non-win platforms.
; dos/djgpp and probably os2/gcc would work, but there I wasn't
interested enough to add extra logic to handle each special
case.
; non-linux/darwin *nixes should be tested.
* contrib/hbfimage/Makefile
+ Enabled for linux and darwin.
* contrib/hbwin/Makefile
- contrib/hbwin/win_tprt.prg
- contrib/hbwin/win_prt.c
+ contrib/hbwin/win_tcom.prg
+ contrib/hbwin/win_com.c
+ Applied patch from Alex Strickland.
This patch renames all former WIN_PORT*() functions and classes
to WIN_COM*(). INCOMPATIBLE.
! Added missing DWORD casts to -1 values.
* Slightly renamed Win_ComSetTimeouts() and made it static.
; TOFIX: I had to comment out WIN_COMINIT() function since HB_INITFUNC()
doesn't exist in Harbour.
* utils/hbmk2/hbmk2.prg
! Fixed to include system zlib/pcre libs in static mode if local built lib
isn't found.
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* utils/hbmk2/hbmk2.prg
* contrib/hbsqlit3/Makefile
* contrib/hbhpdf/Makefile
* config/detfun.mk
* config/detect.mk
- Deleted _DET_LOC_PLAT variable.
* package/winuni/mpkg_win_uni_extra_copy.bat
- Deleted some extra commented lines dealing with pcre/zlib headers.
* INSTALL
+ Added Ubuntu pcre and zlib pkg information.
+ Documented HB_INC_ZLIB and HB_INC_PCRE settings.
+ Documented 'local' setting of HB_INC_* values.
* external/libhpdf/Makefile
* external/libpng/Makefile
* source/rtl/Makefile
* contrib/xhb/Makefile
* contrib/hbmzip/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbhpdf/Makefile
* config/detfun.mk
* config/detect.mk
% Avoid redetection for local packages.
+ Integrated logic to find out whether we're using the local
copy of any given package. This is now returned in a
variable called HB_HAS_*_LOCAL, if this value is non-empty
we're using the local version.
+ Added HB_INC_* option 'local', which will force using the
locally hosted version of given package.
+ HB_HAS_* variable will now contain only the first dir where
header was detected.
+ Locally hosted headers will always be detected now, if they
weren't found at any default system locations.
+ Added 'nolocal' HB_INC_* option which disables above behaviour.
; TODO: Delete _DET_LOC_PLAT variable if current system turns
out to work well.
; NOTE: I've yet to test all this on *nix.
* config/global.mk
+ Added HB_HOST_PLAT_UNIX variable.
* contrib/hbhpdf/Makefile
! Fixed mistake in prev commit.
* contrib/gtwvg/Makefile
* source/rtl/gttrm/Makefile
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
% Optimization in make logic in GTWVG Makefile.
- HB_WITH_* vars changed to not aid user override.
+ Displaying more meaningful reason if skipped.
+ compiler/platform availability checks laxed to reflect real buildability
(will most probably need refinements), so that it becomes possible to
use these even on *nix platforms, in case the system hosted copy is not
good for us or not available.
+ Now these will be built if autodetections reveals that local version
is to be used.
* Renamed HB_WITH_* vars to HB_SUPPORTED to not collide with HB_WITH_*
concept which is due to replace HB_INC_*.
; IOW: Now it should be possible to enable these locally hosted components
on any systems/scenarios where compilation of the given component
is supported. This happens automatically according to HB_INC_*
variables.
* ChangeLog
! Missed item from previous entry:
* contrib/hbqt/QApplication.cpp
! Applied GPF fix for static linkage on Linux
submitted by Istvan Bisz. Thank you very much.
; NOTE: I've added 'static' to the two arg* var copied.
Please test if it's still okay.
* external/libhpdf/Makefile
* external/libpng/Makefile
* contrib/xhb/Makefile
* contrib/hbmzip/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/QApplication.cpp
* contrib/hbhpdf/Makefile
* source/rtl/Makefile
* config/detfun.mk
* config/detect.mk
+ Added separate variable to pass embedded locations to autodetection,
so that these aren't suppressed by HB_XBUILD (now HB_BUILD_EXTDEF).
I hope it will work, I still have to try it on Linux.
* Makefile
- source/hbpcre
- source/hbzlib
* external/Makefile
+ external/pcre
+ external/zlib
* external/pcre/Makefile
* external/zlib/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* include/hbsetup.h
* include/hbzlib.h
* include/hbregex.h
* source/rtl/hbzlibgz.c
* source/rtl/Makefile
* source/rtl/hbregexc.c
* source/rtl/hbregex.c
* source/rtl/hbzlib.c
* source/Makefile
* contrib/xhb/Makefile
* contrib/hbmzip/Makefile
* utils/hbmk2/hbmk2.prg
* config/global.mk
* config/lib.mk
* config/bin.mk
* config/detect.mk
* config/darwin/libs.mk
* config/linux/libs.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/icc.mk
* config/win/cygwin.mk
* config/win/msvc.mk
* config/dyn.mk
* config/os2/watcom.mk
* config/os2/gcc.mk
* config/bsd/libs.mk
* config/hpux/libs.mk
* config/sunos/libs.mk
* Changed the way embedded zlib and pcre are handled:
- They now reside in /external dir.
- They are now excluded from Harbour dynlib. This means they
will now be linked statically on non-*nix systems and
dynamically on *nix systems. On *nix it's probably easy to
switch to link statically. On non-*nix this is quite
complicated to do.
- If these libs are provided by the system, those will be used.
- On non-*nix systems the locally hosted versions will be used,
unless user overrides them using HB_INC_PCRE or HB_INC_ZLIB.
- There is currently no officially supported way to force usage
of locally hosted libs.
- If PCRE lib is forcibly disabled or not found, build system
will fall back to POSIX regex on *nix systems and Borland regex
with bcc compiler. Otherwise it will stop the build with an error.
- If zlib is forcibly disabled or not found, an error will be
generated at build-time (in hbrtl). hbmzip is simply skipped
in this case.
- hbmk2 will use local builds of these libs if they are present
in lib dir.
; TOFIX: hbmk script.
; TOFIX: dos builds. cmdline lenghts are most probably too big for them.
; NOTE: Bumps are expected.
; NOTE: I've yet to test/verify it.
- external/libhpdf/ori_src
- external/libhpdf/ori_dst
- Deleted. (added in prev commit by oversight)
* harbour-win-spec
* harbour-wce-spec
* INSTALL
* bin/hb-func.sh
* config/detfun.mk
* config/global.mk
* Renamed HB_XBUILD to HB_BUILD_EXTDEF=no[|yes].
Not the perfect name, but anyway.
+ Documented HB_BUILD_EXTDEF setting.
; TOFIX: There is an HB_XBUILD reference in mpkg_tgz.sh which
I couldn't correct.
* Makefile
+ Moved building of external libs before utils.
This will allow to add embedded external libs which are used
by Harbour core.
* contrib/hbfimage/Makefile
* contrib/hbfimage/tests/fitest.prg
+ contrib/hbfimage/freeimag.ch
- contrib/hbfimage/freeimage.ch
! Renamed last public long filename in Harbour source tree.
This lib could in theory be compiled for dos, but this is
not yet possible to not-yet-cleaned core from Windows
types (LONG, DWORD, WORD, BOOL).
; INCOMPATIBLE: Please modify your source to use the new header
name.
* include/hbgtinfo.ch
+ contrib/gtqtc/hbgtqtc.ch
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/Makefile
* Moved HB_GTI_CODEC local to GT. Pls never add GT specific
(especially non-core) HB_GTI_* settings to core header.
* Renamed HB_GTI_CODEC to HB_GTI_QTCODEC.
! Fix to not install non-public header gtqtc.h.
* include/hbgtinfo.ch
+ #define HB_GTI_CODEC 60
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc.cpp
+ Implemented CODEC support.
USAGE:
hb_gtInfo( HB_GTI_CODEC, "Windows-1251" )
hb_setCodePage( "RU1251" )
Please test as I have never used any codepage.
* include/hbzlib.ch
* Minor formatting.
* source/hbpcre/Makefile
! Fixed missing global.mk from prev commit.
* source/hbpcre/Makefile
- source/hbpcre/_hbconf.h
- source/hbpcre/_hbpcreg.c
+ source/hbpcre/pcreglob.c
* source/hbpcre/config.h
* source/hbpcre/cnv_o2hb.bat
* source/hbpcre/cnv_hb2o.bat
+ Modified to not require extra Harbour source file. _hbpcreg.c
wasn't necessary even before, as this initialization is
done from init code in hbrtl/hbregex.c.
% Reduced content of local config stub _hbconf.h to just three
lines. We don't need to suppress warnings anymore as we have
HB_BUILD_WARN build option to control that, the rest is solved
by adding such options to local Makefile.
* Changed to use config.h instead of local stub (which
is now just three lines and only needed to support dynlib
build pass).
* source/hbpcre/pcrevutf.c
* source/hbpcre/pcreconf.c
* source/hbpcre/pcreinfo.c
* source/hbpcre/pcremktb.c
* source/hbpcre/config.h
* source/hbpcre/pcrenewl.c
* source/hbpcre/pcreucd.c
* source/hbpcre/pcreoutf.c
* source/hbpcre/chartabs.c
* source/hbpcre/pcrerefc.c
* source/hbpcre/pcreget.c
* source/hbpcre/pcrefinf.c
* source/hbpcre/pcretryf.c
* source/hbpcre/pcreexec.c
* source/hbpcre/pcretabs.c
* source/hbpcre/pcredfa.c
* source/hbpcre/pcrever.c
* source/hbpcre/pcrecomp.c
* source/hbpcre/pcrexcls.c
* source/hbpcre/pcrestud.c
* Restored some original code after above changes.
(config inclusion logic)
* bin/postinst.bat
! Fixed for dos shells. (cmdline lenght problems, end of .cfg
extension was clipped on the longest line to .cf)
+ package/winuni
+ package/winuni/HARBOUR_README_MINGW
+ package/winuni/HARBOUR_README_MINGWARM
+ package/winuni/HARBOUR_README_ADDINS
+ package/winuni/HARBOUR_README_DJGPP
+ package/winuni/HARBOUR_README_POCC
+ package/winuni/HARBOUR_README_WATCOM
+ package/winuni/HARBOUR_README_MINGW64
+ package/winuni/mpkg_win_uni.bat
+ package/winuni/mpkg_win_uni_extra_copy.bat
+ package/winuni/RELNOTES
+ package/winuni/mpkg_win_uni.nsi
+ Added components needed to create unified Windows build.
Of course the dir structure with content should be assembled
manually. These files are rough ones, ease of use was no
concern.
Anyone please feel free to continue this work.