* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ In non-incremental mode when no workdir is manually set, hbmk2
will now create a temp subdir inside temp dir and create any
intermediate output files there. (previously it was using the
temp dir without creating a temp subdir inside).
; Please test and report leftover temp files and dirs, also test
it on *nix platforms.
* Changed 'couldn't', 'don't' style English abbrevs to
'could not', 'do not', etc.
* config/rules.mk
! Fixed to include static-only C compiler options for targets
which have no separate static/dynamic C compiler pass.
This should fix wrongly built pcre lib causing missing
exported functions in mingw Harbour .dlls.
* utils/hbmk2/hbmk2.prg
+ Changed filtering implementation for cmdline parameters.
Now filters can be placed anywhere and they work for all
parameters.
Please test, regressions may be possible.
* config/postinst.prg
! Added gpm handling logic to hbmk.cfg creation. This was
previously done in recently deleted postinst.sh function.
* config/global.mk
* config/rules.mk
* external/pcre/Makefile
+ Added HB_CFLAGS_STA variable to hold C compiler options
passed solely when compiling for static lib.
* Change PCRE setup to use HB_CFLAGS_STA instead of -U
trick at the same time silencing msvc warning.
* config/global.mk
* config/rules.mk
+ Added HB_CFLAGS_DYN variable to pass lib specific options
specially directed to compilation phase when building
to create a .dll. Currently this affects pcre and zlib since
these are included in harbour .dll.
* external/libhpdf/Makefile
* external/pcre/Makefile
* external/png/Makefile
* external/zlib/Makefile
+ Configured HB_CFLAGS_DYN for these libs to properly create
exported symbols in harbour .dll. This was a problem so far
for any non-mingw made harbour .dll.
* debian/rules
- doc/man/hbmk.1
+ doc/man/hbmk2.1
! Renamed to hbmk2 to be in sync with name of the tool.
* Makefile
! Fixed to always descend into utils directory,
because (in 'install' mode) hbrun and hbmk2 needs
to be built regardless of HB_BUILD_PARTS setting.
* contrib/hbfbird/hbfbird.hbi
! Fixed to set output libname. This is needed because
we can't rely on input filename due to mingw trick.
* config/global.mk
+ Show HB_BUILD_IMPLIB setting. Now there is nothing
hackish in it, so it can be fully supported setting.
* config/postinst.prg
% Minor optimizations in hbmk2 invocation lines.
(removed unnecessary spaces, using envvar macros,
deleted unnecessary double quotes)
! Fixed (in two places) to only invoke hbmk2 if
HB_HOST_BIN_DIR envvar is set.
! NSIS invocation command made more friendly to cross
platform environment by using native pathsep.
+ Will now echo the external commands issued to stdout.
* config/postinst.prg
+ Added new experimental envvar:
HB_BUILD_ADDONS=prj1.hbp prj2.hbp prjn.hbp
Harbour build process will initiate the build of the passed
.hbp files at 'install' phase.
% Simplification to other hbmk2 invocation commands.
* contrib/hbwin/win_svc.c
! Fixed to set running status only if entry function
is valid and able to reenter HVM.
+ Added trace message when entry function cannot be found.
* config/global.mk
! Fixed problem caused by $(wildcard) not matching existing
files when using '/dir//file' format (note double slash).
So f.e. it caused autodetection to fail when dir was
speficied as 'C:\mingw\bin\' (with ending backslash) in PATH.
It's good to remove such backslashes anyway, but from now
on it won't cause problem for Harbour build system.
* INSTALL
* Two minor cleanups
* config/postinst.prg
+ Will now honor HB_CONTRIBLIBS and HB_CONTRIB_ADDONS
when creating import libraries. IOW it will only create
implibs to the contribs actually built.
* utils/hbmk2/hbmk2.prg
+ Added trick when using real xhb toolchain to detect
-tW C flag and in this case automatically select the ST
C RTL library. (Notice that -tW will only be detected
when passed normally via cmdline or script, and not
when using legacy HB_BUILD_CFLAGS envvar or inherited
compiler flags).
+ contrib/gtalleg/gtalleg.hbi
+ contrib/hbblat/hbblat.hbi
+ contrib/hbcairo/hbcairo.hbi
+ contrib/hbcurl/hbcurl.hbi
+ contrib/hbfbird/hbfbird.hbi
+ contrib/hbfimage/hbfimage.hbi
+ contrib/hbgd/hbgd.hbi
+ contrib/hbhpdf/hbhpdf.hbi
+ contrib/hbmysql/hbmysql.hbi
+ contrib/hbpgsql/hbpgsql.hbi
+ contrib/hbssl/hbssl.hbi
+ contrib/rddads/rddads.hbi
+ contrib/sddfb/sddfb.hbi
+ contrib/sddmy/sddmy.hbi
+ contrib/sddoci/sddoci.hbi
+ contrib/sddpg/sddpg.hbi
+ Added local import library generation hbmk2 make files
to each contrib which requires it.
* config/postinst.prg
+ Changed to use contrib local implib creation hbmk2 scripts to
create import libraries.
- Deleted mingw exception for ocilib to use the static library.
Static lib is definitely better, but if someone would like to
use it, it should be done locally/manually, just like for any
other dependency.
+ Solved firebird implib creation hack/exception in contrib
local .hbi file.
; These fix the last "centralization" issues in Harbour make system.
Still remains documentation problem (everything is in INSTALL),
and *nix .deb/.rpm centralized solution for contrib dependencies
and contrib names in general.
* utils/hbmk2/hbmk2.prg
+ Combining multiple -o options (one with name, one with directory)
is now supported in -hbimplib mode. This makes it work like in
other existing modes.
! Fixes regarding -o option combining and dir inheritance.
(beware of regressions here)
* contrib/gtalleg/gtalleg.hbc
* Changed to use import library on Windows with an unmodified name
(containing version).
* src/rtl/hbcom.c
! Fixed one non-ANSI comment.
* ChangeLog
+ Added two changes missed from prev entry:
* utils/hbmk2/hbmk2.prg
+ In -hbimplib mode any options are automatically passed to
import library creation command (so -iflag option is not
absultely needed)
- Deleted -mkimplibms option now replaces by generic -iflag
solution.
! Stripped UTF-8 char from a recent entry.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
- Deleted 'experimental' flags from all features.
* Finalized import lib creation feature in hbmk2.
+ Added -hbimplib mode switch (this replaces -mkimplib= option)
+ Input source files (.dlls) now should be passed to
hbmk2 as simple source filenames (without option prefix).
+ Multiple input source files are now supported.
+ Added -iflag= option to pass flags to import library creation
command directly.
* Changed so that target import library name/dir can now be
specified using -o option (like in other modes).
+ Filenames/dirs are now all normalized.
+ Some warnings are now only shown in -info mode.
; F.e.:
'hbmk2 -hbimplib mydll1 mydll2 -omydir -iflag={bcc}-a'
This also means that a simple .hbp file can be created
to solve the import library needs for a given dependency.
* config/postinst.prg
* Adapted to use new import library creation hbmk2 commands.
* src/rtl/hbcom.c
! Fixed minor typo.
* 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.
* utils/hbmk2/hbmk2.prg
+ Extended -mkimplib option for windows gcc compilers (mingw/cygwin)
to first look for matching COFF .lib file and use it to create
import library. If such is not found, try to use matching .def
file and automatically generate import library using dlltool.
If none if these were found, use the .dll directly, to create
the import library. In case of Harbour, this method resolves
almost all mingw implib needs.
See longer note in source (in function win_implib_command_gcc())
about the details of the problem, the only thing I cannot see
is why mingw/cygwin developers insist on not fixing this issue
since ten year, while all other compilers can properly resolve
this problem. Anyhow until then mingw cannot use .dll using
stdcall calling convention without COFF .lib or .def file. If
both are missing, the only solution is to manually build a
.def file by first generating it from .dll then manually
adding '@nn' decoration according to function prototypes.
Thanks mingw.
* config/postinst.prg
- Deleted APOLLO implib generation. Apollo fall into the
problematic category for mingw, because developers chose
to use stdcall callconv and they forgot to provide
implib or .def file. It's not part of core anyway.
* Slightly changed mysql implib generation to also work
for mingw.
- Deleted no more necessary manuall hack for mysql implib
generation.
+ Added manual hack for firebird implib generation. In
this hbmk2 automatism cannot work as they distribute
COFF .lib in another directory and using a different
name than the .dll.
* 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/os2/gcc.mk
* utils/hbmk2/hbmk2.prg
- Deleted resource support from os2/gcc and os2/gccomf.
It didn't work with any gcc flavours. Resource support
seems to be broken in gcc tools.
* config/darwin/libs.mk
! Fixed to include MacPorts and Fink lib paths only if
they exist. This fixes potential warnings with latest
release of clang.
* config/linux/libs.mk
! Minor in comment.
* src/rtl/achoice.prg
! Added patch by Jerry Finuliar to refix dbu menu hang.
* config/postinst.prg
! Added hack to workaround the exception where mysql .dll doesn't
work with Harbour if copied to .a file. Instead I copy over the
import .lib to .a as before. If anyone knows a better solution,
pls speak up.
* 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).
* external/zlib/zlib.dif
* external/zlib/zconf.h
! Tweak to make it build with BCC (when this specific
constant is defined, f.e. by libharu).
* external/pcre/Makefile
! Tweak to make 8.02 work with BCC.
; NOTE: BCC is seemingly not tested/used by any important
external projects. If it goes like this, I will stop
doing these updates and leave them to real BCC users.
It's going against the flow.
* config/postinst.prg
* /V2 -> -V2 to make *nix shells happy.
+ config/ren_sfn.prg
- external/bzip2/cnv_hb2o.bat
- external/bzip2/cnv_o2hb.bat
+ external/bzip2/ren_sfn.txt
- external/libhpdf/cnv_o2hb.bat
- external/libhpdf/cnv_hb2o.bat
+ external/libhpdf/ren_sfn.txt
- external/pcre/cnv_o2hb.bat
- external/pcre/cnv_hb2o.bat
+ external/pcre/ren_sfn.txt
+ Replaced .bat method for converting long filenames to
short ones to a .prg script and simple text input file.
Also much of the logic is automatized.
* src/rtl/gtwvt/gtwvt.c
* Minor in old comment.
* INSTALL
- Deleted no more relevant restriction with HB_BUILD_PKG.
* contrib/hbwin/wapi_winuser.c
* contrib/hbwin/hbwin.ch
+ Added WAPI_SETWINDOWPOS() + relevant constants.
+ Added WIN_WS_* constants.
+ Added WAPI_ISICONIC(), WAPI_ISZOOMED().
* contrib/hbwin/tests/testax.prg
! Fixed to compile without warning.
* Using hbwin.ch.
* config/os2/gcc.mk
+ Readded OS/2 windres call in coff mode. Commented the whole
thing with NOTE. Seems like windres bug.
I left gccomf branch active, maybe they fixed it in those
more recent versions.
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk
! Fixed to not use '-O coff'. It generates strange error.
'-O omf' is still used, pls test it.
* utils/hbrun/hbrun.rc
* Trying to make it work for OS/2 and at the same time
lessen the chaos (f.e. using forward slashes in filenames).
* Makefile
- bin/postinst.prg
+ config/postinst.prg
* Moved postinst.prg from bin to config dir.
* config/postinst.prg
+ Changed to automatically build all tools found in /utils,
thus dropping hard-wired tool names from postinst.
* Minor cleanup.
* config/rules.mk
! Added hack to make it build hbpp after latest change.
Again hbpp, I couldn't find out what was the real problem,
so there may be a better fix.
* 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.
* contrib/hbssl/ssl.c
* contrib/hbssl/x509.c
* contrib/hbssl/sslctx.c
! Attempt to fix compilation error using 0.9.8m and 1.0.0betas.
* config/detect.mk
+ Enabled OpenSSL for bcc. I'm not exactly sure what is the factor here,
it used to work once, then it didn't, now it works again. Maybe related
to OpenSSL version. Now tested with 0.9.8m.
+ Enabled OpenSSL for watcom. Same as above, maybe 1.8 fixed it, maybe
new OpenSSL version. Maybe someone will invest time to find out.
! Disabled OpenSSL for wce platform. Again, the exact circumstances
are shady, but even 0.9.8m needs errno.h, which is not present
in C compilers targeting WinCE.
* 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.