* config/lib.cf
* config/bin.cf
+ Added -n to Harbour flags to bin.cf.
+ Added -n1 to Harbour flags to lib.cf.
; TOFIX: The former works, the latter doesn't.
Could someone please help why is this
happening?
* utils/hbmk2/hbmk2.prg
- Removed -n from default Harbour switches.
; TODO: Add prgflags=-n to all .hbp files.
; TODO: Add -n to all .hbm files.
; TODO: Add .hbp file to dirs where there are .prgs
needing -n flag.
+ bin/hb-mkdll.bat
+ Added .dll creation for GNU-make. Not yet enabled,
only MSVC supported, and by the nature of the
wonderful world of Microsoft, whole Harbour needs
to be compiled with HB_USER_CFLAGS=-DHB_DYNLIB to
make this work. -DHB_DYNLIB has some drawbacks
though: export table will be generated for all
executables made from these .libs, .exp/.lib will
also be generated for all executables.
; TODO: Solve to compile Harbour lib .prgs using
-n1 switch. (needed for .dll, and this
one has only befenefits for other scenarios)
; TODO: Add hb-mkdll.bat to postinst.bat.
; TODO: Add BCC support, if possible.
; TODO: Rename hb-mkslib.sh to 8.3 name and sync
name with the .bat version (not necessarily
mkdll, but something short.)
* bin/hb-func.sh
! Added system libs for optional components included
in the harbour dynlib. I plan to make some more
changes here, but this should fix missing system
libs with shared option enabled in hbmk2.
* contrib/examples/dbu/dbu.hbm
* contrib/examples/rl/rl.hbm
+ Added -n.
* utils/hbdoc/Makefile
* utils/hbmk2/Makefile
* utils/hbtest/Makefile
* utils/hbi18n/Makefile
* utils/hbrun/Makefile
- Removed explicit -gc0 -n override.
Should now be set automatically for all binaries.
* harbour/source/rtl/gtxwc/gtxwc.c
! fixed typo which caused GPF when palette was set before console window
initialization
* harbour/source/rtl/gttrm/gttrm.c
* reset console color palette to default on application exist
+ contrib/examples/dbu/dbu.hbm
- contrib/examples/dbu/hbmk.bat
* contrib/examples/dbu/readme.txt
+ contrib/examples/rl/rl.hbm
- contrib/examples/rl/hbmk.bat
* contrib/examples/rl/readme.txt
+ Replace Win/DOS specific batch files with hbmk make
file, so now all platforms are equally supported.
- contrib/examples/dbu/hb_dbu.dif
+ contrib/examples/dbu/dbu.dif
* Renamed.
+ source/vm/fm
+ source/vm/fm/Makefile
+ source/vm/fmmt
+ source/vm/fmmt/Makefile
* source/vm/Makefile
+ Added hbfm, hbfmmt lib generation which works for
all compilers, not just gcc family.
; Please review.
; TOFIX: For some reason the locally added C flags
appear twice. Couldn't find out why.
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
! Some three bad typos in recent commit.
! Fixed the way build-default GT is supplied via hbmkcfg file.
(via gtdef= line)
! Fixed to fill gtdef= line only if GT was overridden at
build time. Previously it was filled with gtstd, which
is wrong.
! Temporarily disabled automatic entry point detection,
as it needs more complicated management because there
needs to be a second C compiler pass. We should try
to use some other means to implement this feature IMO.
* utils/hbmk2/hbmk2.prg
+ Added internal function to check for linked GTs, so that
platform/compiler code can act accordingly.
+ Added required system libs and paths for gtsln, gtcrs
and gtxwc. So now it's 100% hbmk script compatible.
This effectively added support for gtsln and gtcrs
(for *nix only). ncur194 support is missing though,
plus maybe some build-time modifier switches aren't
honored (the WITHOUT* ones, but I'm not positive that
all of them have to be handled on hbmk2 level).
Probably some clever autodetection can be used on
hbmk2 level for such cases.
! Fixed to not be case-sensitive when dealing with GT names.
+ Added NOTE about 3rd party/contrib stuff handling.
* Minor formatting.
; NOTE: What remains is cross compilation support, which
is a new topic. -n support tweak, if needed.
And testing, adding missing compilers, fixing
existing ones if needed, syncing with build-time
switches, clean Win32 system libs.
* contrib/gtwvg/tests/gtwvg.hbp
+ Readded gui=yes to better separate compontents.
* ChangeLog
* Entry marked done.
* utils/hbmk2/hbmk2.prg
- Removed HBMK_NO_GTCGI macro.
* Cleanups and fixes to GT list handling after recent
changes.
* Minor rearrangement on help screen.
* utils/hbmk2/hbmk2.prg
+ Added automatic selection of GUI/non-GNU modes for
core/contrib GTs. This can be overridden by user by
putting -gui (and related switches) _after_ -gt switch.
In normal cases this isn't necessary.
+ Invalid GT names are ignored, instead of creating
compile error in the stub.
+ GTs and FM are now requested from C stub just like they
are in hbmk script. This makes it possible to override
GT even for apps that already uses an official method
to choose a GT. hbmk2 uses function call also to set GT.
- Removed .prg stub.
! Fixed recent potential RTE when using darwin.
* source/vm/hvm.c
+ Added hb_vmSetLinkedMain() function to replace direct
access to exported variable hb_vm_pszLinkedMain.
(it's not a public call and caller should always pass
a string literal).
* hb_vm_pszLinkedMain -> s_vm_pszLinkedMain and made static.
* utils/hbmk2/hbmk2.prg
! Not adding 'dllimport' for externs in C stub when
MSVC is used, to avoid compiler warning mentioned in
previous entry.
* utils/hbmk2/hbmk2.prg
* bin/hb-func.sh
* Updated for above change.
; TODO: Convert GT defaulting to function call too.
* contrib/hbfimage/fi_wrp.c
! Added hack to trick around FreeImage.h header not to
#include <inttypes.h> on Borland compilers. Maybe newers
than 5.8.1 versions have it, so this can be made BCC version
dependend.
* include/hbdefs.h
+ Added similar to HB_DONT_DEFINE_BOOL hack: HB_DONT_DEFINE_LONG.
(needed until we clear up our types.)
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbfimage/Makefile
* doc/whatsnew.txt
% Deleted #includes/macro checks not necessary.
! Disabled body of fi_winfu.c when not compiled under
Windows. This fixes one Linux compilation error.
% Replaced HB_OS_WIN_USED with HB_DONT_DEFINE_BOOL and
HB_DONT_DEFINE_LONG, moved foreign headers before
Harbour headers, added non-Harbour Windows detection
in fi_wrp.c (I'm not sure that is necessary), so that
it now compiles on both Windows and non-Windows (Linux
tested) systems.
+ Renabled on Linux in Makefile.
; Please review/test these changes.
* harbour/contrib/gtwvg/wvgsink.c
! Fixes as per Przemek's observations.
;TOREVIEW : return( ( ULONG ) ( ( MyRealIEventHandler * ) this )->count < 0 ?
( ( MyRealIEventHandler * ) this )->count : 0 );
Actually I was having some problem with some old active-x
and was trying to fix that, that is why, now I do not remeber...
* source/compiler/hbusage.c
! Fixed to not show -n option as '(default)' on help screen.
-n isn't the default in Harbour, nor in Clipper.
Please review me.
* utils/hbmk2/hbmk2.prg
+ Added -main=<id> option to override starting function/procedure
name. Using the method from hbmk script, but made portable
to all compilers. Can we add somewhat more official method
to set this up? Preferably .prg level, but even a function
call seems better, as with current method, MSVC complains
with this warning:
"hbsc_2nwvzg.obj : warning LNK4217: locally defined symbol \
_hb_vm_pszLinkedMain imported in function __hb_hbmk_setdef_"
+ Added code to only accept valid Harbour identified as
-main= value.
+ Added first module detection.
+ Enabled code to automatically find entry function in first
module and make it the app entry point. This is very serious
hack dealing with lots of internals.
* source/compiler/cmdcheck.c
* Typo in comment.
* contrib/hbgd/gdwrp.c
! Fixed double implementation of GDIMAGEELLIPSE().
The so far inactive .c version got enabled by recently
making lib version detection automatic, which made it
collide with the existing .prg implementation.
Left the .prg one active because it works regardless
of the lib gd version. Francesco, please verify me.
- Deleted disabled, probably older copy of GDIMAGEELLIPSE()
from .c source.
* utils/hbmk2/hbmk2.prg
* Help screen update.
* bin/hb-func.sh
! Fixed gtalleg lib name.
% Removed explicit harbour -gc0 option. This is now the default.
* utils/hbmk2/hbmk2.prg
+ Added fmstat/nofmstat support.
! Minor fix to allow more freedom in formatting inside .hbp files.
! Fixed to delete prg stub file when using -hbcc option.
+ Added Copyright section for Przemek for the ideas I've
borrowed from hbmk script and contributed code.
+ Detect platform default GT and only create stub if the
user selected GT is different.
+ Now using versions shared libs on *nixes.
+ Mode detection now regards the ending or the beginning
of the original name, so prefixed or postfixed names will
also be recognized: xhbcmp, hbcmpx, myhbcmp.
! Fixed to multiple -gt options override each other so the
last one will be effective.
! Fixed error message text when stub cannot be created.
Furthermore in this case hbmk will now quit.
+ Also using '-Wl,--start-group' for bsd (from hbmk script).
+ Added '-bind_at_load', '-multiply_defined suppress' gcc
options for darwin shared mode (from hbmk script).
* Changed stub name to hbstub (from hbmkgt).
* pthread lib handling streamlined based on hbmk script,
but this probably needs further cleaning as the script
isn't clear to me here.
+ Added fmstat/nofmstat switch. It most probably needs some
tweaking, as the conditions seem rather sophisticated here.
TODO: For non-*nix/non-gcc platforms (msvc/bcc32/owatcom
most importantly).
+ Added system libs for darwin if gtcrs or gtsln are selected.
(nslang isn't a default lib here, so it won't work on plain
installations, slang however will).
+ Missed from previous commit: Fix so that -nohbp doesn't
prevent processing the global config .hbp file.
! Fixed typo in prev commit.
* utils/hbmk2/examples/contrib.hbp
- Removed hbtip as it's not fully portable (dos).
+ utils/hbmk2/examples/contribf.hbp
+ Added complete database of contrib, with
availability information.
* contrib/xhb/Makefile
* contrib/hbmsql/Makefile
* contrib/hbmzip/Makefile
* contrib/hbziparc/Makefile
* contrib/hbnf/Makefile
* contrib/hbmisc/Makefile
* contrib/hbvpdf/Makefile
* Formatting.
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gttrm/gttrm.c
* reverted the RGB numeric color definition to be compatible
with Windows GTs which seems to use RGB values directly.
Users who use to define RGB colors in hex notation (0xRRGGBB)
should now remember that it's BGR definition (0xBBGGRR).
Why MS have to make everything in reverted way?
* bin/hb-func.sh
! Two typos.
- Disabled slang/ncurses lib stuff.
* utils/hbmk2/hbmk2.prg
! Fixed to put a space after -o gcc option for darwin.
; This makes hbmk2 work under darwin (for basic cases).
* utils/hbmk2/hbmk2.prg
* Removed -q0 default Harbour option.
* Turned off informational messages. (turn it on with -info)
* Help screen made shorter.
+ Added -help option to show the full help.
* Showing no logo for normal operation.
* bin/hb-func.sh
+ Added gpm lib to config file when mouse is enabled at build time.
* utils/hbmk2/hbmk2.prg
! Fixed not to use '$' sign in generated temp filename.
! Fixed recent typo causing RTE in *nix.
; After these changes linux/gcc works out of the box, but
it still needs tweaking (x11, other libs).
* source/common/hbver.c
! Fixed hb_verPlatform() to avoid confusion for other
parts of Harbour (and maybe even app code) parsing the
returned string and expecting some format. NOTE added
about this to source to avoid similar errors in future.
The Wine text got moved between the Windows name and
version number, and have been put into paranthesis:
Like: 'Windows XP SP3 (Wine) 5.1'. Please test.
* bin/hb-func.sh
+ Added generation of hbmkcfg.hbp.
gt override, cflags, ldflags and slang/curses libs are
currently added.
; TODO: Add this file to distro packages.
* utils/hbmk2/hbmk2.prg
! Fixed handling of -DHB_EXT_ZLIB.
! Fixed handling of -DHB_PCRE_REGEX.
+ Added support for -DHB_POSIX_REGEX.
! Removed -mconsole from *nix gccs too.
+ Added new Linux targets mingw and mingwce for future
cross compiling support.
+ Added remaining system libs for linux, sunos and hpux.
+ Added a more complete set of win system libs for mingw.
TODO: Some more generic solution needs to be developed
because currently the win systems libs add by our
tools are pretty much random across the different
supported compilers.
+ Added system lib list for mingwce.
+ Path separator translation for mingwce.
* harbour/source/vm/classes.c
* cleanup comment
* harbour/source/rtl/gttrm/gttrm.c
+ added support for HB_GTI_PALETTE - it's supported only by Linux console
and PuTTY/PTerm
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/contrib/gtwvg/gtwvg.c
! fixed indexes in
hb_gtInfo( HB_GTI_PALLETE, <nIndex> [, <nNewRGBcolor> ] )
They should be the same as in our screen buffer: 0-based not one
based.
* bin/postinst.sh
! Fix to prev HB_USR_LIBTOOL should be HB_USER_LIBTOOL to be
consistent.
* bin/hb-func.sh
* HB_USR_LIBS -> HB_USER_LIBS to be in sync with rest of Harbour.
* utils/hbmk2/hbmk2.prg
+ Added support for build level (or system level if that's
needed in the future) configuration file for hbmk. Currently
it will automatically pick the file named hbmkcfg.hbp from
the dir where hbmk is located. This file can be used to store
build settings so that they can later be used by hbmk,
automatically. IOW this is the communication medium
between the build process and hbmk. We can store here
the selected GT, extra libraries, PRG flags, C flags, linker
flags, while keeping hbmk executable free from such burnt-in
information. For this to work, the build process needs
to generate hbmkcfg.hbp with appropriate content, and this
file needs to be added to standard distribution packages.
The format is normal .hbp, described on the hbmk help screen.
* utils/hbmk2/hbmk2.prg
+ Added CCPATH + CCPREFIX support for *nix/gcc|gpp.
+ Reworked *nix alternative dir layout detection to be generic.
+ Generating '-Wl,-mwindows', '-Wl,-mconsole' options for gcc, mingw
(no -mconsole for mingw). Please review.
! Added missing gdi32 system lib for mingw when GTWVT is used.
! Added -shared support for mingw.
+ Added Przemek's code to detect entry function on gcc|gpp|mingw.
Code not used yet.
+ Added HBMK_NO_GTCGI macro to disable automatic GTCGI
selection for hbmk executable.
* harbour/include/hbgtinfo.ch
+ added HB_GTI_FONTSEL
* harbour/source/rtl/gtxwc/gtxwc.c
+ added support for HB_GTI_FONTSEL
+ added support for HB_GTI_PALETTE
+ harbour/tests/gtxfnt.prg
+ added small demonstration/test code for HB_GTI_FONTSEL
and XWindow GTs
* harbour/source/rtl/hbproces.c
* replaced execv() with execvp() in *nix builds
* harbour/source/rtl/gtwvt/gtwvt.c
* Fixed not to generate RT if class is already been registered.
Useful in cases where multiple windows are implemented.