* bin/postinst.bat
+ Added generation of libpq.lib from .dll for msvc. (not tested)
+ Added generation of QT implibs for msvc. (not tested)
+ Copying QT implibs for mingw.
* source/common/hbverdsp.c
! Minor in comment.
* utils/hbmk2/hbmk2.prg
+ Added MT support for C compilation phase.
Single input compilers aren't covered yet (gcc, pocc).
+ Added -debugtime internal option to measure running time.
* bin/postinst.bat
+ Added support for HB_BUILD_IMPLIB for mingw.
(only when using Windows shell to build it, which is now the
preferred method.)
ace32 implib method was applied to most other libs, too. I didn't
test it, it may need further tweaks. I'll tweak it gradually, with
hbmk2 it is probably better to use implibs from native locations
where possible (like we do for QT on all platforms and like we do
for all non-Win platforms), so even other compilers may get
further changes.
* bin/postinst.bat
! Fixed shared executable creation for cross-builds.
* utils/hbmk2/hbmk2.hbm
* utils/hbi18n/hbi18n.hbm
% Added -nulrdd. This will remove the hbmk2 build size overhead
compared to GNU Make built executables.
* utils/hbmk2/hbmk2.prg
! Don't add the same libdir twice in some cases.
+ Added support for wce arch in remaining places.
! Added hbmainwin and hbmainstd for mingw targets.
This should fix some failing shared lib scenarios I've
experienced with minwgce. I hope it doesn't break
everything else (tested mingw64 and mingw scenarios worked).
* Internal change to handle shared libname separately
so that special extensions and handling can be added
for it, if needed.
* harbour-wce-spec
* INSTALL
* bin/postinst.bat
* Makefile
* make_gnu.bat
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* contrib/gtalleg/Makefile
* contrib/hbodbc/Makefile
* contrib/hbtpathy/Makefile
* contrib/hbole/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/Makefile
* contrib/hbfbird/Makefile
* contrib/hbwin/Makefile
* source/vm/Makefile
* source/vm/vmmt/Makefile
+ Added wce arch and mingwarm/msvcarm/poccarm support.
In parallel with old win/mingwce|msvcce|poccce support.
As soons as this new one work, the old one will be deleted.
* make_gnu.bat
! Fixed to work like rest of targets for GCC family.
It will now only initiate a 'clean install' if HB_BUILD_DLL=yes.
* utils/hbmk2/hbmk2.prg
+ Added Przemek's code for rtlink/blinker script parsing.
Not yet activated.
* bin/hb-mkdyn.bat
* bin/postinst.bat
+ Added support for GCC family .dll creation. (Cygwin not tested)
This will also create .def files. Also implib .a files are possible,
code is there commented.
+ Added 'wce' ARCH support.
! Fixed to not include gtwin in WinCE .dlls.
+ Added support for HB_DLLIBS envvar.
; NOTE: The benefits of using cmd shell instead of msys to create
mingw builds is that hbrun-dll and hbtest-dll are also
created and you don't have use forward slashes in HB_INC_*
envvars. It also allows to more easily add implib creation
in the future. Overall the Windows build environment is
more uniform this way. msys build output though is much
sleeker and also seems faster.
If this method turns out to be okay, it may become the
default/support/standard way to build Harbour with MinGW
on Windows. (if not we can return to the msys method)
; TOFIX: Shared MinGW executables cannot be built if Harbour was built
with -DHB_DYNLIB. IMO this macro should be ignored in MinGW
builds as there is no separate DLL build and non-DLL.
[ I cannot fix this. ]
Until then I had to a hack to starter batch files.
* mpkg_win.bat
* Switched to use make_gnu.bat instead of make_gnu.sh to build
GCC family targets.
* make_gnu.bat
+ Added special codepath for GCC familty as it needs one pass only
to create .dlls.
* INSTALL
* Updated to reflect now possible non-msys MinGW build.
* Updated example to use non-msys flavours.
+ Readded MinGW + msys example.
% Minor simplification in mingw64/mingwce targets.
(HB_CCPATH no longer needed on Windows)
* bin/postinst.bat
! Fixed regression causing shared hbrun/hbtest binaries to
not be built on x64 targets.
* external/sqlite3/Makefile
! Removed header installer rules. There are no headers here
to install.
* tests/testhtml.prg
* Update by Vailton Renato applied.
* INSTALL
* Minor formatting.
* bin/postinst.bat
+ Minor cleanup to creation of hbrun/hbtest dll versions.
(now it's more difficult to mislead it by already existing
foreign .dlls)
* contrib/hbqt/Makefile
* contrib/hbapollo/Makefile
- Disabled for mingw64.
* contrib/rddads/rddads.h
+ Added workaround to compile under mingw64.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
! Fixed to _not_ override _WIN32_IE. Overriding these version
numbers is generally a very bad idea. Instead the code should
adapt to whatever values are defined by system headers.
This fixes most mingw64 errors. Please test other compilers.
* contrib/xhb/hbxml.c
* contrib/hbfimage/fi_winfu.c
* contrib/hbwin/wapi_commctrl.c
! Pointer/handle to integer conversion.
* contrib/gtwvg/wvgcuig.c
* contrib/gtwvg/wvgwin.c
! Fixed NULL used instead of 0.
! Fixed ISNIL() usage. GTWVG code is full of ISNIL() macros,
which makes the code prone to GPFs and other unexpected
behaviour when wrong type is passed. The solution is to
change all these to type specific IS*() macros.
; TOFIX: (core and all contribs)
C:/DOCUME~1/vszakats/LOCALS~1/Temp/ccVcE53g.s: Assembler messages:
C:/DOCUME~1/vszakats/LOCALS~1/Temp/ccVcE53g.s:20: Error: `0x0e10(%rax,%ecx,4)' is not a valid base/index expression
In these files:
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../hvm.c -ohvm.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../arrays.c -oarrays.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../asort.c -oasort.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../classes.c -oclasses.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../cmdarg.c -ocmdarg.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../debug.c -odebug.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../dynlibhb.c -odynlibhb.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../dynsym.c -odynsym.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../codebloc.c -ocodebloc.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../estack.c -oestack.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../eval.c -oeval.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../evalhb.c -oevalhb.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../extend.c -oextend.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../fm.c -ofm.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../garbage.c -ogarbage.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../hashes.c -ohashes.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../hashfunc.c -ohashfunc.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../itemapi.c -oitemapi.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../macro.c -omacro.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../memvars.c -omemvars.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../pcount.c -opcount.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../proc.c -oproc.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../pvalue.c -opvalue.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../runner.c -orunner.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../set.c -oset.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../thread.c -othread.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_FM_STATISTICS -DHB_MT_VM -c ../../../fm.c -ofm.o
../../dbfntx1.c: In function 'hb_ntxTagHeaderCheck':
../../dbfntx1.c:1054: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1054: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1055: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1055: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1055: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1055: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c: In function 'hb_nsxTagHeaderCheck':
../../dbfnsx1.c:1282: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1284: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1285: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1285: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1285: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1285: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c: In function 'hb_nsxPageFree':
../../dbfnsx1.c:1573: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1573: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1573: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1573: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c: In function 'hb_nsxPageNew':
../../dbfnsx1.c:1622: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1622: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1622: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1622: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../hb_btree.c: In function 'StackSkip':
../../hb_btree.c:643: warning: cast from pointer to integer of different size
../../hb_btree.c: In function 'Grow':
../../hb_btree.c:739: warning: cast from pointer to integer of different size
../../getenvrn.c: In function 'HB_FUN_FT_GETE':
../../getenvrn.c:178: warning: implicit declaration of function 'GetEnvironmentStrings'
../../getenvrn.c:178: warning: initialization makes pointer from integer without a cast
../../win_dll.c: In function 'DllExec':
../../win_dll.c:509: warning: cast from pointer to integer of different size
../../win_dll.c:603: warning: cast to pointer from integer of different size
../../win_dll.c:672: warning: cast to pointer from integer of different size
../../win_dll.c:689: warning: cast to pointer from integer of different size
../../hbserv.c: In function 's_serviceSetHBSig':
../../hbserv.c:638: warning: passing argument 1 of 'SetUnhandledExceptionFilter' from incompatible pointer type
../../firebird.c: In function 'HB_FUN_FBCREATEDB':
../../firebird.c:87: warning: initialization makes integer from pointer without a cast
../../firebird.c:88: warning: initialization makes integer from pointer without a cast
../../firebird.c: In function 'HB_FUN_FBCONNECT':
../../firebird.c:115: warning: initialization makes integer from pointer without a cast
../../firebird.c:143: warning: cast to pointer from integer of different size
../../firebird.c: In function 'HB_FUN_FBCLOSE':
../../firebird.c:149: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBSTARTTRANSACTION':
../../firebird.c:172: warning: cast from pointer to integer of different size
../../firebird.c:173: warning: initialization makes integer from pointer without a cast
../../firebird.c:179: warning: cast to pointer from integer of different size
../../firebird.c: In function 'HB_FUN_FBCOMMIT':
../../firebird.c:184: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBROLLBACK':
../../firebird.c:195: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBEXECUTE':
../../firebird.c:206: warning: cast from pointer to integer of different size
../../firebird.c:207: warning: initialization makes integer from pointer without a cast
../../firebird.c:215: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBQUERY':
../../firebird.c:249: warning: cast from pointer to integer of different size
../../firebird.c:250: warning: initialization makes integer from pointer without a cast
../../firebird.c:253: warning: initialization makes integer from pointer without a cast
../../firebird.c:270: warning: cast from pointer to integer of different size
../../firebird.c:375: warning: cast to pointer from integer of different size
../../firebird.c:379: warning: cast to pointer from integer of different size
../../firebird.c: In function 'HB_FUN_FBFETCH':
../../firebird.c:395: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBFREE':
../../firebird.c:419: warning: cast from pointer to integer of different size
../../firebird.c:421: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBGETBLOB':
../../firebird.c:613: warning: cast from pointer to integer of different size
../../firebird.c:614: warning: initialization makes integer from pointer without a cast
../../firebird.c:615: warning: initialization makes integer from pointer without a cast
../../firebird.c:624: warning: cast from pointer to integer of different size
../../fbirddd.c: In function 'fbConnect':
../../fbirddd.c:164: warning: initialization makes integer from pointer without a cast
../../fbirddd.c:192: warning: cast to pointer from integer of different size
../../fbirddd.c: In function 'fbOpen':
../../fbirddd.c:217: warning: initialization makes integer from pointer without a cast
../../fbirddd.c:218: warning: initialization makes integer from pointer without a cast
../../fbirddd.c:409: warning: assignment makes pointer from integer without a cast
../../fbirddd.c:410: warning: assignment makes pointer from integer without a cast
../../fbirddd.c: In function 'fbClose':
../../fbirddd.c:446: warning: passing argument 2 of 'isc_dsql_free_statement' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:629: note: expected 'isc_stmt_handle *' but argument is of type 'void **'
../../fbirddd.c:451: warning: passing argument 2 of 'isc_rollback_transaction' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:780: note: expected 'isc_tr_handle *' but argument is of type 'void **'
../../fbirddd.c: In function 'fbGoTo':
../../fbirddd.c:469: warning: passing argument 2 of 'isc_dsql_fetch' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:622: note: expected 'isc_stmt_handle *' but argument is of type 'void **'
../../fbirddd.c:531: warning: passing argument 2 of 'isc_dsql_free_statement' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:629: note: expected 'isc_stmt_handle *' but argument is of type 'void **'
../../fbirddd.c:538: warning: passing argument 2 of 'isc_commit_transaction' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:524: note: expected 'isc_tr_handle *' but argument is of type 'void **'
* bin/postinst.bat
- Removed generation of odbc32.lib for BCC.
You should configure BCC to include <bcc>/Lib/PSDK in
the lib paths in bcc32.cfg and ilink32.cfg. It's not
Harbour's job to generate it.
- contrib/hbodbc/tests/harbour.mdb
+ contrib/hbodbc/tests/test.mdb
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/odbccall.prg
* contrib/hbodbc/tests/testodbc.prg
* Created working test table from test.dbf.
(previous .mdb was broken)
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/odbccall.prg
* contrib/hbodbc/tests/testodbc.prg
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/browodbc.prg
* contrib/hbodbc/sql.ch
* Formatting.
* Optimizations and cleanups. (could still use a lot more)
! Fixed to not use Alert().
* bin/postinst.bat
+ Added owatcom and pocc support for implib generation.
* utils/hbmk2/hbmk2.prg
+ Fixed win/pocc support.
+ Added resource support for win/pocc.
+ Added .dll support for win/pocc.
+ Added win/xcc support (untested).
+ -DHB_DYNLIB is passed to C compiler in -hbdyn (.dll) mode
for win targets. (still need fixing to create usable .dlls)
; NOTE: pocc support is very limited as pocc compiler doesn't
support multiple input files.
* contrib/hbgt/strasint.c
% Using HB_ISDIGIT()
! Fixed to not include hbtrace.h directly.
* make_gnu.bat
% make clean and install phases merged in HB_BUILD_DLL mode.
* bin/postinst.bat
! Fix to recent change.
* include/hbdefs.h
! Moved #include hbtrace.h after HB_EXPORT is defined.
(hack)
* bin/postinst.bat
* mpkg_win.bat
* HB_DIR_IMPLIB -> HB_BUILD_IMPLIB
ATTENTION: Please modify your local settings. This setting
is now closer to final.
* mpkg_win.bat
+ Turning on optimizations.
+ Turning off debug mode.
* INSTALL
* make_b32.bat
* doc/gmake.txt
* bin/postinst.bat
* bin/hb-mkdyn.bat
* make_gnu.bat
* contrib/hbfimage/readme.txt
* contrib/examples/uhttpd/modules/bldhrb.bat
* source/vm/Makefile
* source/rtl/console.c
* source/compiler/gencobj.c
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/examples/winapi.hbp
- config/win/bcc32.cf
+ config/win/bcc.cf
* Long time TODO done: Renamed bcc32 compiler name to bcc.
bcc32 is still accepted by make_gnu.bat, but will be
removed in the future, so it's recommended to update
your local settings to use:
set HB_COMPILER=bcc
- config/dos/bcc16.cf
- Deleted bcc16 compiler support. I didn't work since ages,
and Harbour doesn't support 16-bit compilers anyway.
* INSTALL
+ Added more information.
(everyone trying to build Harbour from source
should read this first.)
* bin/postinst.bat
+ Added option to copy import libs belonging to
external tools for msvc and bcc32 to HB_LIB_INSTALL.
This is to keep this debated, but convenient feature
for the GNU-make world, until we find some better way
to deal with it. Now it's self contained, detached from
all important Harbour parts. And most importantly:
You don't have to use it, if you don't want to.
Now, if you want, set HB_DIR_IMPLIB to "yes" and
setup your HB_DIR_* dirs to the roots of the external
tool dirs, like this (adjust to your environment):
---
set HB_DIR_IMPLIB=yes
set HB_DIR_ADS=C:\devl\ADS910\ACESDK
set HB_DIR_ALLEGRO=C:\devl\allegro-4.2.2
set HB_DIR_APOLLO=C:\devl\Apollo-6.1.0.4
set HB_DIR_BLAT=C:\devl\blat-2.6.2
set HB_DIR_CURL=C:\devl\curl-7.19.0
set HB_DIR_FIREBIRD=C:\devl\Firebird-2.1.1
set HB_DIR_FREEIMAGE=C:\devl\FreeImage-3.11.0
set HB_DIR_GD=C:\devl\gd-2.0.34
set HB_DIR_LIBHARU=C:\devl\libharu-2.1.0
set HB_DIR_MYSQL=C:\devl\mysql-5.0.67
set HB_DIR_OPENSSL=C:\devl\openssl-0.9.8j
set HB_DIR_PGSQL=C:\devl\pgsql-8.3.3
---
(This may be tweaked in the future, so I don't
guarantee any compatibility for this stuff)
* bin/postinst.bat
* make_gnu.bat
* config/win/global.cf
* Renamed HB_DLL to HB_BUILD_DLL, which makes this GNU make
setting compatible with old non-GNU make.
* INSTALL
* make_gnu.bat
+ Added --install-with-dll option. This will build
and install Harbour with .dlls. Some examples:
--- for msvc:
call "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
set PATH=C:\devl\make-3.81;%PATH%
set HB_INSTALL_PREFIX=C:\devl\hbvc-1.1
call make_gnu.bat --install-with-dll > out.txt 2>&1
---
--- for bcc32:
set PATH=C:\devl\bcc55\bin;%PATH%
set PATH=C:\devl\make-3.81;%PATH%
set HB_COMPILER=bcc32
set HB_INSTALL_PREFIX=C:\devl\hbb32-1.1
call make_gnu.bat --install-with-dll > out.txt 2>&1
---
* make_gnu.bat
* make_gnu_os2.cmd
+ Will now automatically create the install destination dirs.
; TODO: Could someone please add this feature to make_gnu.sh?
* bin/postinst.bat
* bin/hb-mkdyn.bat
* Moved building dll flavoured executables to postinst,
so they will be rebuilt even if HB_DLL!=yes but .dlls
are available.
* contrib/Makefile
+ Added support for option: HB_CONTRIBLIBS=no.
This will disable building any Harbour contribs.
(no need to resort to hacks here anymore)
* utils/hbmk2/hbmk2.prg
* Minor on help screen.
* bin/postinst.cmd
* bin/postinst.bat
* bin/hb-func.sh
+ Added arch= and comp= variables to hbmk.cfg.
I plan to use these for autoconfiguration.
* make_gnu_os2.cmd
* make_gnu.bat
- Removed built in output redirection to make them in sync
with the bash flavour. Users can easily redirect it themselves.
* utils/hbmk2/hbmk2.prg
+ Formally added icc.
* config/win/msvcce.cf
! Untested fixes for msvcce in GNU make.
* utils/hbmk2/hbmk2.prg
! Fixed bug in path normalization which stripped leading
(root) path separator. Guy, could you please retest now?
- bin/hb-mkdll.bat
+ bin/hb-mkdyn.bat
* bin/postinst.bat
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* bin/postinst.sh
* bin/hb-func.sh
- bin/hb-mkslib.sh
+ bin/hb-mkdyn.sh
* Synced the name of these tools with similar function,
name also converted to 8.3.
; NOTE: lib/dll creation functionality (which is the
difference now between .sh and .bat flavour) may
once in the future be implemented in hbmk2. See
existing TODO there.
* bin/postinst.bat
! Protected command from pre-NT systems.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
+ hbmkcfg.hbp added to distros (I hope to all of them).
* ChangeLog
* Updated statuses of a few pending items.
* utils/hbmk2/hbmk2.prg
! Fixed bug which made gtwvt the default GT for mingw.
! Fixed to create final exe in current dir if no output
filename was specified and the first input file
contained a path.
* Changed to use version-less harbour shared lib names
on *nixes.
! Fixed to pass full path with harbour.so to gcc.
(even when Harbour isn't run from a system location)
! Fixed compilation/linking/cleanup if an input file
wasn't in current dir.
* Temp stub file is now created in system default temp dir,
instead of the current one.
+ Harbour shared lib path is normalized when Harbour
is found on system locations. (so '*/bin/../lib/' becomes
'*/lib')
* Better I hope handling of .so/.dylib/.sl/.dll files passed
on the command line.
* bin/hb-mkdll.bat
! Fixed typo in Borland MT .dll name.
! Fixed to not include maindll.obj, maindllp.obj in
Borland .dlls.
* Minor formatting and cleanup on internal names.
+ Added checking for source lib existence, showing
message if not found.
+ Better user feedback.
* bin/postinst.bat
+ Added running hb_mkdll.bat at the end of the build
process. For now users have to use 'set HB_DLL=yes'
to enable this features. It's experimental yet,
see previous comments.
* source/vm/Makefile
+ Now generating hbmainstd and hbmainwin for remaining
(non-mingw and non-mingwce) compilers. MSVC and BCC
need this for -shared linkage, I'm not sure about the
rest, anyhow we can disable it for other compilers
if it isn't needed in future.
* bin/hb-func.sh
% Refined hbmkcfg.hbp setup to better detect conditions.
* contrib/hbcurl/hbcurl.c
! Pacified this only one new gcc 4.3.3 warning.
* config/win/gcc.cf
* config/win/mingw.cf
+ Added -mtune=pentiumpro gcc optimization.
* utils/hbmk/hbmk2.prg
+ Added new TODOs.
+ Now using GTCGI as the GT.
+ Added -info option to enable informational output.
(currently this is the default for testing period)
+ Added -arch=<arch> command line option. Same as HB_ARCHITECTURE.
Added -comp=<comp> command line option. Same as HB_COMPILER.
envvars are kept for compatibility.
+ Added -hblnk option to give plave for hblnk script behaviour
emulation.
* Changed -cc, -cmp options to -hbcc, -hbcmp respecitvely.
+ Changed -hbcc, -hbcmp, -hblnk switches to turn off information
output and turn on quiet mode by default.
+ Added autodetection of architecture when unique to
architecture compiler is choosen manually. IOW, when
-comp=msvc|mingw|pocc|dmc|xcc is passed the architecture will
be set to win automatically. When -comp=djgpp is used,
dos will be selected.
! Fixed ordering of compiler autodetection because f.e. owatcom
bin dir holds a 'cl.exe', which made hbmk2 falsely detect msvc.
+ Added trick which I'm not sure I like, and may cause problems
and seemingly unpredictable behaviour, but could also help
in some environments where multiple compilers are setup in
parallel (this isn't a recommended scenario for various other
reasons, so maybe we shouldn't support it further). So from
now on the compiler autodetection will first look for the
compiler used to build hbmk2.exe, and check for the rest
afterwards. This feature is turned off for msvc builds of
hbmk2.exe because it breaks owatcom autodetection.
+ Added possibility to pass a plain dir by using -odir[\|/]
switch. The final name will be determined by first input
file name, if this one also has a dir, -o option will be
ignored. Added logic to handle separator differences, this
wasn't tested to a great deal.
+ Added -Wl,--start-group support for linux/gcc|gpp, win/mingw,
dos/djgpp.
! Fixed owatcom support to setup library paths.
! Fixed linux/owatcom to use link script.
* Some adjustments to win/owatcom C compiler settings. I guess
the ones in .cf should also need a cleanup.
* Few minor indentation problems fixed.
! C compiler and linker scripts now got an extension in
the generated temp filename to make some of them happy
(owatcom in this case). .cpl is used for compiler scripts,
.lnk for linker ones.
+ Compiler autodetection now also looks in hbmk2 executable
dir before looking into the PATH.
! Link script content was wrong due to typo.
! Fixed problem with library paths being wrong (doubly
decorated) in the link command. This may also fix some
problems with double extensions and final .c file cleanup.
! Fixed to add hbdebug lib when building in shared mode.
! Fixed typo in automatically adding './' on *nix systems.
; Please test, I definitely couldn't retest all scenaros
after all these changes.
* bin/postinst.bat
* Adapted change in mode modifier switches, also
added new -hblnk one.
* utils/hbmk/examples/winapi.hbp
+ Added mapi32.
+ utils/hbmk/examples/contrib.hbp
+ Added .hbp file for popular and portable only contribs.
* config/win/owatcom.cf
- Removed unnecessary system libs.
* contrib/hbvpdf/hbvpdft.prg
* hbwhat32 -> hbwhat in comment.
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/wapi_winuser.c
! Fixed harbour-project page link in header.
* contrib/hbwin/hbwapi.h
* Formatting (indenting the whole file content inside
self-guard isn't necessary.)
* bin/postinst.bat
+ Added generation of hbcc[.bat|.cmd], hbcmp[.bat|.cmd]
and hblnk[.bat|.cmd].
; NOTE: Available only when using GNU-make to build Harbour.
* utils/hbmk/hbmk2.prg
% Minor optimizations.
+ HB_USER_LIBS now gets automatic path separator adjustment.
* config/win/msvc.cf
! Added missing system libs.
! Tweaked C options to be like in non-GNU make.
* make_gcc.sh
* make_gnu.sh
- Removed compatibility with HB_ARCHITECTURE = w32.
* harbour/bin/hb-mkslib.sh
+ added -fPIC to GCC parameters - it's necessary on some platforms
+ use .sl suffix for shared library in HP-UX
* harbour/bin/hb-func.sh
+ use .sl suffix for shared library in HP-UX
* harbour/bin/postinst.bat
* removed < > from email address
* harbour/include/hbgtcore.h
* harbour/source/rtl/gtkeycod.c
* harbour/source/rtl/gtdos/gtdos.c
* harbour/source/rtl/gtos2/gtos2.c
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gtpca/gtpca.c
* fixed typo in function name - it should be hb_gt_dos_keyCodeTranslate()
not hb_gt_dos_keyCodeTanslate()
* harbour/make_tgz.sh
* updated for non GNU tar versions
* harbour/ChangeLog
* replaced TABs with SPACEs
* harbour/Makefile
+ harbour/make_bsd.sh
+ harbour/make_drw.sh
* harbour/make_tgz.sh
+ harbour/bin/hb-func.sh
* harbour/bin/pack_src.sh
+ harbour/bin/postinst.bat
+ harbour/bin/postinst.sh
* harbour/config/dir.cf
* harbour/config/bsd/gcc.cf
* harbour/config/bsd/global.cf
+ harbour/config/darwin/dir.cf
+ harbour/config/darwin/gcc.cf
+ harbour/config/darwin/global.cf
+ harbour/config/darwin/install.cf
* harbour/config/dos/dir.cf
* harbour/config/dos/global.cf
* harbour/config/dos/install.cf
* harbour/config/dos/owatcom.cf
* harbour/config/dos/watcom.cf
* harbour/config/linux/gcc.cf
* harbour/config/linux/global.cf
* harbour/contrib/Makefile
* harbour/contrib/dot/pp_harb.ch
* harbour/contrib/libct/Makefile
* harbour/contrib/libct/bit1.c
* harbour/contrib/libct/bit2.c
* harbour/contrib/libct/bit3.c
* harbour/contrib/libct/files.c
* harbour/contrib/libct/ftoc.c
- harbour/contrib/libct/invertwin.prg
+ harbour/contrib/libct/invrtwin.prg
* harbour/contrib/libct/keyset.c
* harbour/contrib/libct/makefile.bc
* harbour/contrib/libmisc/dates2.c
* harbour/contrib/rdd_ads/ads1.c
* harbour/contrib/rdd_ads/adsfunc.c
* harbour/contrib/samples/date.c
* harbour/include/dbinfo.ch
* harbour/include/hbapi.h
* harbour/include/hbapicdp.h
* harbour/include/hbapifs.h
* harbour/include/hbapigt.h
* harbour/include/hbapiitm.h
* harbour/include/hbcomp.h
* harbour/include/hbdate.h
* harbour/include/hbdbf.h
* harbour/include/hbdbferr.h
* harbour/include/hbdefs.h
* harbour/include/hbexprb.c
* harbour/include/hbexprc.c
* harbour/include/hbexprop.h
* harbour/include/hbmacro.h
* harbour/include/hbmath.h
* harbour/include/hbpcode.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrdddbf.h
* harbour/include/hbrdddbt.h
* harbour/include/hbrddfpt.h
* harbour/include/hbrddntx.h
* harbour/include/hbset.h
* harbour/include/hbsetup.h
* harbour/include/set.ch
* harbour/source/common/Makefile
* harbour/source/common/expropt1.c
* harbour/source/common/expropt2.c
- harbour/source/common/hbffind.c
* harbour/source/common/hbfsapi.c
* harbour/source/common/hbstr.c
* harbour/source/common/hbver.c
+ harbour/source/common/hbverdsp.c
* harbour/source/compiler/genc.c
* harbour/source/compiler/gencli.c
* harbour/source/compiler/harbour.c
* harbour/source/compiler/harbour.l
* harbour/source/compiler/harbour.slx
* harbour/source/compiler/harbour.sly
* harbour/source/compiler/harbour.y
* harbour/source/compiler/hbfix.c
* harbour/source/compiler/hbpcode.c
* harbour/source/compiler/hbusage.c
* harbour/source/compiler/simplex.c
* harbour/source/macro/macro.l
* harbour/source/macro/macro.slx
* harbour/source/macro/macro.y
* harbour/source/pp/ppcore.c
* harbour/source/rdd/dbcmd.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
- harbour/source/rdd/dbfcdx/dbfcdx1.h
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rtl/Makefile
* harbour/source/rtl/abs.c
* harbour/source/rtl/at.c
* harbour/source/rtl/datec.c
* harbour/source/rtl/dates.c
* harbour/source/rtl/dateshb.c
* harbour/source/rtl/datesx.c
* harbour/source/rtl/empty.c
* harbour/source/rtl/errorapi.c
* harbour/source/rtl/errorint.c
* harbour/source/rtl/filesys.c
* harbour/source/rtl/fstemp.c
+ harbour/source/rtl/hbffind.c
* harbour/source/rtl/hbrandom.c
* harbour/source/rtl/idle.c
* harbour/source/rtl/inkey.c
* harbour/source/rtl/math.c
* harbour/source/rtl/minmax.c
* harbour/source/rtl/pad.c
* harbour/source/rtl/padc.c
* harbour/source/rtl/padl.c
* harbour/source/rtl/padr.c
* harbour/source/rtl/philes.c
* harbour/source/rtl/round.c
* harbour/source/rtl/soundex.c
* harbour/source/rtl/str.c
* harbour/source/rtl/strcase.c
* harbour/source/rtl/strmatch.c
* harbour/source/rtl/strtran.c
* harbour/source/rtl/strzero.c
* harbour/source/rtl/substr.c
* harbour/source/rtl/val.c
* harbour/source/rtl/gtcrs/gtcrs.c
* harbour/source/rtl/gtcrs/kbdcrs.c
* harbour/source/rtl/gtdos/gtdos.c
* harbour/source/rtl/gtsln/gtsln.c
* harbour/source/rtl/gtsln/kbsln.c
* harbour/source/rtl/gtsln/keytrans.c
* harbour/source/vm/arrays.c
* harbour/source/vm/codebloc.c
* harbour/source/vm/estack.c
* harbour/source/vm/eval.c
* harbour/source/vm/extend.c
* harbour/source/vm/hvm.c
* harbour/source/vm/itemapi.c
* harbour/source/vm/macro.c
* harbour/source/vm/memvars.c
* harbour/source/vm/runner.c
* harbour/tests/bldtest/bldtest.c
* harbour/utils/hbtest/hbtest.prg
* harbour/utils/hbtest/rt_misc.prg
* harbour/utils/hbtest/rt_str.prg
* Sorry but it's too much modification for full description
cvs diff gives file 785982 bytes length. So I only count the
main things:
! cleand the code (no more warning messages under Linux and GCC and
DOS OpenWatcom) - some of them were real bugs
! cleaned all endian dependend code I've found - now Harbour can be
compiled on LITLE and BIG endian machines - for some other like
PDP ENDIAN it's enough to define proper macros in hbdefs.h
+ added macros for to get/put values in chosen byte order:
HB_GET_LE_[U]INT{16,24,32,64}( pPtr )
HB_GET_BE_[U]INT{16,24,32,64}( pPtr )
HB_PUT_LE_[U]INT{16,24,32,64}( pPtr, nVal )
HB_PUT_BE_[U]INT{16,24,32,64}( pPtr, nVal )
+ added macro HB_CAST_BYTE_NUMBERS_OFF which disables casting in
HB_{GET|PUT}_{LE|BE}_* macros - it's necessary for some platforms
like ALPHA DEC.
! cleaned the code for 64bit machines
* changed all parameters in hb_date* functions (day, month, year, week)
from LONG to int - it doesn't change binary compatibility for 32bit
machines but can cause troubles with compiling the old source
+ changed HB_IT_LONG type to HB_LONG which is mapped to long long
by default for 32 bit machines.
+ change HB_IT_INTEGER to be real 'int' C type not 'short int'
+ added HB_IS_NUMINT() macro
+ added hb_parnll, hb_stornll, hb_retnll, hbretnlllen, hb_itemPutNLL,
hb_itemPutNLLLen, hb_itemGetNLL which operates on LONGLONG
+ added hb_parnint, hb_stornint, hb_retnint, hb_retnintlen,
hb_itemPutNInt, hb_itemPutNIntLen, hb_itemGetNInt which operates on
HB_LONG
+ added HB_PUSHLONGLONG pcode
+ changed compiler and optimizer to use HB_LONG numbers and reduce
conversion from to double which may damage the 64bit number.
+ common functions for string to number conversions for compiler, RTL
and RDD to reduce problems with differ FL values for the same number:
hb_compStrToNum(), hb_valStrnToNum(), hb_strToNum(), hb_strnToNum()
+ common function hb_numRoun() which uses exactly the same algorithms
as string to number conversion for the same reason - please keep
this functions together.
+ hack inside hb_numRound() similar to the one used by CL5.3
+ hb_numInt() which uses uses the same hack as hb_numRound()
+ rewritten number to string conversion
+ some new string manipulation functions hb_strncpy(), hb_strncat(), ...
They works differ the the C one - always set 0 at the end, the buffer
has to be n+1 bytes length, the n is total size of buffer not the
left free space.
! cleaned some code which operates on ASCIIZ string to avoid potential
buffer overflow
+ updated RDD code - it's the first part - in few days I plan to change
workarea structure in both projects - it will break any 3rd party RDDs
so they have to be updated. I want to add SUPERTABLE into workarea
to allow creating new RDD on-line.
! cleaned the bugs with negating integers - on most machines (like x86)
the integers are not 0 symmetric - it means that x = -x does not work
for {INT,LONG,LONGLONG}_MIN (hb_vmNegate, ABS())
+ cleaned error messages to be Clipper compatible.
+ updated build process for .DEB packages - now hb* scripts and shared
libs are created by standard make install
* added new .prg #defines: __PLATFORM__<cPlatfrom>,
__ARCH{16|32|64}BIT__, __LITTLE_ENDIAN__|__BIG_ENDIAN__|__PDP_ENDIAN__
!!! cPlatfrom can have lower letters (for xHarbour compatibility)
If you do not like it please change it.
* others ...