* INSTALL
% tuned to not require regular updates when new versions of
certain linked products are release (ie. deleted latest
version specific links and references)
* INSTALL
+ use win-make in primary build example except mingw32-make,
change wording a little
% tweaked information about large attachment in HOW TO PARTICIPATE
section
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* contrib/rddads/adsx.c
* src/common/hbfsapi.c
! deleted explicit newlines at EOL in HB_TRACE() calls
* INSTALL
+ added new '0. GUARANTEES AND LIABILITY' section
! updated instructions to create debug build
* utils/hbmk2/hbmk2.prg
* minor cleanups
* utils/hbmk2/Makefile
+ enabled dynamic version of hbmk2 only for mingw builds.
Rest of the targets may or may not work due to CRTL
usage (fprintf()) from HB_COMPILE*() calls which causes
GPF in currently generated shared builds, most probably
due to double copy of statically linked CRTL code.
mingw uses MSVCRT.DLL, so it's not prone to this.
Solution is either to avoid file handling CRTL calls
in compiler code, or to tweak -shared build setting to
death to make it work for all non-mingw compilers.
Both of these is very difficult.
This means that dynamic module loading from scripts
will only work in hbmk2 built with mingw.
; TOFIX: 'make clean' on contribs doesn't work with mingw,
because harbour dll is deleted before hbmk2 is
called, so it cannot be started for cleanup.
* contrib/make.hb
* INSTALL
+ re-disabled HB_BUILD_CONTRIB_DYN=yes by default.
The mere presence of dynamic versions of libs was causing
the executables on *nix systems got linked against them,
even in -static mode, which might not be desired. So
until someone finds out how to control this aspect, it's
best to disable then altogether. Or maybe it could enabled
by default only on non-*nix systems.
* bin/3rdpatch.hb
* contrib/make.hb
* changed to be executed by hbmk2
- contrib/hbrun/extdyn.prg
- contrib/hbrun/hbrun.prg
- contrib/hbrun/hbrun.rc
- contrib/hbrun/headers.prg
- contrib/hbrun/p_ext.hb
- contrib/hbrun/plugins.prg
* contrib/hbrun/hbrun.hbp
% changed to use hbmk2 sources and make file to build hbrun,
implementing the build method described in previous ChangeLog
entry. The lost feature is netio management plugin, which
is now not loaded by default. Plus, since this is a static
build, dynamic extensions don't work.
* contrib/make.hb
* src/pp/ppcore.c
* deleted reference to hbrun in comment
* contrib/hbnetio/utils/hbnetio/netiocon.prg
* contrib/hbnetio/utils/hbnetio/netiomgm.hb
* __hbrun_plugin() -> __hbshell_plugin()
* INSTALL
* minor in previous change
* contrib/make.hb
* contrib/hbrun/hbrun.hbp
* INSTALL
+ enabled HB_BUILD_CONTRIB_DYN=yes by default. It will
cause longer build-times, but it will also create dynamic
builds for all contribs now. HBQT is particularly huge,
so maybe we should disable dynamic libs creations for
them.
; EXPERIMENTAL. This feature has been available for quite
a long time now and some users have tested, but anyways
build breaks are possible.
- contrib/hbrun/extstat.prg
* contrib/hbrun/extdyn.prg
* contrib/hbrun/hbrun.hbp
* contrib/hbrun/hbrun.prg
% simplified the way static contribs are pulled into the
executable. Now the list if linked contribs needs to be
maintained only inside hbrun.hbp
* utils/hbmk2/hbmk2.prg
+ inclusion of embedded core headers can now be enabled
using -DHBMK_WITH_EMBEDDED_HEADERS build-time option for
a minimal set (formely enabled by default in hbmk2)
and -DHBMK_WITH_ALL_EMBEDDED_HEADERS for the full set,
which is compatible with hbrun
* hbmk2 will act as a shell/script runner also if its
own name _starts_ or _ends_ with hbrun, so f.e. hbrun2,
and xhbrun will be okay as well (in sync with other
similar alias name rules).
+ shell screen will now display the list of non-core,
statically linked extra libs
; NOTE: to custom build a complete hbrun emulation from
hbmk2 source, use the following configuration:
1. create file 'hbrun_emu.hbm' with this content:
---
-ohbrun
-static
-DHBMK_WITH_ALL_EMBEDDED_HEADERS
hbct.hbc -request=__HBEXTERN__HBCT__
hbexpat.hbc -request=__HBEXTERN__HBEXPAT__
hbmemio.hbc -request=__HBEXTERN__HBMEMIO__
hbmzip.hbc -request=__HBEXTERN__HBMZIP__
hbnetio.hbc -request=__HBEXTERN__HBNETIO__
hbunix.hbc{unix} -request=__HBEXTERN__HBUNIX__{unix}
hbwin.hbc{allwin} -request=__HBEXTERN__HBWIN__{allwin}
---
2. build hbrun emulation using this command:
$ hbmk2 utils/hbmk2/hbmk2.hbp hbrun_emu.hbm
3. This will create a fully static executable, with
the name hbrun, with all embedded core headers and
statically linked list of contribs listed in the .hbm
file. The list can be configured at will. This is
self-contained executable that can be distributed
easily. Notice however that dynamic extension feature
will not work in this type of build.
* utils/hbmk2/hbmk2.hbp
* minor formatting
* INSTALL
+ documented hbmk2 usage as shell, script runner and
.hrb builder/runner
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.nsi
+ use hbmk2 as interactive shell instead of hbrun
* utils/hbmk2/hbmk2.prg
+ display Harbour version when starting up the interactive shell
* INSTALL
* minor clarifications to INSTALL/TROUBLESHOOTING
* config/os2/watcom.mk
* config/wce/mingwarm.mk
* config/wce/msvcarm.mk
* config/wce/poccarm.mk
* config/win/bcc.mk
* config/win/mingw.mk
* config/win/msvc.mk
* config/win/pocc.mk
* config/win/watcom.mk
* config/win/xcc.mk
+ added std header paths to RC commands
* utils/hbmk2/Makefile
+ utils/hbmk2/hbmk2.rc
* utils/hbmk2/hbmk2.hbp
+ added std windows versioninfo and manifest to hbmk2
* utils/hbmk2/hbmk2.prg
+ utils/hbmk2/p_extdyn.hb
+ added almost complete hbrun functionality into hbmk2
to run it, type: 'hbmk2 .'
Missing is extension registration, plugins don't seem
to work yet, and I plan to switch from full screen
prompt to shell-like prompt. Plugin paths, extension
configuration, history on-disk files need further
polishing.
+ hbmk2 will act as a hbrun, if renamed to hbrun
* contrib/hbqt/qtcore/hbqt_misc.prg
+ added two TOFIXes for missing PROTECTED keyword
for two object variables of unknown purpose. Not
even HBQT developers know what it is, but without
it, HBQT breaks.
; Those who need "stable" hbqt (meaning "it builds")
Go to:
http://sourceforge.net/p/hbqt/
* INSTALL
+ extended troubleshooting instructions for code that
involves non-ASCII chars
* utils/hbmk2/hbmk2.prg
+ use UTF8 HVM in runner mode
+ enabled translations in runner mode
! in runner mode fixed setting up core header dir when no
dyanmic libs are used
! in runner mode, dynamic lib location should now be detected
also on *nix systems (untested)
* some other minor cleanups and tweaks to runner mode
* contrib/hbrun/hbrun.prg
+ enabled UTF8EX as default CP for hbrun script. This makes
scripts portable and on par with other script languages.
It also syncs this aspect with hbmk2's script runner
facility. INCOMPATIBLE. Make sure to create scripts
that are unicode compatible and use UTF8 CP for accents.
If you need old behavior, add 'hb_cdpSelect( "EN" )' to
the top of your script.
; contains copy/paste code from hbmk2 for OS and terminal
CP detection. These should eventually make it into the
RTL
* INSTALL
! minor
* contrib/hbqt/qtwebkit/hbqtwebkit.hbm
* contrib/hbqt/hbqt_common.hbm
* INSTALL
+ added support for QT from Homebrew package manager. Probably
a better option than the official installer which is a) not
compatible with latest Xcode changes b) copies millions of
files into the system file structure with no easy uninstall
or upgrade option.
* src/rtl/hbregex.c
% deleted unnecessary protection around PCRE_CONFIG_UTF8
macro usage. (it was used unprotected elsewhere in the
code for a long time)
* INSTALL
+ added mingw64 on win64 host example. (same as on win32,
except comment)
* INSTALL
+ extended TROUBLESHOOTING about generic common-sense
information about not overdoing custom configuration,
especially for C compiler. I didn't specifically include
anything about bcc, but let me here note, that hbmk2
and Harbour core build system doesn't require bcc32.cfg
and ilink32.cfg to be _present at all_ since quite long,
so please remove them for best results.
* src/rtl/tbrowse.prg
! ignore non-string column picture value like Clipper (instead of RTE)
(reported by Rossine)
; review/check me
* INSTALL
+ added TROUBLESHOOTING / 13. on testing compatibility components
against original implementation.
* package/winuni/mpkg_win_uni.bat
- deleted windows-only contrib specific file installation
procedure. now done by contrib/make.hbs.
; it also means that contrib-specific public files are
now included in non-unified installation packages,
created using HB_BUILD_PKG=yes.
; TODO: modify *nix package creation scripts to include
/opt/harbour/contrib in the package.
* config/global.mk
* INSTALL
* changed HB_INSTALL_IMPLIB default to 'yes'. This means
that now the implibs for 3rd party .dlls will be included
in install packages, including the nightly/stable releases.
This is theoretically wrong solution and bad practice, but
to me real life shows that users don't have a clue about
implibs and how to generate them and it also requires users
to build Harbour themselves if they want to use any of the
many libs with implib dependencies, instead of being able
to use binary releases.
One big WARNING applies (quote from INSTALL):
"Also note that the generated implibs will require .dlls
compatible with the ones used at build time."
IOW you must be using the same (or binary compatible)
.dll as was used at built time. If you use something else,
you still will have to generate the implib yourself or
change your .dll version according to above.
[I hope Marek Paliwoda doesn't mind.]
* INSTALL
+ added to self-contained source code example text:
"Do not post executables and other binary files."
It's redundant, but it apparently "source code" wasn't
clear enough.
* INSTALL
+ added new item to TROUBLESHOOTING section:
"12. If you are to report a problem with Harbour itself, always provide
self-contained, minimal sample source code. Do not use xhb contrib
library, or any 3rd party Harbour libraries. The sample shall reproduce
the problem using official stable or nightly Harbour build."
* INSTALL
* further clarified the way to submit diffs (use _one_ .dif
file created from root of SVN sandbox using 'svn diff', use
extension '.zip')
* clarified the names of mailing list.
* clarified which mingw tdm 4.6.1 version is okay.
* simplified to use 'zip' tool and .zip extension for submitted
logs.
* harbour/package/mpkg_rpm.sh
! fixed RPM _topdir detection.
Patch created by Raphael Gozzo - many thanks.
* harbour/INSTALL
* added info about libraries necessary to build hbgs and hbmagic
in Ubuntu.
* harbour/contrib/hbmagic/hbmagic.hbx
* added HB_MAGIC_SIMPLE (regenerated automatically)
* contrib/hbqt/gtqtc/gtqtc.cpp
! deleted unused static function shown by new mingw version.
* INSTALL
* mingw 4.6.1 is OK for Harbour.
; I didn't test the 64-bit version in 32-bit mode, I hope
someone will, maybe it has the float precision fixed and
it can become recommended version for both x86 and x64
mingw builds.