* 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
* harbour/src/rtl/cdpapi.c
* removed dummy assignment
* harbour/src/lang/msgpl852.c
* harbour/src/lang/msgplmaz.c
* harbour/src/lang/msgpliso.c
* harbour/src/lang/msgplwin.c
! fixed one message translation
* harbour/config/dos/watcom.mk
* harbour/config/win/watcom.mk
* harbour/config/linux/watcom.mk
* harbour/config/os2/watcom.mk
* disable explicitly some Open Watcom warnings in 3rd party code
which we can safely ignore when HB_BUILD_WARN='no'
* harbour/utils/hbmk2/hbmk2.prg
* disable explicitly some Open Watcom warnings in 3rd party code
which we can safely ignore when warning level is low
* harbour/src/codepage/cpcs852.c
* harbour/src/codepage/cpcskam.c
* harbour/src/codepage/cpcsiso.c
* harbour/src/codepage/cpcswin.c
! switched from HB_CDP_ACSORT_INTERLEAVED to HB_CDP_ACSORT_NONE in
Czech code pages.
* harbour/config/win/bcc.mk
* disable explicitly some common BCC warnings in 3rd party code
which we can safely ignore when HB_BUILD_WARN=no
* harbour/utils/hbmk2/hbmk2.prg
* disable explicitly some common BCC warnings which we can safely
ignore when warning level is set to low
* harbour/contrib/hbmisc/bbabble.c
* removed unnecessary incrementation to pacify compile warning
* include/hb_io.h
* include/hbthread.h
* include/hbsetup.h
* src/vm/thread.c
* src/vm/dynlibhb.c
* src/common/hbgete.c
* src/common/hbprintf.c
* src/rtl/gttrm/Makefile
* src/rtl/hbsocket.c
* src/rtl/filesys.c
* src/rtl/hbcom.c
* config/global.mk
- config/win/cygwin.mk
+ config/cygwin
+ config/cygwin/libs.mk
+ config/cygwin/gcc.mk
+ config/cygwin/global.mk
+ Applied cygwin patch from Tamas Tevesz.
The goal is to migrate win/cygwin to cygwin/gcc, IOW to make cygwin
a distinct platform (which is primarily unixy with option to access
winapi) as it should be.
Changes made by me compared to original patch:
- Fixed to HB_HOST_PLAT stay 'win'. Cygwin is not a host platform.
- Fixed to set HB_COMPILER to gcc and HB_PLATFORM to cygwin when cygwin
is detected on win platform.
- Consequently some changes in global.mk could be dropped.
- Deleted hbcom patches not related to cygwin.
- Removed hbmk2 patch until we solve the 'plat $ 'cygwin' problem.
* harbour/config/win/watcom.mk
* removed .exe suffix from executed tools.
It fixes cross builds using native Linux binaries.
If someone wants to make some tests using windows binaries executed
by WINE then please make the following soft links:
wpp386 -> wpp386.exe
wcc386 -> wcc386.exe
wlink -> wlink.exe
wrc -> wrc.exe
or script wrappers
* utils/hbmk2/hbmk2.prg
- Deleted handling of .hbi extension.
- Deleted -target and -alltarget cmdline options as an
effort for simplification. Now all cmdline options apply
to all targets.
+ .hbp file references will now be executed as sub-projects,
using an internal recursive call to the hbmk2 engine.
This means that projects can now be embedded. INCOMPATIBLE
if someone used .hbp file references inside other make
files. If you want to create common settings in a separate
file, always use .hbm extension.
Pls note that sub-projects will inherit all cmdline options
of original hbmk2 invocation.
+ Added ${hb_targetname} macro to return the parent project
name.
+ Added ${hb_targettype} macro. Returning target type.
+ Changed -run option to only run the top level project.
+ Changed --hbinfo to return a flat list of information
about all projects involved. Currently the main project
is the last one in the list (order of execution).
+ Filters can now be used also for file inclusion and -skip
options (which means they can now be used for all possible
cmdline and .hbm/.hbp options)
! Fixed the way automatic cmdline options based on
hbmk2's own filename are created. From now -hbcmp, -hblnk,
-hbcc, -rtlink, -xhb, -hb10 will be added to the left side
of the existing option (to precede everything else), while
the rest (f.e. -hblib, -hbexe, -hbdyn) will be added last.
; NOTE: Quite heavy changes so pls expect (and report) any
regressions. Most probably there will be room for
tweaks here and there to make the new cascading build
feature as smooth as possible.
* contrib/make.hbs
% Internally simplified since now the handling of sub-projects
is the job of hbmk2 and .hbp make files.
+ In standalone mode it will now detect the name of the project
in current dir, so the codepaths are much similar to the
GNU Make mode now and stdalone mode will also rely on pkglist,
instead of trying to detect what to build on its own.
+ Not require pkglist to list any sub-projects anymore, now
it's simple list of main .hbp files.
+ Changed along with hbmk2 to deal with multiple project
information returned by --hbinfo.
+ Avoid using the word "contrib", use "package" instead.
* contrib/pkglist
* Simplified to a mere list of main .hbp files for packages.
* utils/hbrun/hbrun.prg
* contrib/make.hbs
* config/postinst.hbs
* PathSepToSelf() rewritten to not make assumptions about
__PLATFORM__* macro vs hb_ps() value, instead use hb_ps()
value to decide what to do.
* utils/hbrun/hbrun.prg
! Fixed to not save the (empty) history after each non-interactive
session.
* config/win/cygwin.mk
! Fixed to add z and pcre libs if the locally hosted ones
aren't used.
* contrib/hbqt/generator/hbqtgen.prg
! Fixed OS names in doc output.
* Formatting.
* contrib/gtalleg/gtalleg.hbm
* contrib/gtalleg/gtalleg.hbp
* contrib/gtalleg/gtallegs.hbp
* contrib/hbcurl/hbcurl.hbm
* contrib/hbcurl/hbcurl.hbp
* contrib/hbcurl/hbcurls.hbp
* contrib/hbtip/hbtip.hbm
* contrib/hbtip/hbtip.hbp
* contrib/hbtip/hbtipssl.hbp
* contrib/hbssl/hbssl.hbm
* contrib/hbssl/hbssl.hbp
* contrib/hbssl/hbssls.hbp
* contrib/hbqt/hbqt_common.hbm
- contrib/hbqt/hbqt.hbm
+ contrib/hbqt/filelist.hbm
* contrib/hbqt/hbqt.hbp
* contrib/hbqt/hbqts.hbp
* contrib/hbqt/hbqtgui.hbp
* contrib/hbqt/hbqtguis.hbp
* contrib/hbqt/hbqtcore.hbp
* contrib/hbqt/hbqtcores.hbp
* contrib/hbqt/hbqtnetwork.hbp
* contrib/hbqt/hbqtnetworks.hbp
- contrib/hbqt/gtqtc/gtqtc.hbm
+ contrib/hbqt/gtqtc/filelist.hbm
* contrib/hbqt/gtqtc/gtqtc.hbp
* contrib/hbqt/gtqtc/gtqtcs.hbp
* contrib/hbqt/qtwebkit/hbqtwebkit.hbp
* contrib/hbqt/qtwebkit/hbqtwebkits.hbp
* contrib/hbqt/qtdesigner/hbqtdesigner.hbp
* contrib/hbqt/qtdesigner/hbqtdesigners.hbp
* contrib/hbqt/hbqscintilla/hbqscintilla.hbp
* Cleanup along with latest changes:
Using ${hb_targetname} instead of ${hb_name}, so it's safe to
use it inside .hbm file, instead of replicating them in every
.hbp file.
+ Now primary .hbp project files always reference the sub-project
.hbp files:
- hbqt
+ hbqts
+ hbqtcore
+ hbqtcores
+ hbqtgui
+ hbqtguis
+ hbqtnetwork
+ hbqtnetworks
Which means that 'hbmk2 hbqt.hbp' will rebuild the whole
stuff (all libs, and even static libs if requested) in one pass.
* Renamed some file for more uniform layout.
* utils/hbmk2/hbmk2.prg
+ Added mingw/mingw64 version detection. Not very extensively
tested.
+ Added -depimplibs=, -depimplibd cmdline options, and depimplibs=
and depimplibd .hbc options. They serve to configure automatic
(without stdalone .hbi file using -hbimplib) import library
generation for dependencies. The internal logic is the same,
but now implibs can be generated for multiple dependencies
at once, using pure .hbp files (or eveb .hbc for that matter).
+ Filters now also support '<' and '>' operators.
+ Filters will now expand internal macros before looking for
envvars.
+ Added HB_COMP_VER macro, returning compiler version.
! Fixed to handle "*.hbs" passed as option.
! Fixed to do entry detection also for .hbs files.
* contrib/make.hbs
- Temply disabled .hbi handling, now it's done by .hbp files.
! Refixed to skip hbhrb/hbppo projects in stdalone mode.
* contrib/hbqt/tests/testbrow.prg
* Updated with Bacco's 'testedit.prg' sent to the list.
* Formatting. (pls try to format it like this)
* contrib/hbpost.hbm
+ Enabled 'dynamicbase' and 'nxcompat' exe generation flags
for newer versions of msvc and mingw, to be in sync with
our GNU Make settings (and safety).
* contrib/xhb/hbcompat.ch
! Fixed some wrong xhb to Harbour translations reported by Rossine.
* contrib/hbide/hbide.hbp
% Deleted -gc3. It made the executable 2MBs larger.
Pls report any performance problems after this
change.
* contrib/gtalleg/gtalleg.hbp
* contrib/hbblat/hbblat.hbp
* contrib/hbcairo/hbcairo.hbp
* contrib/hbcurl/hbcurl.hbp
* contrib/hbfbird/hbfbird.hbp
* contrib/hbfimage/hbfimage.hbp
* contrib/hbgd/hbgd.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbmysql/hbmysql.hbp
* contrib/hbpgsql/hbpgsql.hbp
* contrib/hbssl/hbssl.hbp
* contrib/rddads/rddads.hbp
* contrib/sddfb/sddfb.hbp
* contrib/sddmy/sddmy.hbp
* contrib/sddoci/sddoci.hbp
* contrib/sddpg/sddpg.hbp
+ Added new switches to enabled automatic import library
generation without .hbi files.
Please note that this means that now HB_WITH_BLAT will
have to be set from now on for hbblat lib.
* config/global.mk
* Minor.
* config/win/watcom.mk
! Fixed to add .exe extension to watcom tools to make it work
in wine-based cross build situations. [pls note that watcom
can create cross builds using its native tools, so this is
just the cherry on top :)]
Patch provided by Tamas Tevesz.
* config/win/pocc.mk
* config/win/pocc64.mk
! Fixed pocc64 build. The build setup was broken since
about 2.0.0beta2. One year without anyone noticing.
* src/rtl/hbsocket.c
! Readded once present (in old hbinet.c) ugly kludge for pocc64
to at least be able to build binaries instead of choking on a
missing Windows function. More in the source code.
Affecting both 5 and 6.
* external/zlib/Makefile
! Added ugly workaround to avoid quite strange pocc64 (both 5 and 6)
error when compiling crc32 for dynamic lib:
---
pocc.exe -I. -I../../../../../include -Ze -Go -MT -Tamd64-coff -Ot -DHB_LEGACY_TYPES_OFF -DUNICODE -Focrc32_dyn.obj -DHB_DYNLIB -DZLIB_DLL -c ../../../crc32.c
../../../crc32.c(209): error #3101: [asm] Invalid argument to 'GLOBAL'.
../../../crc32.c(209): error #3152: [asm] Expected ']'.
../../../crc32.c(209): error #3151: [asm] Syntax error.
../../../crc32.c(223): error #3101: [asm] Invalid argument to 'FUNCTION'.
../../../crc32.c(223): error #3152: [asm] Expected ']'.
../../../crc32.c(223): error #3151: [asm] Syntax error.
../../../crc32.c(223): error #3151: [asm] Syntax error.
---
* external/bzip2/Makefile
! Disabled for pocc64 (both 5 and 6), due to this error:
---
pocc.exe -I. -I../../../../../include -Ze -Go -MT -Tamd64-coff -Ot -DHB_LEGACY_TYPES_OFF -DUNICODE -Foblocksor.obj -c ../../../blocksor.c
../../../blocksor.c(583): error #3114: [asm] Invalid combination of opcode and operands.
---
* 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.
* src/common/hbfsapi.c
! hb_fsFName*(): Fixed to not GPF when called with NULL parameters.
(this also fixes 'hbpp -c' GPF)
* config/global.mk
+ Will now force HB_BUILD_UNICODE=no on Win9x hosts
(and if HB_BIN_COMPILE is not set to point to a non-UNICODE
Harbour tools to be used. Building UNICODE Harbour on Win9x
is a cross-build situation)
* config/win/bcc.mk
+ Added small trick to make the build work on Win9x host.
; Win9x is able to build properly using win/bcc.
* 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.
* config/global.mk
! Reverted one optimization from yesterday's late
night programming jam session.
* contrib/hbqt/hbqt_base.cpp
* Renamed HBQT_ISQTSTATICLINKED() to HBQT_ISSTATICLINK().
(enough to have one 'QT' in the name)
* config/win/bcc.mk
+ More changes targeting bcc support under WINE scenario.
; Here it now works "out of the box"
* INSTALL
+ Added example for win/bcc build under WINE.
(kudos go to Tamas Tevesz for the setup example)
+ Added win/bcc to supported cross(ish)-builds.
* examples/httpsrv/uhttpd.prg
! Fixed bogus newlines in RTE ALERT() windows.
* config/global.mk
% Minor optimization, in bcc location detection. I hope.
+ Changed autodetection to look for fixed .exe extension
for tools which have no native *nix versions, so their
name always ends with .exe regardless of host platform.
This should make these tools usable under WINE.
* config/win/bcc.mk
+ Attempt to better support bcc on linux build scenario,
by using backslash escaping in this case.
* utils/hbmk2/hbmk2.prg
* Cleaned up to use hard-coded .exe extensions in autodetection
code for tools which have no other version. (syncing with
above GNU Make change). This has no effect yet.
* config/global.mk
* utils/hbmk2/hbmk2.prg
! xcc.exe -> xCC.exe
* INSTALL
* external/sqlite3/Makefile
* utils/hbmk2/hbmk2.prg
* config/global.mk
* config/wce/msvcarm.mk
* config/win/msvc.mk
* Changed HB_COMPILER_VER values for msvc targets. Previously it was
the Visual Studio version, now it is the C compiler version,
the same value used in _MSC_VER predefined macro:
Name old NEW
-------------------------------------- ---- ----
C Compiler version 6.0 600
C/C++ compiler version 7.0 700
Visual C++, Windows, version 1.0 100 800
Visual C++, 32-bit, version 1.0 100 800
Visual C++, Windows, version 2.0 200 900
Visual C++, 32-bit, version 2.x 200 900
Visual C++, 32-bit, version 4.0 400 1000
Visual C++, 32-bit, version 5.0 500 1100
Visual C++, 32-bit, version 6.0 600 1200
Visual Studio .NET (2002), version 7.0 700 1300
Visual Studio .NET 2003, version 7.1 710 1310
Visual Studio 2005, version 8.0 800 1400
Visual Studio 2008, version 9.0 900 1500
Visual Studio 2010, version 10.0 1000 1600
INCOMPATIBLE for users setting HB_COMPILER_VER manually, pls
change the value as indicated above. For most users it's
recommended to rely on autodetection and not to set this
variable at all.
* config/postinst.prg
! Fixed to use hb_osFileMask() instead of hard-coded '*' mask.
* 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/win/msvc.mk
* utils/hbmk2/hbmk2.prg
* Replaced -Ot2b1 win/msvc* option with -O2 as recommended by Microsoft,
and in sync with GNU Make. This will result in somewhat larger
executable, but this gives the best overall performance. AFAICS
this change will practically allow automatic inlining to take place.
This puts msvc in the lead again compared to mingw regarding speed.
* config/wce/msvcarm.mk
* Deleted bogus option -Od turning off all optimization for
wce/msvcarm targets for new compiler versions.
* config/wce/msvcarm.mk
* config/win/msvc.mk
* Deleted Exception Handling options from all msvc cmdlines
where it was supplied. It has a heritage from the past, and
I could depict no sense in the setup:
- old wce/msvcarm: -EHsc
- new wce/msvcarm: -EHsc-
- old win/msvc*: none
- new win/msvc*: -EHs-c-
The only place this could be needed ATM is hbqt, so pls report
results after this change, or unleash any information about
proper usage of these options.
NOTE: These options were already left out from hbmk2.
* utils/hbmk2/hbmk2.prg
* Deleted -YX option for old msvc versions. (to be in sync with
this recent change in GNU Make)
* Synced msvcarm options for new compiler versions with GNU Make.
(deleted bogus -Od and some other options)
; TODO: msvc optimization options for old compiler version could
still use a revamp.
* config/wce/poccarm.mk
* config/dos/watcom.mk
* config/win/xcc.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/linux/watcom.mk
* config/os2/watcom.mk
* Changed to not forcefully turn off warnings in some targets.
(so HB_BUILD_WARN=no is now equivalent to hbmk2 -warn=def)
; NOTE: This will result in some new warnings in /external
dir since for above compilers I've now upped the
warning level from nothing to the default level.
* external/zlib/Makefile
* Changed to not set Harbour level warnings for this
external component (in sync with all the others).
* 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
+ Added experimental -mkimplib= option to "convert" .dll
files into import libraries. Syntax tentative.
; TODO: Support for idiotic -a Borland C implib option.
If anyone has an idea how to detect when to use
-a and when not, I will implement it. If not,
I will most probably drop maintaining -a option
for bcc and leave it off. This leaves implibs
working for most .dlls we currently use, but will
break some (blat, curl, cairo, pq, alleg from
contrib).
* config/win/xcc.mk
* utils/hbmk2/hbmk2.prg
! Fixed to use case-correct filenames for xcc tools.
* bin/hb-mkimp.prg
+ Added msvcia64, msvcarm, xcc support.
! Fixed few library specs for msvc*.
* FS_ERROR -> F_ERROR
! Fixed handling spaces inside dll name for msvc*.
! Fixed handling non .dll extension for msvc*.
* 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.
* src/rtl/hbsocket.c
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
+ Restored to work with ws2_32.dll. (instead of wsock32)
* INSTALL
+ Added information on Win9x/ME support.
* src/rtl/diskspac.c
* src/rtl/disksphb.c
+ Added comment about the reason why GetDiskFreeSpaceEx()
is called dynamically (win95 first edition support).
+ Added support for HB_NO_WIN95 build-time flag to drop
Win95 compatibility. Unfortunately current dynamic load
trick fails with UNICOWS, returning zero for disk
space related calls in this scenario. If we drop the
dynamic call, we lose support for Win95 first edition,
but these functions will work properly on Win95b/98/ME
in return. I'm still thinking about it, but maybe it's
better to drop Win95 first edition support altogether
and make newer versions work properly. Any opinions?
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_wingdi_font.c
! Fixed to use WIDE/ANSI versions of dynamically executed
functions according to UNICODE setting.
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
! Stepping back to link against wsock32 instead of ws2_32.
The only reason is Win95 (even OSR2) compatibility.
This is a little bit less efficient unfortunately.
* src/rtl/hbsocket.c
! Fixed to use WSAioctl via dynamic call for non WinCE
builds, and if HB_NO_WIN95 macro is no defined.
WSAioctl is present in ws2_32.dll, which .dll isn't
available on Win95.
; Not tested since I don't know how to test it, pls
review and test.
; NOTE: There seem to exist a package which add ws2_32
support for Win95, but I couldn't find it, if
someone has, we can drop this ugly trick and
simply document the requirement.
* src/rtl/gtwin/gtwin.c
* Formatting.
* contrib/hbodbc/odbc.c
* contrib/rddsql/sddodbc/sddodbc.c
! Silenced warnings.
* contrib/rddsql/sddoci/sddoci.c
* contrib/rddsql/sddoci/tests/test1.prg
+ Finished type mapping and value translation.
; Not being an Oracle user, I only have the few sample
tables, so no testing was made with these types.
; TOFIX: decimal position retrieval is currently wrong.
; TOFIX: date/time/timestamp doesn't seem to get through.
* config/win/global.mk
* config/rules.mk
* Moved HB_BUILD_UNICODE handling here for win platform,
to allow disabling it for potential 3rd party libs which
don't support UNICODE mode.
* src/common/hbffind.c
* Formatting.
+ contrib/hbfoxpro/dll.prg
+ contrib/hbfoxpro/Makefile
* contrib/hbwin/Makefile
- contrib/hbwin/win_dllf.prg
+ Moved FoxPro-like dynamic call function to
hbfoxpro lib.
Renamed it to FOX___DYNCALL() until we find
it a better name, or someone will suggest
how this is best presented for actual FoxPro
users.
* contrib/Makefile
* utils/hbmk2/examples/contribf.hbc
+ Enabled hbfoxpro lib.
* config/wce/global.mk
* config/win/global.mk
* Formatting.
* include/hbsetup.h
* Cleaned the way WinCE is detected.
Now looking for UNDER_CE or _WIN32_WCE constants. (was: _WINCE)
* utils/hbmk2/hbmk2.prg
* Cleaned the way constants are initialized for WinCE platform. It's also
means they are now synced with GNU Make build system. This means:
UNICODE, _WIN32_WCE (to 0x501), UNDER_CE are always defined.
Secondary CPU macros are defined as needed.
Removed all the other WinCE related constants.
+ Defining UNDER_CE and _WIN32_WCE for resource compiler for WinCE targets.
* config/wce/global.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* Cleaned the way constants are initialized for WinCE platform.
- '-D_WIN32_WCE=0x501 -DUNDER_CE' moved to global, so now these will
be equally defined for all WinCE compilers.
- Deleted these from msvcarm targets ('-D_WINCE' was apparently used
by our own hbsetup.h detection code only):
'-D_WINCE -DCE_ARCH -DWINCE -D_WINDOWS -D_UNICODE -D_UWIN'
- Deleted this from from poccarm targets:
'-D_WINCE'
- Deleted several secondary CPU constants for msvc* targets:
'-D_ARM_ -DARMV4 -D_ARMV4I_ -Darmv4i -D__arm__'
'-D_SHX_'
'-D_MIPS_ -DMIPS_HAS_FPU'
These are not necessarily true, and not even necessary. I you know
otherwise, speak up.
- Kept primary CPU constants:
'-D_M_*'
- Kept secondary CPU constants (needed by some inconsistent Windows header files):
'-DARM', '-DSHx', '-DMIPS', '-D_X86_'
* config/win/global.mk
* Cleaned to use 'HB_BUILD_UNICODE' setting to enable UNICODE for non-x86 targets.
* config/win/msvc.mk
! Fixed to respect 'HB_BUILD_UNICODE' user-setting when enabling UNICODE for
newer MSVC targets. IOW it's now possible to turn off UNICODE for newer
MSVC targets.
; Above should ensure more consistency for different WinCE compilers.
Closer behavior and more consistent build logs, with less unnecessary options.
* utils/hbmk2/hbmk2.prg
! Fix to add 'lib' prefix for gcc compiler when using -implib option.
+ Added comment detailing prev change.
* config/wce/msvcarm.mk
* config/win/msvc.mk
- Deleted -YX option.
We don't want to force precompiled headers by default on older
MSVC versions.
* 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?