* config/vxworks/gcc.mk
* config/vxworks/diab.mk
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/linux/gcc.mk
* Cleaned to use new central variables for harbour dynlib links.
; TODO: Do the same with rest of *nix targets when adding soname
and '2.1' style symlinks, when current system proves okay
with darwin and linux/gcc targets.
* config/linux/gcc.mk
* Using central macros for dynlib versions.
* config/dyn.mk
+ Added macros to help creation of .major.minor versioned dynlib links.
* config/postinst.hbs
* config/global.mk
* config/bin.mk
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/linux/gcc.mk
* config/dyn.mk
* config/os2/gcc.mk
* Trying to cleanup the harbour dynlib name situation.
Here's the plan (which is similar to what's used in contrib area):
win, wce: harbour-21[-subtype][.dll/.lib]
dos, os2: harbour[.dll|.???]
darwin:
libharbour.2.1.0.dylib
libharbour.2.1.dylib -> (symlink) [compatibility level]
libharbour.dylib -> (symlink)
*nix:
# libharbour.s?.2.1.0
# libharbour.s?.2.1 -> (symlink) [soname]
# libharbour.s? -> (symlink)
; It's possible it's broken now. Pls test linux/gcc and darwin.
'install' was not tested.
; TODO: Clean variable usage, there is some redundancy, plus
some places where current solution is not generic, f.e.
using HB_VER_*, HB_DYNLIB_BASE vs. HB_DYNLIB_NAME, etc.
* harbour/src/rtl/fscopy.c
* Reverted 2011-02-22 12:27 UTC+0200 Mindaugas Kavaliauskas
which made behavior inconsistent with rest of similar
functions like FERASE(), FRENAME(), which also don't throw
RTE if bad parameter is passed, but return FERROR()
and failure instead.
Also restored _SET_DEFAULT handling to not create a special case
compared to __COPYFILE() behavior, ia. some features like
FXO_SHARELOCK are still enabled while FXO_DEFAULT is not).
Pls rewrite it using hb_fsOpen()/hb_fsCreate() if that behavior
bothers you.
* contrib/hbpost.hbm
* config/linux/gcc.mk
+ Setting -soname on linux systems. Experimental, I don't know a bit about
what this value should be or how it's supposed to work, so pls test.
Once settled one something, it should be extended to all *nix platforms
and all linux compilers.
* 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.
* harbour/include/hbcomp.h
* do not inherit in macrocompiler -z compile time switch when -kc is
also used
* harbour/src/common/expropt2.c
* disable logical expression optimization (reduction) in macrocompiler
when -kc compile time switch is used.
* harbour/config/beos/gcc.mk
* harbour/config/qnx/gcc.mk
* harbour/config/bsd/gcc.mk
* harbour/config/wce/mingwarm.mk
* harbour/config/vxworks/gcc.mk
* harbour/config/hpux/gcc.mk
* harbour/config/darwin/gcc.mk
* harbour/config/dos/djgpp.mk
* harbour/config/win/mingw.mk
* harbour/config/linux/gcc.mk
* harbour/config/cygwin/gcc.mk
* harbour/config/symbian/gcc.mk
* harbour/config/os2/gcc.mk
* harbour/config/sunos/gcc.mk
* harbour/utils/hbmk2/hbmk2.prg
* enable some important warnings in GCC builds using -W<name>... instead
of -Wall and -Wno-<name>... for warning level set to low.
It should help in backward compatibility with some older GCC versions.
* harbour/config/beos/gcc.mk
* harbour/config/qnx/gcc.mk
* harbour/config/bsd/gcc.mk
* harbour/config/wce/mingwarm.mk
* harbour/config/vxworks/gcc.mk
* harbour/config/hpux/gcc.mk
* harbour/config/darwin/gcc.mk
* harbour/config/dos/djgpp.mk
* harbour/config/win/mingw.mk
* harbour/config/linux/gcc.mk
* harbour/config/cygwin/gcc.mk
* harbour/config/symbian/gcc.mk
* harbour/config/os2/gcc.mk
* harbour/config/sunos/gcc.mk
* use -Wall -Wno-unused -Wno-pointer-sign -Wno-uninitialized
-Wno-switch -Wno-strict-overflow -Wno-main
instead of -W when warnings are not enabled with GCC based compilers.
Using only -W only is rather useless because this switch enables
warnings which can be usually ignored in 3-rd party code.
This modification should help in locating bugs introduced by us
to 3-rd party code, i.e. due to wrong header files used on some
platforms (we do not use autoconf assuming some default settings
what can be wrong in some cases). It should also not hide some
important/critical bugs in 3-rd party code.
This modification pacifies some common warnings which can be
ignored usually but it also enables some more important ones.
If it's necessary then we can tune it a little bit more and disable
some other warnings too.
It's possible that on some platforms using very old GCC versions
some of -W* switches are not supported - please make tests and
inform us about problems.
* harbour/utils/hbmk2/hbmk2.prg
* use -Wall -Wno-unused -Wno-pointer-sign -Wno-uninitialized
-Wno-switch -Wno-strict-overflow -Wno-main
instead of -W when warning level is set to low with GCC based
compilers
* config/global.mk
% Minor optimization for Windows platform
! At the same time fix for CreateProcess( 'uname' ) error on Win9x.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
! Fix to previous: In multi-command cmdlines, f.e.: '(cmd1 && cmd2)'
$(RM) command _must_ be used as a workaround so that GNU Make
converts it to a batch file. Unfortunately with this, an 'ar'
failure will be masked by a successful $(RM), so the make won't
stop.
* config/globsh.mk
+ Added new command macro $(FALSE) preparing for general solution
to force failure.
* config/beos/gcc.mk
* config/qnx/gcc.mk
* config/bsd/gcc.mk
* config/bsd/clang.mk
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/hpux/gcc.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/clang.mk
* config/linux/sunpro.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
* config/instsh.mk
* 'false' -> '$(FALSE)' for shell independence.
* contrib/hbssl/evpmd.c
! Disabled md2 support for >= 1.0.0 OpenSSL versions.
Seems they dropped it.
* contrib/hbssl/ssl.c
* contrib/hbssl/x509.c
* contrib/hbssl/sslctx.c
! Disabled some code parts which didn't compile with
>= 1.0.0 OpenSSL versions. This is not the right fix,
but I just can't figure what went wrong (or what
has been changed) in OpenSSL which cases it. There
is something wrong around 'X509_NAME' symbol.
* utils/hbmk2/hbmk2.prg
* config/beos/gcc.mk
* config/bsd/gcc.mk
* config/wce/mingwarm.mk
* config/darwin/gcc.mk
* config/hpux/gcc.mk
* config/win/mingw.mk
* config/win/cygwin.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
- Deleted '-pipe' option. Efficient, but buggy. It didn't take
too long to bump into the problem: On build error, the
.o file is generated with some dummy content, so a second
build attempt will silently make build errors ignored.
* contrib/rddsql/sddfb/sddfb.c
* Minor formatting.
* harbour/include/hbsetup.h
* harbour/include/hbdefs.h
* harbour/include/hbthread.h
* harbour/src/common/hbver.c
* harbour/bin/hb-func.sh
* harbour/bin/postinst.sh
* harbour/config/linux/gcc.mk
+ harbour/config/linux/open64.mk
+ added support for Open64 C/C++ compiler in Linux builds
* harbour/src/common/hbver.c
* removed unnecessary casting compiler version number parameters
to 'short'
* extended the size of szBuf buffer as requested by Tamas
* config/beos/gcc.mk
* config/bsd/gcc.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/hpux/gcc.mk
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/dos/watcom.mk
* config/dos/djgpp.mk
* config/common/watcom.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/icc.mk
* config/win/cygwin.mk
* config/win/msvc.mk
* config/linux/watcom.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/clang.mk
* config/linux/sunpro.mk
* config/os2/watcom.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
* Initializing LDFLAGS, DFLAGS and ARFLAGS at the beginning of files.
This allows to easily add to these var according to build settings.
It also syncs all .mk files to use the same layout in this regard.
* config/wce/msvcarm.mk
* config/win/msvc.mk
+ Added -debug linker option to .dll linking for msvc/msvcarm targets.
* utils/hbmk2/hbmk2.prg
! Fixed to use '-ofilename' to spec C compiler object
output, instead '-o filename'. Following linux/clang.mk.
(There is utter chaos with this -o option)
* config/darwin/clang.mk
+ Documented fact that '-ofilename' also works (just
like in linux/clang).
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/clang.mk
* config/linux/sunpro.mk
* config/linux/global.mk
% Moved strip configuration to global.mk.
* harbour/config/darwin/gcc.mk
* harbour/config/darwin/icc.mk
* harbour/config/darwin/clang.mk
* harbour/config/linux/gcc.mk
! fixed soft links to harbour shared library - they should not contain
any paths
* 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.
* 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.
* 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 use 'rc' AR cmd on sunos. (instead of 'rcs')
+ Added -hbdyn support for gcc family of compilers. (very light testing with mingw)
+ Added sunpro compiler support. (not tested, bazaar style)
! Basic CPU detection fixed for clang.
+ Added TOFIX for CPU detection for *nix based gcc, icc, clang, sunpro
compilers.
* config/wce/mingwarm.mk
* config/hpux/gcc.mk
* config/win/mingw.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/sunpro.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
* Minor: AR cmd chars reordered to be in sync with hbmk2.
* config/linux/libs.mk
! Deleted some stuff left when doing the copy from
global.mk (yesterday).
Should fix double -fPIC switches seen on 64-bit Linux builds.
* config/linux/libs.mk
+ Adding /usr/X11R6/lib64 to sys lib path list on 64-bit systems.
If you find this wrong, please tell, we can tweak conditions.
* config/bsd/gcc.mk
* config/darwin/gcc.mk
* config/hpux/gcc.mk
* config/linux/gcc.mk
* config/sunos/gcc.mk
* Changed to just plain pass list of obj on cmdline in dynamic
lib creation rule. Should be safe on these OSes according to this doc:
http://www.in-ulm.de/~mascheck/various/argmax/
(we need about 31-32KB of cmdline at this moment)
* config/bsd/gcc.mk
* config/hpux/gcc.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/sunos/gcc.mk
* Changed to use different method to pass object file list to gcc.
Previous method (@<filename>) only works in 4.x (?) gcc versions.
* INSTALL
+ Documented HB_CCPATH, HB_CCPREFIX, HB_CCPOSTFIX config variables.
* source/Makefile
* config/lib.mk
+ Added gtxwc to Harbour dynamic libs on *nixes.
* config/global.mk
! Always set HB_INC_INSTALL on sh shells to make postinst.sh
happy.
* config/linux/global.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/sunpro.mk
% Moved 'system' library name and path list forming logic to
platform global.mk.
; TODO: Also for other platforms.
* source/Makefile
! Fixed to use '-' separator between dynlib name and version
on *nixes too, except on darwin, where it's a '.'.
* config/bsd/gcc.mk
* config/hpux/gcc.mk
* config/darwin/gcc.mk
* config/linux/gcc.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
+ Added HB_CCACHE, HB_CCPREFIX, HB_CCPOSTFIX to all places where
it was missing from.
bsd/hpux/os2/sunos - pre/post to cc/ld, pre to ar
darwin - ccache to ld (I'm not sure about this one)
linux - post to cc/ld
; Not it's about consistent and in sync with hbmk2.
Please review me.
* utils/hbmk2/hbmk2.prg
+ Added support for HB_CCPREFIX/HB_CCPOSTFIX for os2/gcc targets.
* config/linux/gcc.mk
+ Added experimental dynamic lib creation.
; Please review this. If okay we can probably move this logic
to all other *nix platforms and compilers.
Maybe even os2/gcc.
* harbour/config/bsd/gcc.mk
* harbour/config/darwin/gcc.mk
* harbour/config/hpux/gcc.mk
* harbour/config/dos/djgpp.mk
* harbour/config/win/mingw.mk
* harbour/config/linux/gcc.mk
* harbour/config/linux/icc.mk
* harbour/config/linux/sunpro.mk
* harbour/config/os2/gcc.mk
* harbour/config/sunos/gcc.mk
* harbour/config/sunos/sunpro.mk
! replaced wrongly used 'findstring' functions with 'filter' functions.
Now findstring is used only in places where we are looking for
substrings not whole words.
* harbour/source/rdd/wacore.c
! fixed typo in comment (by Phil Krylov borrowed from xHarbour)
* harbour/ChangeLog
! fixed my typo in Latin translation of Phil Krylov family
name - sorry Phil.