* config/globsh.mk
! make the clean target also remove the newly-created libharbour* symlinks [Tamas]
* utils/hbmk2/hbmk2.prg
+ Added TODO to eventually delete lib grouping.
* config/linux/watcom.mk
- Disabled dynlib creation on linux/watcom, because watcom support
is broken yet.
* contrib/hbnetio/utils/hbnetio/hbnetio.hbp
* contrib/hbformat/utils/hbformat.hbp
* contrib/hbrun/hbrun.hbp
- Deleted nxcompat (and friends) flags from local .hbp files.
They are enabled by config/hbpost.hbm, in more precise manner.
* utils/hbmk2/hbmk2.hbp
* utils/hbi18n/hbi18n.hbp
* utils/hbtest/hbtest.hbp
- Deleted also from here. (These .hbp files are not used
by core make.)
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.es_PE.po
* utils/hbmk2/hbmk2.prg
+ Added -F<framework> option to pass OS X/Darwin frameworks to the linker
(in both hbexe and hbdyn modes)
+ <name.framework> input files will be recognized as OS X/Darwin frameworks.
+ Added support for frameworks= command in .hbc files.
* contrib/hbqt/qtgui/hbqtgui.hbc
* contrib/hbqt/qtwebkit/hbqtwebkit.hbc
* contrib/hbqt/qtcore/hbqtcore.hbc
* contrib/hbqt/qtnetwork/hbqtnetwork.hbc
* contrib/hbqt/qscintilla/hbqscintilla.hbc
* contrib/hbqt/qtdesigner/hbqtdesigner.hbc
* Replaced manual hack to add QT frameworks on darwin,
with new hbmk2 framework options.
* contrib/sddfb/sddfb.hbc
* contrib/hbfbird/hbfbird.hbc
+ Added Firebird as framework on darwin.
* utils/hbmk2/hbmk2.prg
! Fixed regression in 2011-02-10 23:45 UTC+0100 Viktor Szakats,
in making .hbmk dir hidden when converting from custom DirBuild()
to core hb_DirBuild(). Due to typo the dir was not made hidden.
! Fixed to make .hbmk hidden regardless of casing (f.e. on MS-DOS).
* utils/hbmk2/hbmk2.prg
! Readded REQUEST HB_FSETATTR. It was used in conditional
code, so it was not linked on *nix builds, causing
failure to run postinst.hbs.
* src/rtl/hbrandom.c
* Minor formatting.
- src/dynlib/mt
* src/dynlib/Makefile
* src/vm/maindllp/dllpcode.c
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
* config/global.mk
* config/bin.mk
* Changed to have only one harbour dll, and this one with MT support.
This means the old MT mode dll named harbourmt/harbourm is no more
and the old ST mode dll vanished also. This will result in much
cleaner layout of Harbour binary tree, smaller distribution size,
and unambigous dll tree when linking an app with dll multiple
components (f.e. contribs).
If someone wants to build an ST mode harbour dll, she can use the
internal build-time option: _HB_BUILD_DYN_ST=yes
; Please test.
; TODO: Do a final cleanup on internal variable names to not have "ST" in them.
* contrib/make.hbs
* contrib/hbide/idemisc.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbrun/hbrun.prg
* config/postinst.hbs
* bin/hb3rdpat.hbs
* Using new filename handling functions from core.
% Deleted redundant local copies of these functions.
* utils/hbmk2/hbmk2.prg
+ REQUESTing new filename handling function till they are
used in hbmk2 too.
; TODO: Make the switch in hbmk2 too.
* contrib/hbmysql/hbmysql.hbc
* contrib/sddpg/sddpg.hbc
* contrib/hbpgsql/hbpgsql.hbc
* contrib/sddmy/sddmy.hbc
* contrib/hbmagic/hbmagic.hbp
* contrib/hbmagic/hbmagic.hbc
* contrib/hbfimage/hbfimage.hbc
* contrib/hbcairo/hbcairo.hbc
+ Added libpaths for darwin.
+ Added libmagic detection on darwin.
* contrib/hbgd/hbgd.hbc
! Fixed libpath option for darwin.
* utils/hbmk2/hbmk2.prg
* Add watt lib path to path list only if exists.
* Add -L and libpaths= values to path lists only if they exist.
! Fixed option order in dynlib libtool command for darwin.
* utils/hbmk2/hbmk2.prg
+ switched to use libtool for lib assembly with all darwin
compilers (was gcc only + TODO)
+ switched to use libtool for dynlib assembly with all darwin
compilers (instead of compiler)
+ Added '-flat_namespace -undefined suppress -single_module'
options for dynlib assembly. Now in sync with core build.
; Pls test. I didn't test if the created .dylibs actually work.
* contrib/hbpost.hbm
- Deleted now unecessary manual darwin dylib options.
* utils/hbmk2/hbmk2.prg
! Tweak to self name filter.
* contrib/hbpost.hbm
! Added options for darwin to make dynlib building work again
after the -hbdynvm/-hbdyn change last year.
; TODO: Move these to hbmk2. Also maybe it'd be better to
use libtool there, like in core Harbour build.
+ Added dynlib internal name and version info.
* contrib/hbodbc/hbodbc.hbc
* contrib/sddodbc/sddodbc.hbc
+ Added odbc lib name for darwin.
* contrib/hbmxml/3rd/minixml/mxml.hbp
* contrib/3rd/sqlite3/sqlite3.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hblzf/3rd/liblzf/lzf.hbp
* contrib/hbxdiff/3rd/libxdiff/xdiff.hbp
* contrib/hbexpat/3rd/expat/expat.hbp
* contrib/hbbz2/3rd/bz2/bz2.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
! Do not create dynamic version of 3rd party dependencies hosted
locally. It should fix some problems on *nix builds with
HB_BUILD_CONTRIB_DYN=yes.
* contrib/hbrun/hbrun.hbp
+ -o option.
* utils/hbmk2/hbmk2.prg
+ Added dynlib dir + prefix to --hbinfo output.
* contrib/hbplist
- contrib/hbrun/hbrunext.hbp
+ contrib/hbrun/hbrun.prg
+ contrib/hbrun/hbrun.hbp
+ contrib/hbrun/hbrun.1
* config/postinst.hbs
- utils/hbrun
* utils/Makefile
* Moved hbrun to contrib area.
; Now it can contain any contrib libs.
* Makefile
* contrib/Makefile
+ Changed script runner tool to hbmk2 (from hbrun).
So now hbrun is not required for build process.
* utils/Makefile
* package/harbour.spec
* INSTALL
* Changed to reflect that now hbmk2 runs the build scripts.
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.prg
+ Added hbrun_ProgrName() function to return runner executable name.
* utils/hbmk2/hbmk2.prg
+ Added experimental hbrun script runner "emulation" to hbmk2.
With a few differences:
- there is no interactive console
- it works only if filename with .hbs or .hrb is passed as first parameter
(which present a minor incompatibility for those using hbmk2
to compile .hbs scripts to executables)
- the default GT environment for scripts is GTCGI.
- scripts may request interactivity with HBRUN_GTINTERACTIVE()
function call. This will switch mode to GTWIN/GTTRM/GTDOS/GTOS2
depending on platform. Though interactive functions linked into
hbmk2 are very limited.
- only a limited set of functions and headers are available,
those which may be useful for cmdline apps.
(which means hbmk2 size didn't grow significantly after this
commit)
; The goal is to make it possible to replace hbrun with hbmk2
for Harbour build related scripts, and other simple user scripts.
* utils/hbrun/hbrun.prg
* Minor cleanups.
* Using HB_PROGNAME() instead of HB_ARGV( 0 )
* src/common/hbverdsp.c
+ Instead of adding "(UNICODE)" marker in build info for UNICODE
builds, now it will add "(WINANSI)" for non-UNICODE builds.
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
* Using more hb_StrFormat()
* contrib/hbnetio/utils/hbnetio/netiocon.prg
* Tweak to one cmd help.
* utils/hbrun/hbrun.prg
* Formatting.
* utils/hbmk2/hbmk2.prg
! Do not add .hbx file to input file list if the file doesn't
exist. This is to resolve the chicken-egg problem when
initially creating the .hbx file for a new project.
! Never use .hbx filename for forming the output name
and deciding about startup module.
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
+ Do not add duplicates to extern list.
(it may have only happened if renaming sources and
building without clean)
* contrib/hbrunext/hbrunext.hbp
* contrib/hbrunext/pullext.prg
* utils/hbrun/hbrun.prg
+ Will now show the list of available extensions if any is linked.
* INSTALL
* watt homepage update. [Tamas]
* contrib/make.hbs
+ Updated to use hbmk2 to create hbx files.
* contrib/3rd/sqlite3/sqlite3.hbc
* Fix for Minix. From Tamas.
* contrib/hbblink/hbblink.hbx
* Updated.
* utils/hbmk2/hbmk2.prg
* Refinements in hbx related console feedback.
* contrib/hbplist
+ Added hbrunext to contrib list, so it's now built for everyone.
; It also builds nicely using full shared mode (on win platform
with '-env:__HB_DYN__=_dll -shared' options). .exe is 1MB with
mingw.
But, there is one catch, harbourmt.dll and harbour.dll are mixed
(mt pulled by hbrunexp, st pulled by contrib dlls),
which is tricky business. What's best solution for this? (Obviously,
building both ST and MT versions of all .dlls doesn't seem like
a very good idea)
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.es_PE.po
+ Added 'requests=' command to .hbc files.
* utils/hbrun/hbrun.prg
+ Added my name to copyright banner.
* utils/hbmk2/hbmk2.prg
+ Add -D__HBEXTREQ__ whenever an .hbx module is present in a project.
* contrib/hbpost.hbm
- Delete manual -D__HBEXTREQ__. Now automatic.
* utils/hbmk2/hbmk2.prg
+ Added -request= option to force linking any custom function/procedure
to target executable.
* contrib/hbrunext/hbrunext.hbp
* Replaced small hack using -main= to force linking, with -request= option.
* utils/hbmk2/hbmk2.prg
* config/beos/gcc.mk
* config/qnx/gcc.mk
* config/bsd/gcc.mk
* config/wce/mingwarm.mk
* config/vxworks/gcc.mk
* config/minix/gcc.mk
* config/darwin/gcc.mk
* config/hpux/gcc.mk
* config/win/mingw.mk
* config/linux/gcc.mk
* config/cygwin/gcc.mk
* config/symbian/gcc.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
! Separate -Wimplicit-int and -Wimplicit-function-declaration
so that they are added to cflags only when not in cpp mode.
; Patch by Tamas.
* utils/hbmk2/hbmk2.prg
+ Added -manifest= hbmk2 option for -hbexe/-hbdyn targets on
Windows platform. (all compilers supported)
Pls test.
; To generate manifests with -hbdyn and pocc/msvc compilers,
use -dflag=-manifest (or any other manifest related options
their linker support)
; TOFIX: bcc's resource compiler doesn't work in -inc mode.
* utils/hbmk2/hbmk2.prg
+ Added "nCOMPVer" variable for hbmk2 plugins. This returns
C Compiler version, which currently gives results for
mingw and msvc.
* utils/hbmk2/hbmk2.prg
+ Implemented experimental link script for mingw compilers with
-hbdyn targets. If it works out it can be extended to -hbexe
outputs, too. With further work it can be extended for os2 and
dos platforms. I will only do this if someone actually
reports such problems and can do tests.
; Please retest mingw build with HBQT contrib enabled, long HB_BUILD_NAME,
and HB_BUILD_CONTRIB_DYN=yes, and also normal cases.
* utils/hbmk2/hbmk2.prg
+ Adding clib3s lib to system lib list for win/watcom when
in -hbdyn mode. This is to fix link errors of 3rd (non-Harbour)
dynamic libs in HB_BUILD_CONTRIB_DYN=yes mode.
I have no idea why it's needed, so please extended or tweak
this fix if you have a better understanding of it.
(maybe the lib should be add for all platforms, or for
all link modes, etc)
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
+ Enabled for win/watcom. I don't know since when it builds and
what fixed it, so it's possible it's still broken with older
watcom verions. Now it builds fine with 1.9.
; TOFIX: watcom still has problems with missing externals when
building hbwin dll:
Error! E2028: IID_IDispatch is an undefined reference
Error! E2028: IID_IOleObject is an undefined reference
Error! E2028: IID_IUnknown is an undefined reference
Error! E2028: GUID_NULL is an undefined reference
Error! E2028: IID_IProvideClassInfo2 is an undefined reference
Error! E2028: IID_IProvideClassInfo is an undefined reference
Error! E2028: IID_IConnectionPointContainer is an undefined reference
Error! E2028: IID_IEnumVARIANT is an undefined reference
gtwvg dll:
Error! E2028: IID_IPicture is an undefined reference
and hbodbc dll:
Error! E2028: _SQLSetStmtAttrW@16 is an undefined reference
Any idea?
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
+ Keep order of filter lists.
* utils/hbmk2/hbmk2.prg
! Use _hbmkcpp_<cFirstFile>.cpp (instead of _hbmkcpp.cpp) on
non MS-DOS platforms.
* harbour/utils/hbmk2/hbmk2.prg
! do not use the first source file name to set hbmk[ _HBMK_cPROGNAME ]
when -gh switch is used - in such case multiple files are generated
so there is no single output file.
+ added support for incremental builds when -gh option is used
! clean .hrb files when -gh and -clean options are used
! clean .ppo, ppt and .pot files when -clean option is used in
incremental mode.
! use _hbmkaut_<cFirstFile>.[r]c instead of _hbmkaut.[r]c on
non DOS platforms to resolve name conflicts in multitarget builds
% do not check dependencies when -clean option is used
% do not rebuild/update .po files when -clean option is used
* added info message "Target(s) up to date." when none of
.hrb file have to be rebuild in -inc mode
; TODO: copy .hrb files created in -workdir to output directory
specified by -o option or to the current one
; NOTE: please verify above modifications
* src/rtl/dirdrive.c
+ Added HB_DIRCREATE(), which is same as MAKEDIR() C5.3 function,
but it's always available, not just when HB_COMPAT_C53 is enabled.
+ Added HB_DIRDELETE(), which is same as DIRREMOVE() C5.3 function,
but it's always available, not just when HB_COMPAT_C53 is enabled.
* contrib/hbnetio/tests/netiotst.prg
* contrib/hbnetio/tests/netiot03.prg
* contrib/hbfimage/tests/fitest.prg
* contrib/hbide/idesaveload.prg
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.prg
* tests/wcecon.prg
* tests/flink.prg
* bin/hb3rdpat.hbs
* examples/hbdoc2/gentpl.prg
* Replaced MakeDir() with universally available hb_DirCreate().
; TODO: same in config/postinst.hbs (delayed to avoid a million
false bug reports)
* src/rtl/Makefile
+ src/rtl/hbfilehi.prg
+ Added generic file/dir/path handling functions.
They are taken from hbmk2 code, added parameter checking,
did two minor change to DirBuild() to be generic,
renamed to have HB_ prefix.
Please note the parameter list and any details are
subject to change yet, IOW these APIs are not yet finalized:
hb_cwd() -> <cPath>
hb_PathNormalize( <cPath> ) -> <cPath>
hb_PathMakeAbsolute( <cPathRel>, <cPathAbs> ) -> <cPath>
hb_PathMakeRelative( <cPathBase>, <cPathTarget>, <lForceRelative> ) -> <cPath>
hb_DirAddPathSep( <cDir> ) -> <cDir>
hb_DirDelPathSep( <cDir> ) -> <cDir>
hb_DirBuild( <cDir> ) -> <lSuccess>
hb_DirUnbuild( <cDir> ) -> <lSuccess>
hb_FNameDirGet( <cFileName> ) -> <cDir>
hb_FNameNameGet( <cFileName> ) -> <cName>
hb_FNameNameExtGet( <cFileName> ) -> <cNameExt>
hb_FNameExtGet( <cFileName> ) -> <cExt>
hb_FNameExtDef( <cFileName>, <cDefExt> ) -> <cFileName>
hb_FNameExtSet( <cFileName>, <cExt> ) -> <cFileName>
hb_FNameDirExtSet( <cFileName>, <cDirNew>, <cExtNew> ) -> <cFileName>
; TODO: Review, clean interface.
; TODO: Use these functions in .hbs files, utils, hbide.
* include/harbour.hbx
* Updated.
* utils/hbmk2/hbmk2.prg
* One internal function renamed.
* harbour/utils/hbmk2/hbmk2.prg
! small fix in FN_FromArray() which caused that relative paths were
converted to the root directory, i.e. -workdir=. was not working
correctly
* utils/hbmk2/hbmk2.prg
+ Enabled to use link scripts with msvc compilers, to avoid
too long cmdline problems. (experienced when creating
qtgui lib in dynamic version (HB_BUILD_CONTRIB_DYN=yes)
with HB_BUILD_NAME set to a longer name, so it was quite
a stress case and should not cause a problem for most
users.)
* harbour/src/pp/ppcore.c
! fixed to not strip path in .d dependencies list for files included
from -I<directories>
* harbour/utils/hbmk2/hbmk2.prg
% do not use FindHeader() for dependencies list extracted from .d
files - they should contain full paths so it's not necessary
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.*.po
! Fixed RTE in FindNewerHeaders() when using autohbc feature.
(it's regression from around 2010-08-05 15:58 UTC+0200 Viktor Szakats)
+ Added -head=dep option to help.
* harbour/utils/hbmk2/hbmk2.prg
! fixed dependences checking for -head=full and @.clp files
+ added automatic dependencies checking for .prg files using .d
files generated by harbour compiler (-head=dep)
; TODO: extend it for .c files and GCC based compilers
* src/rtl/listbox.prg
* Internal var renamed to reflect its type.
* src/rtl/einstvar.prg
* src/rtl/einstv52.prg
* Fixed to use manifest constants.
* utils/hbrun/hbrun.prg
! Fixed to allow case-insensitive match for headers on
non-*nix platforms.