* utils/hbmk2/hbmk2.prg
* config/global.mk
! Changed .dll names for OS/2 to be the same as in MS-DOS:
harbour/harbourm. (.dll names in OS/2 are limited to 8.3)
* config/dos/djgpp.mk
! Attempt to fix empty line problem when stripping isn't requested.
Something better would be good here.
* config/os2/gcc.mk
! Fixed empty line problem when stripping isn't requested.
* config/win/global.mk
+ Enabled UNICODE mode for all 64-bit Windows targets.
Here there is no concern about Win9x compatibility, so
it can be safely done, and I hope this move will make it
easier to catch UNICODE coding problems, as it will be now
part of some default builds.
The ultimate litmus test is on Windows is msvc64, where
C++, 64-bit and Unicode compatibility is tested at the
same time.
* config/sunos/global.mk
! Fixed to not use -s option for stripping. This doesn't seem to
be supported on sunos platform, at least according to code found
in hbmk2.
* utils/hbmk2/hbmk2.prg
+ Added support for -strip in -hbdyn mode.
+ Added -strip support for sunos/gcc targets.
! Fixed to use strip command instead of -s option with sunos/sunpro
targets.
* utils/hbmk2/hbmk2.prg
* config/bin.mk
+ Added hbmainstd lib for os/2 targets in shared mode.
Maurilio, please restest after this change.
; Needless to say I couldn't test these, so I'd appreciate if sunos
users could verify it (except -strip in -hbdyn mode).
* config/global.mk
! Fixed to recent changes to sysloc detection.
* config/linux/gcc.mk
+ Added HB_BUILD_STRIP for linux/gcc.
* config/bin.mk
! Fixed to not try to build a shared binary for binaries not
dependent on HVM. It's done in a little tricky way, maybe
we should introduce a new variable to signal Harbour
executables vs plain C ones.
This should fix link errors in harbour reported by users.
* contrib/hbqt/Makefile
* contrib/hbqt/hbqts/Makefile
* contrib/gtqtc/Makefile
* contrib/gtqtc/gtqtcs/Makefile
! Fixed QT detection on darwin after 2009-09-18 12:19 change
in detfun.mk.
* utils/hbmk2/hbmk2.prg
+ Comment added (from .mk).
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/darwin/global.mk
* config/rules.mk
+ Implemented HB_BUILD_STRIP for darwin.
(on darwin strip has to be called directly)
* harbour-win-spec
* harbour-wce-spec
* INSTALL
* bin/postinst.sh
* Makefile
* source/pp/Makefile
* source/Makefile
* config/global.mk
* HB_BUILD_PART -> HB_BUILD_PARTS (simple rename)
+ HB_BUILD_STRIP added. It's dummy yet. Support will have to
be added on the compiler level and removed from postinst phase.
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/bin/hb-func.sh
* harbour/config/global.mk
* updated to work with modified base make internals and envvars
* do not overload defined by user HB_TOOLS_PREF
! fixed c&p typo in DJGPP cross build HB_TOOLS_PREF
Warning: it still needs export HB_BUILD_SHARED=no before creating
RPMs but it should be fixed in base make together with native builds.
TODO: we should agree some conditions for alternative system wide
cross build installation, like .cfg file name and localization.
* utils/hbmk2/hbmk2.prg
* config/global.mk
+ Added beos system location detection.
+ Added system location detection based on [LD_]LIBRARY_PATH.
; Please review and even tweak code if needed. I didn't test these changes.
* utils/hbmk2/hbmk2.prg
% system location detection code disabled for non-*nix hbmk2 builds.
It's of no use there, as far as I can overview all scenrios.
* config/global.mk
* Restored default lib dir to simply lib on *nixes.
% Minor opt to system location detection.
! Fixed to only use 'harbour' lib/inc postfixes on beos
when installed on system location. Thanks Przemek for the patch.
* config/global.mk
* Changed to install libs by default to lib/<plat>/<comp> on *nixes too.
(if HB_INSTALL_PREFIX isn't a system location)
* config/dyn.mk
! Typo in prev.
* bin/postinst.sh
! Fix to strip command. Now using 'find' again and using -maxdepth 1
to prevent it from parsing subdirs.
* config/global.mk
+ Added new user settings to screen dump.
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
* config/darwin/gcc.mk
* config/linux/gcc.mk
* config/dyn.mk
+ Attempt to add link creation for dynlibs.
Not tested yet.
; TODO: darwin needs even more sopthistication.
; TODO: clean support is missing yet.
; TODO: add this to rest of targets.
* source/vm/vmmt/Makefile
! Disabled HB_HVM_ALL for linux-icc, because it causes compiler internal
error when using -fpic.
* source/vm/Makefile
* Indenting.
* mpkg_tgz.sh
* bin/postinst.sh
% Attempt to clean mpkg_tgz.sh from redundant make logic.
Some tasks (stripping, shared tool making using HB_BUILD_SHARED,
chmod on HB_INC_INSTALL) moved to postinst.sh, some others
deleted (platform detection, shared tool building using old
method, component detections, install dir forming and creation.
; Please review me and test.
; TODO: Maybe above tasks in postinst.sh should only be
executed when HB_BUILD_PKG=yes.
* config/global.mk
! Fixed to only use lib64 dir if it exists. Please review/test
this feature.
+ Now exports HB_SYSLOC variable which is set to non-empty if
HB_INSTALL_PREFIX points to system location.
* harbour.spec
- Deleted PIC option related lines. These are handled by GNU Make now.
* utils/hbmk2/hbmk2.prg
+ Added PIC related options to *nix compilers when using -hbdyn option.
% Deleted PIC related option from link command. Not needed.
* INSTALL
* config/global.mk
+ HB_BUILD_SHARED will now default to yes, if HB_INSTALL_PREFIX
points to a *nix system location. (in sync with hbmk2 logic)
* config/dos/djgpp.mk
+ Added .dll building rule, but it doesn't work, so I've commented it.
(-shared isn't accepted by DJGPP ld)
* config/bin.mk
+ Added HB_BUILD_SHARED support for os2/watcom.
* source/Makefile
* Deleted env space saving optimization for dos platform
and added support for gtdos when building dos .dlls.
% Deleted line after prev changes.
* config/global.mk
+ Added special .dll names when building dos based ones.
(harbour / harbourm)
* config/dos/watcom.mk
+ Enabled absolutely experimental dos .dll support.
; Current result:
---
wlink OP quiet SYS cwdllr NAME '..\..\..\..\..\bin\dos\watcom\harbour' OP implib='../../.
./../../lib/dos/watcom/harbour.lib' @__dyn__.tmp
Warning! W1027: file clib3r.lib(cstart): redefinition of ___begtext ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __nullarea ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __D16Infoseg ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __x386_zero_base_selector ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __exit_ ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __do_exit_with_msg__ ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of __GETDS ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of ___GETDSStart_ ignored
Warning! W1027: file clib3r.lib(cstart): redefinition of ___GETDSEnd_ ignored
Error! E2030: file clib3r.lib(cstart): multiple starting addresses found
mingw32-make.exe[2]: *** [harbour] Error 1
---
; TOFIX: hbpp object will be (or is) again a showstopper.
* config/win/watcom.mk
* Synced with dos/watcom.mk after above change.
* 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.
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
* source/Makefile
* config/global.mk
* config/bin.mk
+ Added experimental support for HB_BUILD_SHARED=yes setting,
which tells GNU Make to create shared Harbour tool executables.
; TOFIX: watcom for sure needs to be fixed.
* harbour/bin/hb-func.sh
! fixed few problems introduced by macro name modifications and removed
some wrong RT checking
* harbour/bin/hb-func.sh
* harbour/source/common/hbprintf.c
* harbour/source/rtl/fstemp.c
* harbour/config/bsd/libs.mk
* updated for NetBSD builds
* INSTALL
* HB_INC_* -> HB_WITH_*. This is now the new documented (pbly
the final name) to control external dependencies. Usage is
the same as with HB_INC_*. HB_INC_* is still accepted.
+ Synced .deb and .rpm package names with information found in
mpkg_*.sh files.
* config/detfun.mk
! Fixed to accept HB_WITH_* variables in place of HB_INC_*.
If both are specified, HB_WITH_* will be used.
* mpkg_deb.sh
% Deleted redundant-looking package detection. Packages are now
detected from GNU Make everywhere where needed.
Also deleted redundant assembly of HB_CONTRIBLIBS variable.
* mpkg_tgz.sh
% Deleted -fPIC handling. Now handled by GNU Make system.
- Deleted HB_NCURSES_FINK variable which isn't used in Harbour anywhere.
* config/global.mk
+ Setting lib INSTALL dir to lib64 for x86_64 targets.
(Please extend this with other 64-bit CPU types, if
this is how it should work on *nixes)
This rule was taken from mpkg_tgz.sh.
* doc/gmake.txt
- source/vm/mainpm.c
* config/os2/gcc.mk
* examples/hbdoc/examples/core_es/dirstruc.txt
- Deleted os2pm and mainpm references. It wasn't needed, so
(with OS/2 users) we decided to delete it.
* ChangeLog
! Typos.
* source/rtl/hbsocket.c
! Applied patch for BEOS/HAIKU by Tamas Tevesz.
* contrib/hbtip/sendmail.prg
! Fixed to append CRLF instead of hb_osNewLine() to e-mail body.
Patch submitted by Lorenzo Fiorini.
NOTE: This fix is surely valid, I'll apply further fixes as we
manage to find out more on the bigger picture.
* contrib/hbtip/mail.prg
! Applied a few patches from mail.prg sent by Gerald Drouillard:
- Using :setBody() from :New() instead of replicating (little bit
different) logic.
- "Content-Length" deleted from generated e-mail text.
- Added parameter list to METHOD declaration for :setHeader().
* Minor formatting.
* config/beos/libs.mk
+ Applied patch from Tamas Tevesz changing 'socket' lib to 'network' for BEOS/HAIKU.
* utils/hbmk2/hbmk2.prg
+ Done the same for hbmk2 (changed 'socket' lib to 'network' for BEOS/HAIKU).
* config/detfun.mk
+ Changed to avoid duplicate component detection lines in verbose output.
(_DET_OPT_VERB=very|yes - not yet documented)
(note this needs absolute paths to be used when referring to internal
components in _DET_INC_DEFP/_DET_INC_LOCL)
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbhpdf/Makefile
+ Changed to use absolute paths when referring to locally hosted components
in _DET_INC_LOCL variables.
* harbour/config/detect.mk
! fixed typo in include directory used for slang.h detection
- removed redundant HB_LOCAL_SLN variable - now this functionality
can be reached using HB_INC_SLANG
* source/rtl/gtcrs/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/gtsln/Makefile
* config/global.mk
% Deleted dedicated (redundant) make level settings:
- HB_GPM_NOICE_DISABLE=yes
It should be replaced with HB_USER_CFLAGS=-DHB_GPM_NOICE_DISABLE
Notice this setting was only effective in gtsln (yet it was passed to two other GTs).
- HB_GT_CRS_BCEHACK=yes
It should be replaced with HB_USER_CFLAGS=-DHB_GT_CRS_BCEHACK
- HB_NCURSES_194=yes
It should be replaced with HB_USER_CFLAGS=-DHB_NCURSES_194
; TODO: Change logic in bin/hb-func.sh to lookup user flags for -DHB_NCURSES_194,
instead of processing dedicated HB_NCURSES_194 variable. I'm unsure
which variable to check here for user flags.
* bin/hb-func.sh
* config/beos/libs.mk
* config/global.mk
* config/bsd/libs.mk
* config/darwin/libs.mk
* config/hpux/libs.mk
* config/dos/djgpp.mk
* config/linux/libs.mk
* config/sunos/libs.mk
* Renamed two variables to be in sync with latest changes:
HB_CRS_LIB -> HB_LIBNAME_CURSES
HB_SLN_LIB -> HB_LIBNAME_SLANG
(this one is not honored by GNU Make system)
; TOFIX: Honor HB_LIBNAME_SLANG in GNU Make system? Is that
needed in some cases?
* config/dos/djgpp.mk
+ Synced system lib/libpath logic with libs.mk found on
other platforms.
* config/global.mk
! Fixed clang autodetection on darwin.
! Fixed systematic (copy/paste) typos in most 'find_in_path_par' calls.
(in gentoo mingw and msdosdjgpp autodetection)
* source/Makefile
* config/lib.mk
+ Added Przemek's patch to add local hbzlib and hbpcre
libs to Harbour dynlib.
; TODO: Add some ways to disable this because it has some
drawbacks (it f.e. makes it impossible to link 3rd
party libs also exporting zlib / pcre interfaces).
This information needs to be passed to hbmk2, too.
I don't have any elegant way to solve this problem ATM.
* utils/hbmk2/hbmk2.prg
* Changed to only add local hbzlib and hbpcre libs to liblist
in static mode. (this is needed to support change above).
+ Enabled lib grouping for beos/gcc.
+ Added supc++/supcxx lib to liblist of gcc family compilers.
This aims to solve link problems when Harbour is built
in C++, but hbmk2 is used in C mode.
* contrib/hbqt/hbqts.hbc
* contrib/hbqt/hbqt.hbc
* contrib/gtqtc/gtqtcs.hbc
* contrib/gtqtc/gtqtc.hbc
- Deleted explicit supc++ libspec. Now it's added by
hbmk2 automatically.
* config/dyn.mk
! Modified to add local hbpcre and hbzlib to syslib
list to make it link with beos/haiku.
Please test/confirm this change.
- Disabled above logic, since it's not needed.
* config/global.mk
+ Added autodetection for linux/sunpro, linux/icc,
darwin/clang, darwin/gcc, darwin/icc.
On darwin clang became the default, if available.
* external/sqlite3/Makefile
+ Tweak for linux/watcom. Based on Przemek patch sent to the devlist.
* config/detfun.mk
* config/bin.mk
* config/dyn.mk
* source/Makefile
* config/lib.mk
% Minor modification to HB_HAS_*_LOCAL logic to make
it safe to use this var without first checking HB_HAS_*.
; Please test/review these. I didn't restest everything after above changes.
* harbour/include/hbvmpub.h
* harbour/include/hbdefs.h
* added #if/#endif comments and minor formatting
* harbour/include/hbsetup.h
! disable malloc attribute for GCC < 3.xx
* harbour/include/hbinit.h
! removed unnecessary __HAIKU__ condition
* harbour/include/hbdate.h
! enable MT safe localtime_r() function in HAIKU/BEOS builds
* harbour/source/common/hbgete.c
! enable setenv()/unsetenv() in HAIKU/BEOS builds
* harbour/source/common/hbprintf.c
! removed wrongly added condition which disabled [u]intmax_t for GCC < 3
* harbour/source/rtl/gtcrs/gtcrs.h
! do not redefine existing MAX_SIGNO
* harbour/source/rtl/hbsocket.c
! enabled MT safe socket functions in HAIKU/BEOS builds
* harbour/config/beos/libs.mk
! do not set explicitly GCC internal library paths.
They are configured in GCC config and should not be overloaded
in normal builds.
TOFIX: error code are not properly decoded in HAIKU/BEOS builds.
It can be seen in hbtest results. It's possible that it's
HAIKU/BEOS problem not Harbour one.
* 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.
* 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-
* 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).
* 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.