* utils/hbmk2/hbmk2.prg
+ hbmainstd/hbmainwin lib is now added for mingw family
to lib list also for static executables. It fixes the GPF
at startup with Equation Solution mingw64 build. I hope
it doesn't create any harm for other builds, it remains
to be tested.
% Disabled -fomit-frame-pointer for mingw64.
* utils/hbformat/Makefile
* utils/hbmk2/Makefile
* utils/hbi18n/Makefile
* utils/hbtest/Makefile
* utils/hbrun/Makefile
* config/win/mingw.mk
% "HB_MAIN" logic eliminated from local make files and moved
to mingw.mk only.
* 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.
* config/bin.cf
+ Harbour binary core liblists are now formed centrally.
Four variations are generated:
HB_LIBS_ST_RDD
HB_LIBS_MT_RDD
HB_LIBS_ST_NORDD
HB_LIBS_MT_NORDD
Binaries can choose by using: 'LIBS = $(HB_LIBS_*)'.
Important to use '='.
This step also fixes potential problems with former liblists,
where it was easy to make a local mistakes and some libs which
needed more complicated logic, or which were just rarely used
simply weren't added. Now all liblists are guaranteed to have
proper order and content.
HB_GT_LIBS and HB_DB_DRIVERS are automatically added centrally,
so no need to add them manually in each compiler specific .cf.
* tests/Makefile
* tests/hbpptest/Makefile
* tests/multifnc/Makefile
* utils/hbformat/Makefile
* utils/hbmk2/Makefile
* utils/hbtest/Makefile
* utils/hbi18n/Makefile
* utils/hbrun/Makefile
% Using above HB_LIBS_* macros.
; The only few places which I didn't thouch is non-Harbour
executables (harbour exe and hbpp exe).
* config/bsd/gcc.cf
* config/wce/msvcarm.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
* config/hpux/gcc.cf
* config/darwin/gcc.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/cygwin.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/mingw.cf
* config/win/pocc.cf
* config/win/bcc.cf
* config/linux/watcom.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/sunos/sunpro.cf
% Deleted local logic to merge HB_GT_LIBS and HB_DB_DRIVERS
into LIBS.
* utils/hbmk2/hbmk2.hbp
* utils/hbrun/hbrun.hbp
! Extra libspecs are still needed for some compilers.
I've readded them until better solution is found.
* make_gnu.sh
* config/global.cf
+ Readded HB_GPM_MOUSE detection to starter script.
; TOFIX: This logic should be moved to GNU Make global.cf.
+ Readded HB_COMMERCE logic but now to global.cf, to
deal with Harbour-wide settings, currently this is only
HB_GPM_MOUSE. lib-specific HB_COMMERCE issues should be
handled in local Makefiles.
* config/global.cf
* Minor formatting.
* TODO added (host CPU detection on non-win platforms).
* config/hpux/gcc.cf
* config/darwin/gcc.cf
* config/global.cf
* config/sunos/gcc.cf
* config/bsd/gcc.cf
- GPM isn't available on these platforms so it's not necessary
to handle it in these make files.
* utils/hbmk2/Makefile
* utils/hbrun/Makefile
! Changed ordering of hbcpl/hbpp/hbcommon libs to this:
hbcplr, hbpp, hbcommon
(from this: hbpp, hbcplr, hbcommon
and this: hbcommon, hbpp, hbcplr)
This syncs it with existing .hbp lib order and hopefully
fixes link problems on sunos/sparc, reported by a user.
Please retest & report results.
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hbm
* utils/hbmk2/Makefile
+ Added experimental support for multithreaded compilation.
Enable with -jobs=<x>.
Currently Harbour compilation phase supports MT.
If it works out well and details are polished, the same
can be implemented for C/resource compilation phases, too.
I'd appreciate of someone with MT experiences could review
current code and spot bugs/problems with it before I go
any further.
* Changed to build hbmk2 in MT mode.
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/Makefile
* common.mak
+ Added -DHBMK_INTEGRATED_COMPILER compile time option
to enable integrated Harbour compiler. Experimental,
please test. This results is bigger executable (obviously)
but may be more efficient on some platforms.
% Using .exe extension for external commands on non-*nix.
* Using slightly different format to echo commands on
screen, they are now printed in a new line and they are
not put between quotes.
* 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.
* common.mak
* changed HBM_KDIR from "utils\hbmk" to "utils\hbmk2"
- utils/hbmk
+ utils/hbmk2
* renamed dir name to fix wrong dir change on gnu scripts: mpkg_tgz.sh
and the harbour.spec
! Fixed dir name error that avoided to build rpms and tgz files.