* INSTALL
* minor clarifications to INSTALL/TROUBLESHOOTING
* config/os2/watcom.mk
* config/wce/mingwarm.mk
* config/wce/msvcarm.mk
* config/wce/poccarm.mk
* config/win/bcc.mk
* config/win/mingw.mk
* config/win/msvc.mk
* config/win/pocc.mk
* config/win/watcom.mk
* config/win/xcc.mk
+ added std header paths to RC commands
* utils/hbmk2/Makefile
+ utils/hbmk2/hbmk2.rc
* utils/hbmk2/hbmk2.hbp
+ added std windows versioninfo and manifest to hbmk2
* utils/hbmk2/hbmk2.prg
+ utils/hbmk2/p_extdyn.hb
+ added almost complete hbrun functionality into hbmk2
to run it, type: 'hbmk2 .'
Missing is extension registration, plugins don't seem
to work yet, and I plan to switch from full screen
prompt to shell-like prompt. Plugin paths, extension
configuration, history on-disk files need further
polishing.
+ hbmk2 will act as a hbrun, if renamed to hbrun
* contrib/hbqt/qtcore/hbqt_misc.prg
+ added two TOFIXes for missing PROTECTED keyword
for two object variables of unknown purpose. Not
even HBQT developers know what it is, but without
it, HBQT breaks.
; Those who need "stable" hbqt (meaning "it builds")
Go to:
http://sourceforge.net/p/hbqt/
* config/win/mingw.mk
* removed undocumented way (committed in prev rev) to disable
separate compile pass for mingw Harbour-*.dll. if you're bothered,
use existing and documented: HB_BUILD_DYN=no
; NOTE: separate compile pass has another important benefit:
it will finally remove the implicit .dll exports, IOW now
only explicitly exported symbols will be public, in sync
harbour-*.dlls created with all the other C compilers.
* config/win/mingw.mk
+ solved mingw harbour dll and unicows problem, so now
-shared Harbour executables built using mingw will be able
to run on Win9x, "out of the box".
(has a downside that now separate compile pass is needed
to build objects with -DHB_DYNLIB (like with all the other
C compilers), but I left it enabled anyways to give uniform
support for unicows by default, including the nightly and
official builds. Look into the diff for an undocumented
way to disable this)
* config/win/watcom.mk
* config/win/xcc.mk
* config/win/icc.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/msvc.mk
* restored to link 3rd libs (currently unicows, if available)
to harbour-*.dll with above compilers. These are currently
noops (except for bcc, where it just doesn't work),
they are fundemantally correct, but may require further
C compiler specific mods.
; TODO: problem with bcc harbour-*.dll remains. unicows is present,
specified, but ignored when linking, even though it's not ignored
when contrib dlls are built using similar method. I leave
resolving this problem to bcc users.
* config/win/watcom.mk
* config/win/xcc.mk
* config/win/icc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/msvc.mk
! do not link unicows to harbour dll. it seems a noop
for some compilers, and breaks some others (mingw).
* utils/hbmk2/hbmk2.prg
+ will now add lib/3rd dir to the link commands, so
unicows lib will be found in uninstalled Harbour SVN
source tree.
* contrib/make.hbs
* contrib/hbpost.hbm
+ automatically enable unicows support for contribs, if available.
- deleted support for undocumented __HB_BUILD_WINUNI envvar
* config/global.mk
* config/rules.mk
- deleted support for undocumented __HB_BUILD_WINUNI envvar
* package/winuni/mpkg_win_uni.bat
* package/mpkg_win_nightly.bat
- deleted special support for unicows libs for nightly
and official releases, along with HB_DIR_UNICOWS envvar.
Now these libs are included in all builds.
* config/win/global.mk
+ automatically enable unicows support for core, if available.
* config/win/xcc.mk
* config/win/icc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/msvc.mk
+ added support for SYSLIBPATHS. (used by unicows support)
! fixed bcc dynlib link command missing libpaths.
; NOTE: watcom unicows support is missing, as it needs
special tricks due to missing separate libpath option
in this compiler/linker.
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* synced with config/win files
+ config/libbin.mk
+ added rule to install pre-built binary libs.
(for unicows libs)
* Makefile
+ lib/3rd
+ lib/3rd/win
+ lib/3rd/win/mingw
+ lib/3rd/win/mingw/Makefile
+ lib/3rd/win/mingw/libunicows.a
+ lib/3rd/win/mingw/libunicows_license.txt
+ lib/3rd/win/bcc
+ lib/3rd/win/bcc/unicows_license.txt
+ lib/3rd/win/bcc/unicows.lib
+ lib/3rd/win/bcc/Makefile
+ added locally hosted unicows runtime/implibs from:
http://libunicows.sourceforge.net/ by author Vaclav Slavik.
With these libs, it's possible to use UNICODE builds
with both MS unicows.dll and opencows .dll on legacy
Windows-system (Win9x).
These libs will be installed to Harbour core lib directory,
and also used from lib/3rd directory, if they are available.
I've uploaed mingw and bcc libs because these are used
nearly exclusively by users, but they are also available
for older msvc, watcom, dmc and lcc compilers. I don't
think it's worth the extra size to support Win9x using
these legacy compilers, anyhow they can be added easily
if needed (except watcom, which requires more work).
; These changes mean three things:
1. Harbour now has only one build mode on Windows: UNICODE
This will greatly simplify coding and testing and will
allow to focus much better on what's important. It also
allows to drop lots of dual code dealing with separate
UNICODE and non-UNICODE branches.
2. Harbour default builds will now run on Win9x (currently
when using mingw or bcc compilers), though UNICOWS.DLL
is now required. See INSTALL how to get this free .dll
from MS. This also means that Harbour can now theoretically
by built on Win9x systems (I didn't try).
3. Harbour users can create UNICODE builds compatible with
Win9x, by simply adding -lunicows to their .hbp projects.
No extra installation is required.
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/tests/xbpqtc.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbqt/gtqtc/gtqtc.cpp
* contrib/hbqt/qtcore/hbqt_pointer.cpp
* contrib/hbqt/qtcore/qth/HBQSlots.qth
* contrib/hbqt/qtcore/qth/HBQEvents.qth
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* contrib/hbqt/tests/demoqt.prg
* contrib/hbide/hbqreportsmanager.prg
* contrib/hbide/idemain.prg
* contrib/hbide/ideeditor.prg
! HB_TR_ALWAYS -> HB_TR_DEBUG.
Neverending battle with abused debugging facilities continue.
Please _never_ use HB_TR_ALWAYS in committed code, not even
in commented lines because it's confusing, it trashes console
on *nix systems, it creates a rubbish/unfinished feel for
anyone trying out these components and it creates unnecessary
noise on lists in the form of problem reports.
For those few developers who actually need these lines:
_Set HB_TR_LEVEL on your development machine_ to HB_TR_DEBUG
to get those debug lines!!
Also: Never use HB_TR_ALWAYS as a mean of generating
test output meant for users, I've found some of these in
tests/ .prgs. Use something native instead, like
a text box, msgbox, log file, OutStd(), QOut(), etc.
If this won't change in the future, the best will be to
simply remove HB_TR_ALWAYS from hbtrace.ch, thus making
it unsuited for purposes it wasn't designed for.
Thank you.
* config/win/mingw.mk
+ Added commented -Wextra warning option which will be particularly
interesting with the release of gcc 4.6, since they've finally
implemented the last useful feature which was unique to BCC:
-Wunused-but-set-variable and -Wunused-but-set-parameter
See:
http://gcc.gnu.org/gcc-4.6/changes.html
* 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/globsh.mk
+ 'FALSE' variable set for 'nt' shells.
* 'FALSE' variable set to a dummy value ($(TRUE)) for 'dos' and 'os2' shells.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
! Fixed to fail after deleting the library on 'ar' failure.
* 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.
* config/wce/mingwarm.mk
* config/wce/msvcarm.mk
* config/win/mingw.mk
* config/win/icc.mk
* config/win/cygwin.mk
* config/win/msvc.mk
! Removed delete command which was called when $(AR) command failed.
(usually: '|| $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)')
This fixes three issues:
- It won't force GNU Make into using cmd shell (in fact temporary batch file)
to execute these commands, thus it won't hit cmd shell length limitations
on NT and W2K systems (maybe Win9x also? TOCHECK).
- Build process will properly stop in case $(AR) (lib assembly) command
fails, instead of deleting the wrong lib and continuing with the build.
Best would be to delete it and fail, but I found no clean way to do this.
- This incorrect variation is no longer used: '|| $(RM) $(LIB_DIR)/$@'
(pathsep conversion is missing)
NOTE: If someone can recommend a way to fail the build after deleting
the partial lib, all above logic can be reintroduced, but in this
case the lib creation cmds need to be rewritten like mingw to
avoid long cmdline lengths.
IOW I'm looking for a win shell equivalent of this sequence:
AR_RULE = $(AR) ... || ( $(RM) ... && **false** )
where **false** is something which creates no output and returns
non-zero errorlevel.
* ChangeLog
+ More explanation to prev log entry.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
+ Added support for host systems with shorter cmdline limits
(in lib creation command). F.e. on WinW2K or WinNT.
* config/win/cygwin.mk
! Fixed delete command on 'ar' failure to work on native
Windows shell.
* config/win/mingw.mk
+ Added (commented) support for -m32/-m64 options.
This may be useful in the future f.e. for mingw tdm 4.5.0
compiler which can build both 64 and 32-bit targets using
the same compiler binaries.
* config/global.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/cygwin.mk
* config/win/msvc.mk
* config/os2/watcom.mk
+ Changed to init RCFLAGS from global.mk.
* config/global.mk
+ Added support for theoretical QNX cross-builds.
* ChangeLog
* Updated QNX TODO list.
* INSTALL
+ Added Ubuntu 10.4 as tested version.
* include/common.ch
+ Added HB_HMERGE_* constant for HB_HMERGE() function.
* package/winuni/mpkg_win_uni_extra_copy.bat
* Commented line not necessary for official mingw build.
* contrib/hbsqlit3/tests/hooks.prg
* contrib/hbsqlit3/tests/authoriz.prg
* contrib/hbsqlit3/tests/backup.prg
+ Added missing '()'s from :__enum* accesses.
* config/win/mingw.mk
! Fixed after last minute change breaking it when HB_COMPILER_VER
is not set.
* examples/httpsrv/uhttpd.prg
% Replaced 'var:__enumValue()' with 'var' in FOR EACH loops.
* INSTALL
- Deleted 'rarely updated' from official mingw comment.
- Deleted equation mingw edition.
* QT 4.5.x is not recommended over 4.6.x anymore.
+ Added link for QT 4.6.x.
+ Added more details to mingw version with DWARF support.
(required for QT 4.6.x)
* config/win/mingw.mk
+ Added more comment on newly added linker options.
! Fixed to only enable newly added linker options for
4.5.x and above. (tdm 4.4.x doesn't support them)
* package/winuni/RELNOTES
* Updated according to local tool changes.
(mingw 4.5.0 was released by official mingw project)
* config/win/mingw.mk
+ Enabled nxcompat and dynamicbase for mingw/mingw64
4.4 and upper. Note, the version isn't autodetected,
so it should be passed manually using HB_COMPILER_VER,
f.e.: HB_COMPILER_VER=45.
* config/global.mk
+ mingw64 will now default HB_COMPILER_VER to '44'.
* config/win/msvc.mk
* Added comment.
* config/win/mingw.mk
+ Enabled --nxcompat and --dynamicbase options for mingw64
targets.
* utils/hbmk2/hbmk2.prg
* Changed -mkimplib usage as follow:
-mkimplib=some.dll [implib_name_or_dir]
It's incompatible with previous one, but allows for simpler,
short calls.
! Fix to path normalizer to also append a pathsep to "." when
the resulting directory is an empty one.
* Minor internal change (cCCEXT moved to hbmk structure)
* config/postinst.prg
% Changed to use new -mkimplib parameter format.
(untested)
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
* config/os2/gcc.mk
! Fixed resource compiler binary name to honor CCPREFIX and friends.
* utils/hbrun/Makefile
+ utils/hbrun/hbrun.rc
+ Added resource file to include icon.
; TOFIX: The .ico file path is hard-wired and will break if HB_BUILD_NAME
contains subdirs.
* bin/postinst.bat
- Deleted no more necessary hack to build hbrun with icon using hbmk2.
* INSTALL
* config/rules.mk
+ config/res.mk
* config/bin.mk
* config/wce/global.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.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/cygwin.mk
* config/win/global.mk
* config/win/msvc.mk
* config/os2/watcom.mk
* config/os2/gcc.mk
* config/os2/global.mk
+ Added support to GNU Make system to compile and link resources
on win, wce and os2 platforms.
* bin/postinst.bat
+ Deleted requirements from local comment. These are
documented in INSTALL.
* 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.
* 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.
* config/win/cygwin.mk
* config/win/mingw.mk
* config/wce/mingwarm.mk
% Added -pipe option to win/gcc compilers, this way it's faster
(but consume more memory) since it passes intermediate files
- I could only spot the .s file - without writing them to disk.
Probably we should enable this on other platforms as well,
and if it works out well, also in hbmk2.
* contrib/hbwin/hbwin.ch
+ Added HB_WIN_DLL_CALLCONV_* macros. (so far only privately defined inside .c code)
+ Added HB_WIN_DLL_CTYPE_* macros. (so far only privately defined inside .c code)
+ Reworked HB_WIN_DLL_CTYPE_* macro values. INCOMPATIBLE. Since they weren't
previously documented, this should not be a breakage, pls report it if this is
a problem.
! Fixed .ch syntax to also work in .c files.
* contrib/hbwin/hbwin.h
* contrib/hbwin/legacycd.c
* contrib/hbwin/win_dll.c
* contrib/hbwin/tests/testdll.prg
* Using hbwin.ch for callconv and C type constants.
+ Added public low-level interface: hbwin_dllCall().
This has provision for exact parameter type specification.
* Changed Harbour level functions to use new public
interface hbwin_dllCall().
+ Moved CALLDLL(), CALLDLLBOOL(), CALLDLLTYPED() to legacy source.
* HB_DLLEXEC structure made private to XPP compatibility
section.
+ Added new WIN_DLLCALL() API. This can replace all old CALL*()
function and give more flexibility. Its first parameter is an
optional array, which can specify calling convention (it was
fixed in old implementation), return type and UNICODE swicth,
plus it has provision to specify parameter types, too.
+ Changed test app to use new WIN_DLLCALL() API.
* hb_getprocaddress() made public (but not exported) and
renamed to hbwin_getprocaddress().
* config/wce/mingwarm.mk
* config/win/mingw.mk
- Deleted hack to always add frame buffer for hbwin.
It's not necessary anymore.
* src/vm/runner.c
* BYTE -> char
* contrib/hbct/ctstrfil.c
* LONG -> HB_ISIZ
* contrib/hbmzip/hbmzip.c
* Changed to use FS API instead of C RTL.
* Using std Harbour method to include windows.h.
* package/winuni/RELNOTES
+ Added note about downgrade to mingw64 4.4.0, which is
a more stable release than 4.5.0, and where .dlls also
work properly.
* config/wce/mingwarm.mk
* config/win/mingw.mk
! Fixed to not use -fomit-frame-pointer option for debug builds.
! Hack added to disable -fomit-frame-pointer for hbwin lib.
; TOFIX: Fix hb_Dynacall() to not be sensitive on this option
in mingw builds. Is it possible?
* INSTALL
+ Added free SVN book link.
* src/vm/extrap.c
% Marked exception filter callback as 'static'
; TOCHECK: Please verify that OS/2 still works this way.
* src/rtl/oemansi.c
! Fixed two tabs.
* src/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
* contrib/rddads/adsfunc.c
! Fixed to not use unsafe/ANSI CharToOemBuffA() API.
; Please review me.
* config/win/mingw.mk
+ Added information about MinGW alternatives for MSVC
security features. Unfortunately they need Cygwin
binary plus some depend on MinGW host platform
and/or version.
* include/hbwince.h
* src/common/hbwince.c
- Deleted CharToOemBuffA(), OemToCharBuffA(). No longer
needed by Harbour.
; TODO: Delete rest of not anymore used ANSI WinAPI
functions. Now Harbour never uses ANSI
WinAPI functions in UNICODE mode.
* config/win/global.mk
- Deleted reference to CharToOemBuffA(), OemToCharBuffA().
* 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.
* Makefile
- source/hbpcre
- source/hbzlib
* external/Makefile
+ external/pcre
+ external/zlib
* external/pcre/Makefile
* external/zlib/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* include/hbsetup.h
* include/hbzlib.h
* include/hbregex.h
* source/rtl/hbzlibgz.c
* source/rtl/Makefile
* source/rtl/hbregexc.c
* source/rtl/hbregex.c
* source/rtl/hbzlib.c
* source/Makefile
* contrib/xhb/Makefile
* contrib/hbmzip/Makefile
* utils/hbmk2/hbmk2.prg
* config/global.mk
* config/lib.mk
* config/bin.mk
* config/detect.mk
* config/darwin/libs.mk
* config/linux/libs.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.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/dyn.mk
* config/os2/watcom.mk
* config/os2/gcc.mk
* config/bsd/libs.mk
* config/hpux/libs.mk
* config/sunos/libs.mk
* Changed the way embedded zlib and pcre are handled:
- They now reside in /external dir.
- They are now excluded from Harbour dynlib. This means they
will now be linked statically on non-*nix systems and
dynamically on *nix systems. On *nix it's probably easy to
switch to link statically. On non-*nix this is quite
complicated to do.
- If these libs are provided by the system, those will be used.
- On non-*nix systems the locally hosted versions will be used,
unless user overrides them using HB_INC_PCRE or HB_INC_ZLIB.
- There is currently no officially supported way to force usage
of locally hosted libs.
- If PCRE lib is forcibly disabled or not found, build system
will fall back to POSIX regex on *nix systems and Borland regex
with bcc compiler. Otherwise it will stop the build with an error.
- If zlib is forcibly disabled or not found, an error will be
generated at build-time (in hbrtl). hbmzip is simply skipped
in this case.
- hbmk2 will use local builds of these libs if they are present
in lib dir.
; TOFIX: hbmk script.
; TOFIX: dos builds. cmdline lenghts are most probably too big for them.
; NOTE: Bumps are expected.
; NOTE: I've yet to test/verify it.
- external/libhpdf/ori_src
- external/libhpdf/ori_dst
- Deleted. (added in prev commit by oversight)
* 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/wce/mingwarm.mk
* config/win/mingw.mk
+ Reenabled implib generation for mingw targets.
This will be needed to implement multi-host binary distros
supporting cross-build shared targets. This way there is no
need to fiddle with switching BIN dirs in cross-build situations,
the LIB dir selection is enough to find all required libs,
regardless where .dlls are installed. (.dlls should ideally
be installed to system locations).
* source/rtl/gtcrs/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/gtsln/Makefile
* Using HB_HAS_GPM instead of old HB_GPM_MOUSE.
* config/bin.mk
* config/dyn.mk
* config/bsd/libs.mk
* config/darwin/libs.mk
* config/hpux/libs.mk
* config/dos/djgpp.mk
* config/win/mingw.mk
* config/linux/libs.mk
* config/os2/gcc.mk
* config/sunos/libs.mk
* Extended the way it's decided whether to include
rtl external lib dependencies or not. Now binary specific
logic was moved to bin.mk, and dynamic lib logic was added
to dyn.mk.
The flag is called HB_LINKING_RTL (not empty means yes).
+ Updated syslib list assembly parts to use HB_HAS_*
autodetection variables instead of trying to find it out
by other means.
* config/global.mk
+ Adding gtcrs, gtsln, gtxwc to std liblist if required
components are available. This means that it's now again
possible to select these as build-time default GTs.
* Updated comment for setting plans.
* INSTALL
+ Added DJGPP cross-builds to support matrix.
+ Added DJGPP bash.exe to the shell mix.
+ Added OS/2 bash.exe to the shell mix.
; NOTE: djgpp build fails here when using bash too
(I've used a Windows machine to test), see below.
* ChangeLog
* Updating pending item status.
* contrib/hbbtree/hb_btree.c
! Added TOFIX about bad bug. (hitting win64, maybe more)
Reported on the list a while ago.
* utils/hbmk2/hbmk2.prg
- Deleted HB_CCPATH support for *nix based gcc/icc compilers.
To be in sync with GNU Make files.
+ Added HB_CCPATH support for os2 and dos.
+ Added HB_CCPREFIX and HB_CCPOSTFIX support for dos/djgpp to
support cross-builds.
+ Using host dependent executable extension for compiler
tools in dos/djgpp to support cross-builds.
* config/wce/mingwarm.mk
* config/win/mingw.mk
+ Added HB_CCPOSTFIX support. Now in sync with rest of gcc
family compilers in GNU Make and with hbmk2.
* config/win/cygwin.mk
+ Added HB_CCPATH, HB_CCPREFIX, HB_CCPOSTFIX support.
To be in sync with rest of gcc family compiler in GNU Make
and with hbmk2.
* config/dos/djgpp.mk
+ Added HB_CCPATH, HB_CCPREFIX, HB_CCPOSTFIX support for
dos/djgpp.
! Fixed to only give error when using non-DOS build of
GNU Make on a Windows host.
; NOTE: Tried the bld process with bash.sh, and it starts
when using nativ DOS make.exe, but it fails also
with 'Bad command or file name' and 'No command name seen.'
when building hbcommon lib. Same effect when using
msys. So I conclude our djgpp make files are broken
for POSIX shells, I hope someone else can also do
tests.
* config/os2/gcc.mk
+ Added HB_CCPATH support.
To be in sync with rest of gcc family compiler in GNU Make
and with hbmk2.
* config/win/bcc.mk
! Readded dbl quotes around tlib filename. This breaks tlib
on msys shells. The real problem is caused by /P64 option.
Fix unknown, besides avoiding msys shell+bcc target
combination.
* contrib/hbfbird/Makefile
* Indented/rearranged.
* doc/bintools.txt
* config/dosecho.exe
! Restored previous version. (new one gave error on some watcom lines f.e.)
+ Added binary+source links.
* INSTALL
+ Some minor clarifications.
* 'NT system required' changed 'XP system recommended' for win hosts.
+ Added shell requirement for HB_BUILD_PKG.
% Simplified os2/watcom on linux example.
* bin/postinst.cmd
+ Some cleanup/sync with postinst.bat.
* source/Makefile
! Possible fix: Emptying DYNDIRLIST_BASE on dos targets
to save envvar space.
* source/Makefile
* config/lib.mk
+ Added gtcrs and gtsln to dynlib obj list for *nix targets.
* config/global.mk
+ Added Harbour version number to log header.
! Fixed to use short pkg name based on target platform
no host platform (=dos).
* config/bsd/gcc.mk
* config/hpux/gcc.mk
* config/darwin/icc.mk
* config/linux/icc.mk
* config/linux/sunpro.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
+ Added dynamic library generation to rest of targets.
; Please review, especially sunos/sunpro as it had some
.sh tricks which I couldn't replicate.
* config/bsd/global.mk
* config/hpux/global.mk
* config/darwin/global.mk
* config/linux/global.mk
* config/sunos/global.mk
! Setting DYN_PREF to 'lib'.
* config/wce/mingwarm.mk
* config/win/mingw.mk
- Disabled import libs. [They aren't necessary with mingw.]
* config/darwin/icc.mk
* Changed to use libtool instead of xiar.
(blind sync with darwin/gcc)
* config/dos/djgpp.mk
* config/common/watcom.mk
* config/win/bcc.mk
* config/os2/gcc.mk
! Fixed to use $(ECHOQUOTE) in all $(ECHO) calls.
* config/win/bcc.mk
! Fixed use fixed backslashes regardless of shell in scripts.
* config/dyn.mk
! Fixed to use $(LIB_PREF) as implib name prefix.
% Minor opt in IMP_NAME forming.
* config/rules.mk
% Readded $(HB_INC_COMPILE) to be always on cmdline, to
better balance between cmdline and envvar space. (dos)
* config/instsh.mk
% Don't display useless '! Nothing to install' message
when there was no file to install. (could happen with
mingw dynamic lib install where implib is empty because
we don't generate one).
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
! Don't quote filenames in DY_RULE commands to make them work
on all shells (sh in particular). This means that we lost
some level of 'space in filename' support, but it's acceptable
since it's unlikely to have space in internal paths anyway.
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
+ Added 'install' logic for dynamic lib implibs.
* config/global.mk
+ Added useful GNU Make link.
! Added HB_HOST_CPU "detection" for os2 and dos to avoid
situation where cross-build is detected due to different
to HB_CPU value. (HB_CPU autodetection for os2 dos was
added yesterday). It's quite theoretical, as os2 dos
has CPU type set to constant 'x86'.
+ Added IMP_DIR value. This hold where to store implibs
for dynamic libs. Empty if platform don't need implibs
(huge relief BTW). For *nix this value is set empty, for
non-*nix it's set to LIB_DIR.
+ Added initialization for DYN_PREF (to empty).
* config/dyn.mk
+ Added handling of IMP_DIR, IMP_FILE.
! Dyn lib build rule guarded with HB_BUILD_DLL and DY_RULE
checks.
* config/globsh.mk
+ Added dirbase and clean rules for implibs.
! Fixed using OS version of dirs in $(wildcard) for nt
clean rules for OBJ_DIR and PKG_DIR.
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.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
+ Dynamic lib rules extended to generate implib in IMP_DIR.
This goes smoothly with all compiler except bcc, which requires
a copy and a delete to move the implib to lib dir. 'move'
doesn't work (says 'command not found' or equivalent and
requires '$(COMSPEC) /C' with GNU Make + nt shell), so I
didn't use it finally. Anyhow bcc implib is small.
* config/globsh.mk
- Deleted $(MV) variable with move command.
(problematic under nt shells)
- config/dj-mv.exe
* config/readme.txt
- Deleted DJGPP mv tool.
; NOTE: dynamic library handling seems to be about feature complete.
* config/win/bcc.mk
* config/win/watcom.mk
+ Added new .dll build rules.
; TODO: Solve handling of generated implib.
; TODO: Add dynlib generation logic for *nix targets.
; TODO: Delete postinst script if the new method turns out to
work alright.
* config/win/cygwin.mk
* config/win/icc.mk
* config/win/xcc.mk
* config/win/pocc.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
+ Implemented .dll creation for rest of win/wce compilers:
icc uses the same logic as msvc.
pocc/poccarm/msvcarm/xcc uses the same logic as msvc
except /subsystem option.
mingwarm/cygwin uses the same logic as mingw.
; I didn't test wce ones yet.
* config/win/msvc.mk
% Using $(wildcard) instead of echo trick to delete __lib__.tmp.
* config/win/mingw.mk
* config/win/msvc.mk
* Moved HB_USER_DFLAGS in cmdline.
* config/win/watcom.mk
* config/dos/watcom.mk
* config/linux/watcom.mk
* config/os2/watcom.mk
+ Added 'OP quiet' option to wlink command.
* source/pp/Makefile
! Using OBJ_DYN_POSTFIX instead of hardwired value.
* source/vm/mainwin.c
* source/vm/mainstd.c
! Typo in prev commit regarding watcom/dynlib hack.
* source/rtl/gtwvt/gtwvt.c
! Fix for msvcarm build, where WS_OVERLAPPEDWINDOW macro
is reported missing.