* harbour/bin/hb-func.sh
* harbour/config/beos/libs.mk
! use network system library instead of socket in BEOS/HAIKU builds
* harbour/source/rtl/hbsocket.c
! translate protocol/address families in BEOS/HAIKU builds
Thanks to Tomas for locating both problems
* harbour/bin/hb-func.sh
* updated hb* scripts to work modified bast build conditions
* harbour/source/rtl/gttrm/gttrm.c
* added support for terminals with automatic scroll at maxrow,maxcol
position - now it's enabled for BSD console though it may be also
usable in other terminals with such behavior but it's hard to detect
it without real tests.
* harbour/source/rtl/filebuf.c
* clear FS error code in dummy close
* harbour/contrib/hbnetio/netio.h
* harbour/contrib/hbnetio/netiosrv.c
* added special error code which is used if some operation fails
but without setting hb_fsError()
* replaced const value with macro as Tomas suggested
* bin/hb-func.sh
* config/beos/libs.mk
* config/global.mk
* config/bsd/libs.mk
* config/darwin/libs.mk
* config/hpux/libs.mk
* config/dos/djgpp.mk
* config/linux/libs.mk
* config/sunos/libs.mk
* Renamed two variables to be in sync with latest changes:
HB_CRS_LIB -> HB_LIBNAME_CURSES
HB_SLN_LIB -> HB_LIBNAME_SLANG
(this one is not honored by GNU Make system)
; TOFIX: Honor HB_LIBNAME_SLANG in GNU Make system? Is that
needed in some cases?
* config/dos/djgpp.mk
+ Synced system lib/libpath logic with libs.mk found on
other platforms.
- bin/pack_src.sh
+ mpkg_src.sh
* Moved and renamed to align with rest of pkg creation scripts.
(this should also go to package dir once in the future)
* source/common/hbver.c
* Converted decimal version numbers to hex in BCC guards.
+ Added BCC version detections for old (pre-5.x) versions.
(Borrowed from xhb/Miguel Angel Marchuet)
- ERRATA
* doc/howtosvn.txt
* INSTALL
* bin/postinst.cmd
* bin/postinst.bat
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ Replaced ERRATA file (which was never updated), with a link
to bug/feature/etc tracker link in INSTALL.
* INSTALL
* Minor improvements.
* harbour/bin/hb-func.sh
* updated hb* scripts to work with HAIKU/BEOS
* harbour/source/vm/dynlibhb.c
* enabled dlopen()/dlclose() in HAIKU/BEOS builds
* added TODO warning in non DOS builds which does not support
dynamic library loading
* harbour/source/rtl/fserr.c
! fixed errno translation
* harbour/source/rtl/gttrm/gttrm.c
+ added support for CTRL+{UP,DOWN,RIGHT,LEFT} keys in HAIKU XTerm.
+ added hack for UP,DOWN,RIGHT,LEFT keys in HAIKU XTerm - it works
only locally.
* added two notes about problems with HAIKU XTerm which cannot be
cleanly resolved by us:
- reverted MIDDLE and RIGHT button
- UP,DOWN,RIGHT,LEFT use the same sequences as
CTRL+{UP,DOWN,RIGHT,LEFT} in XTerm 3.x.x
any hardcoded solution is wrong in such case because XTerm can
be used for remote access.
* harbour-win-spec
* harbour-wce-spec
* INSTALL
* bin/hb-func.sh
* config/detfun.mk
* config/global.mk
* Renamed HB_XBUILD to HB_BUILD_EXTDEF=no[|yes].
Not the perfect name, but anyway.
+ Documented HB_BUILD_EXTDEF setting.
; TOFIX: There is an HB_XBUILD reference in mpkg_tgz.sh which
I couldn't correct.
* Makefile
+ Moved building of external libs before utils.
This will allow to add embedded external libs which are used
by Harbour core.
* bin/postinst.bat
! Fixed for dos shells. (cmdline lenght problems, end of .cfg
extension was clipped on the longest line to .cf)
+ package/winuni
+ package/winuni/HARBOUR_README_MINGW
+ package/winuni/HARBOUR_README_MINGWARM
+ package/winuni/HARBOUR_README_ADDINS
+ package/winuni/HARBOUR_README_DJGPP
+ package/winuni/HARBOUR_README_POCC
+ package/winuni/HARBOUR_README_WATCOM
+ package/winuni/HARBOUR_README_MINGW64
+ package/winuni/mpkg_win_uni.bat
+ package/winuni/mpkg_win_uni_extra_copy.bat
+ package/winuni/RELNOTES
+ package/winuni/mpkg_win_uni.nsi
+ Added components needed to create unified Windows build.
Of course the dir structure with content should be assembled
manually. These files are rough ones, ease of use was no
concern.
Anyone please feel free to continue this work.
* config/darwin/clang.mk
+ Disable -c option to avoid warnings when --analyze user option is used.
* utils/hbmk2/hbmk2.prg
! Implemented fix from hbmk script for shared mingw targets in GUI mode.
* bin/hb-func.sh
! Synced wce .dll name with rest of Harbour.
* harbour/bin/hb-func.sh
* updated hb* script to work with import library and new
harbour.dll names.
+ added workaround for problem with shared linking in gui mode caused
by wrong import library in MinGW builds - without it hb* scripts
can work only with pure .DLLs
TOFIX: shared linking in gui mode does not work in hbmk2 at least
with MinGW cross builds I have in my Linux box, i.e.:
/*** tst.prg ***/
? "TEST"; WAIT
hbmk2 tst.prg -shared -gtwvt -mwindows
./tst.exe
-> Unrecoverable error 10001: It's not a GUI program
* bin/postinst.bat
+ Installation of hb-mkimp.bat will now be done automatically
at postinst phase for win/wce targets.
* config/detect.mk
! Fixed HB_INC_WATT handling if it contained backslashes
(broken after last commit)
% Avoid using indirect assigment by moving it after detection
function (it was a mistake in my previous commit).
* utils/hbmk2/hbmk2.prg
! Fixed to not apply compression in -hbcmp (and similar) modes.
! Adjusted rdd lib ordering to make some linkers (mingw) happy without
using lib grouping. Please review.
* bin/hb-mkimp.bat
* Little formatting.
* INSTALL
+ Little improvements.
* bin/hb-func.sh
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
! Fixed gpm lib to be added at the end of liblist to make
it link after removal of lib grouping switches.
* harbour/harbour.spec
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/bin/hb-func.sh
* harbour/contrib/Makefile
+ harbour/contrib/hbnetio
+ harbour/contrib/hbnetio/netio.h
+ harbour/contrib/hbnetio/netiomt.prg
+ harbour/contrib/hbnetio/netiocli.c
+ harbour/contrib/hbnetio/netiosrv.c
+ harbour/contrib/hbnetio/Makefile
+ added new library: HBNETIO.
It implements alternative RDD IO API which uses own TCP/IP sockets
to exchange data between client and server.
This library contains client and server code and is fully MT safe.
On client side it's enough to execute:
NETIO_CONNECT( [<cServer>], [<cPort>], [<nTimeOut>] ) -> <lOK>
function to register alternative NETIO RDD API and set default
server address and port.
<cServer> - server addres (default 127.0.0.1)
<cPort> - server port (default 2941)
<nTimeOut> - connection timeout (default -1 - not timeout)
Above settings are thread local and parameters of the 1-st successful
connection are used as default values for each new thread.
After registering NETIO client by above function each file starting
"net:" prefix is automatically redirected to given NETIO server, i.e.
use "net:mytable"
It's also possible to pass NETIO server and port as part of file name,
i.e.:
use "net:192.168.0.1:10005:mytable"
On the server side the following functions are available:
create NETIO listen socket:
NETIO_LISTEN( [<nPort>], [<cAddress>], [<cRootDir>] )
-> <pListenSocket> | NIL
accept new connection on NETIO listen socket:
NETIO_ACCEPT( <pListenSocket> [, <nTimeOut>] )
-> <pConnectionSocket> | NIL
start connection server:
NETIO_SERVER( <pConnectionSocket> ) -> NIL
stop connection accepting or connection server:
NETIO_SERVERSTOP( <pListenSocket> | <pConnectionSocket>, <lStop> )
-> NIL
activate MT NETIO server (it needs MT HVM):
NETIO_MTSERVER( [<nPort>], [<cAddress>] ) -> <pListenSocket> | NIL
To create NETIO server is enough to compile and link with MT HVM
this code:
proc main()
local pListenSocket
pListenSocket := netio_mtserver()
if empty( pListenSocket )
? "Cannot start server."
else
wait "Press any key to stop NETIO server."
netio_serverstop( pListenSocket )
pListenSocket := NIL
endif
return
NETIO works with all core RDDs (DBF, DBFFPT, DBFBLOB, DBFNTX, DBFCDX,
DBFNSX, SDF, DELIM) and any other RDD which inherits from above or
use standard RDD IO API (hb_file*() functions).
Without touching even single line in RDD code it gives the same
functionality as REDBFCDX in xHarbour but for all RDDs.
It's possible that such direct TCP/IP connection is faster then
file server protocols especially if they need more then one IP frame
to exchange data so it's one of the reason to use it in such cases.
Please make real speed tests.
The second reason to use NETIO server is resolving problem with
concurrent access to the same files using Harbour applications
compiled for different platforms, i.e. DOS, LINUX, Windows and OS2.
It's very hard to configure all client stations to use correct
locking system. NETIO fully resolves this problem so it can be
interesting alternative also for MS-Windows users only if they
do not want to play with oplocks setting on each station.
I'm interesting in user opinions about real life NETIO usage.
Have a fun with this new toy ;-)
+ harbour/contrib/hbnetio/tests
+ harbour/contrib/hbnetio/tests/netiotst.prg
+ harbour/contrib/hbnetio/tests/netiotst.hbp
+ harbour/contrib/hbnetio/tests/data
+ added simple test code for NETIO. It activates NETIO MT server
and then connects to this server to create and browse table with
memo file and production index with few tags.
* contrib/hbssl/bio.c
- Disabled feature which doesn't seem to be exported via
implibs.
+ contrib/hbssl/hbssls.hbc
+ contrib/hbssl/hbssls
+ contrib/hbssl/hbssls/Makefile
* contrib/hbssl/hbssl.hbc
* contrib/hbssl/Makefile
* Default hbssl lib is now created to link dynamically (on Windows).
+ Added static build of hbssl by the name hbssls, with new .hbc
file linking to static OpenSSL libs.
* contrib/hbssl/Makefile
+ contrib/hbssl/hbssls.hbc
* contrib/hbssl/hbssl.hbc
* bin/hb-func.sh
- Commented creation of dynamic libs. Now it's done on GNU Make
level.
* config/os2/gcc.mk
- Disabled os2/gcc .dll creation. If someone comes up with a working
solution we can readd it, but in current form it just broke os2/gcc
target with no short-term hope for a solution.
* source/common/hbver.c
+ Added "Embarcadero" to Borland C compiler name.
Borrowed from xhb / Andi Jahja
+ Readded also "Borland" to both Embarcadero and CodeGear compiler
names. Probably for most ppl "Borland" tells a hell lot more than
these names which keep changing every second year.
* contrib/gtwvg/Makefile
* contrib/hbtip/Makefile
* contrib/hbtip/hbtipssl/Makefile
* Formatting.
* bin/hb-func.sh
! Fixed recent mistake in gpm detection at postinst (now redundant)
dynlib generation phase.
* source/rtl/fssize.c
! Fixed warnings shown by mingw64 4.5.0.
* config/detfun.mk
+ Now accepting HB_WITH_* control variables in place of HB_INC_* once.
If HB_WITH_* is set it overrides HB_INC_*. Experimental yet.
* Minor in comments.
* config/detect.mk
* Minor correction for conf.mk inclusion.
* mpkg_deb.sh
* bin/hb-func.sh
* harbour.spec
* mpkg_tgz.sh
* HB_WITHOUT_GTCRS -> HB_INC_CURSES
* HB_WITHOUT_GTSLN -> HB_INC_SLANG
* HB_WITHOUT_X11 -> HB_INC_X11
* HB_GPM_MOUSE -> HB_INC_MOUSE (in few remaining hbmk script places)
; NOTE: After all this cleanup/leveling is done, probably
HB_INC_* variables will be changed to more standard
HB_WITH_* format. First I want to finish this part.
* mpkg_deb.sh
* mpkg_tgz.sh
* bin/hb-func.sh
* harbour.spec
+ HB_GPM_MOUSE -> HB_INC_GPM and HB_HAS_GPM depending on whether
it's a config var or a reaction to config (in postinst)
I've left some value in hbmk script which may need further
attention.
I didn't test these changes, please do.
* bin/postinst.bat
! Fixed to work without HB_TOP value. Regression after recent change.
* contrib/rddsql/sddmy/mysqldd.c
* contrib/rddsql/sddpg/pgsqldd.c
* contrib/hbbtree/hb_btree.h
* contrib/hbbtree/hb_btree.c
* source/vm/macro.c
* source/vm/hvm.c
* source/common/expropt2.c
* source/compiler/complex.c
! Fixed MSVC warnings.
Please review me, especially the date related ones in core.
* LONG -> long in hb_compExprReduceTimeStampPut().
; NOTE: Number of MSVC (32-bit) -W4 warnings are reduced to 280,
all of them in RDD code. (plus just few more here and there)
* INSTALL
+ Mentioning dosemu.
* bin/postinst.bat
+ dos shell flavour zip creation.
* config/global.mk
+ Added make platform detection.
+ Changed 'dos shell on win platform' warning to be based on make
platform.
+ Not showing 'dos make on win platform' warning when doing DJGPP
build because this is the right (and only) way in case of this
compiler.
* config/globsh.mk
+ Added command line length limit details for dos shell.
+ Added command line length limit for OS/2. Copied from other .mk file.
* config/dirsh.mk
* config/instsh.mk
- Deleted comments 'We have to use script to overcome the DOS limit of max 128 characters'
from all places.
* config/dos/djgpp.mk
+ Will now error if trying to use other than DJGPP make
to built with this compiler.
* bin/postinst.bat
+ Reworked to work better in cross-build/cross-shell scenarios.
* config/common/watcom.mk
! Use envvars to pass parameter either if shell is dos or target.
This fixes dos/watcom builds under non-dos shells.
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
* config/none.mk
! Fixed the way these dynamic lib targets are skipped.
* package/mpkg_win.nsi
* Changed to also work on trees using short names.
(only 'ChangeLog' is a problem here).
Maybe it's time to rename to CHANGES. It causing too much
headache.
* bin/postinst.cmd
* Sync with .bat.
* config/global.mk
+ Exporting HB_SHELL for postinst scripts.
! Fixed HB_PKGNAME assembly for dos targets.
! Typo in comment.
* config/win/bcc.mk
! Deleted dbl quotes from tlib commands as it totally confused it
under msys shell.
* 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).
* INSTALL
* Cleaned examples.
- Arranged them by host platform
- Fixed a few examples (DJGPP on NT missed HB_PLATFORM)
- Moved 'set HB_COMPILE' to make cmdline.
- Consistency changes.
- Deleted empty 'rem' lines.
- Moved log redirection from each example to general NOTE.
- Moved %1 %2 from example to general NOTE.
- Added generic *nix section.
- Added information about possible cross-build targets.
; Hopefully they are much cleaner now. In fact most information
deal with how to setup the compiler.
* config/global.mk
+ Added link to GNU Make free book.
% path checking functions rearranged, so now it can be indented.
+ Added log header line.
! Fixed to display only the first autodetect location.
* bin/postinst.cmd
* bin/postinst.bat
* bin/hb-func.sh
* Wording: 'Generating' -> 'Making'
* 'Harbour Make (hbmk2)' -> 'hbmk2' in generated hbmk.cfg.
* utils/hbmk2/hbmk2.prg
* Wording: 'Generating' -> 'Creating'
* include/hbsetup.h
* Minor in comment.
+ Also looking for __DARWIN__ to autodetect HB_OS_DARWIN.
* utils/hbmk2/hbmk2.prg
+ Honoring -quiet option for language file creation related screen output.
* INSTALL
* Some improvements.
* bin/postinst.bat
+ Added -quiet to hbmk2 cmdlines.
* bin/hb-mkimp.bat
- Not creating msvc implibs for QT .dlls anymore.
.dlls distributed in the QT binary package are using
Itanium ABI (built with MinGW/GCC), which isn't compatible
with ABI used by MSVC. Generating an implib is impossible here.
Those who want to use QT with MSVC Harbour builds should
rebuild QT .dlls from source, implibs will be generated
automatically in this case (I assume).
* config/global.mk
* config/darwin/gcc.mk
+ Added version macros similar to include/hbver.h ones.
% Using above version macros accross the build system.
+ Bumped minimum GNU Make version requirement to 3.81 (from 3.78).
If there is no negative feedback I'll clean some TOFIXes
which no longer apply, plus start cleanup on the make sources
to use more ideal 'else if' syntax.
+ Added commented 'cp' tool check on os2.
* config/global.mk
* config/instsh.mk
+ Reenabled CMDPREF logic.
* Changed os2 shell rules to use '$(CMDPREF)' instead of
hardwired '$(COMSPEC) /C'. Please don't undo it.
* bin/hb-mkdyn.sh
! Updated a default Harbour version number.
* source/pp/Makefile
- Deleted just added global.mk. It's not needed.
* config/globsh.mk
+ Added $(MV) variable with move command.
+ Added $(LN) variable with *nix link command.
! Fixed $(RM) in os2 shell rules to use os2-rm.exe
instead of shell provided del. Latter show errors
if filename doesn't exist, and we're now using
clean rules copied from dos shell, which doesn't
make extra existance checks. Well, to put it
shortly I've synced $(RM) with dos shell solution.
+ config/dj-mv.exe
* config/readme.txt
+ Added DJGPP mv tool.
* bin/hb-func.sh
! Fixed typo in syslib lone in a recent commit.
* config/global.mk
* INSTALL
+ Added HB_DYN_INSTALL envvar. This will tell where to copy
Harbour dynamic libraries. By default it's set to HB_LIB_INSTALL
for *nix targets and HB_BIN_INSTALL for non-*nix targets.
* bin/postinst.bat
- bin/hb-mkdyn.bat
- Deleted batch script to create .dlls. Now done from GNU Make
system. This means it work on all shells we support, not just
nt ones.
; TOFIX: Delete win-based gcc family support from hb-mkdyn.sh,
now it's redundant.
* harbour/bin/hb-func.sh
! do not strip system libraries in windows shared linking - unused
ones are not attached to harbour*.dll
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/olecore.c
+ added support to pass strings with embedded chr(0) characters
+ added new public C function:
IDispatch* hb_oleItemGet( PHB_ITEM pItem );
it extracts IDispatch* pointer from Harbour OLE pointer item.
+ added new public C function:
void hb_oleVariantUpdate( VARIANT* pVariant, PHB_ITEM pItem );
it updates pVariant structure using values from given pointer item
(used to update parameter passed by reference to activex event handler)
% optimized some code
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/axcore.c
+ added new public C function:
BOOL hb_oleAxInit( void );
+ added new public C function:
PHB_ITEM hb_oleAxControlNew( PHB_ITEM pItem, HWND hWnd );
It's C function with the same functionality as __AXGETCONTROL()
! allocate ISink structure using hb_xgrab() not hb_gcAlloc()
! initialize ISink reference counter to 0
! fixed Release() method to free all allocated resources when
reference counter reach 0
* return new Active-X control as Harbour OLE item pointer.
Warning !!! hb_parptr() and hb_itemGetPtr() do not return valid
pointer for controls created by hb_oleAxControlNew()/__AXGETCONTROL()
Use hb_oleItemGet() and hb_oleParam() to extract pointer to IDispatch
Please update existing code which used __AXGETCONTROL() pointers
at C level.
- removed not longer used hb_sink_destructor
! removed WIN_AXRELEASEOBJECT() - this function breaks reference counters
used by OLE object which needs strict updating to avoid memory leaks
(not freed OLE object) or GPF traps (accessing freed object)
+ extended Invoke() method to update OLE parameters passed by reference.
+ accept as event handler hash arrays indexed by event numbers and
values with codeblocks or function pointers. Similar functionality
exists in HWGUI when it's compiled with __USEHASHEVENTS macro and
it's much better then passing two arrays.
% optimized some code
Please test above Active-X modifications. I'm not MS-Windows user so
they have to be verified by real MS-Windows developers.
They should fix problems with memory leaks (OLE objects where never
freed) or GPF traps in C code which tired to strictly manage reference
counters.
To C programmers: if you increase reference counter to activex control
(AddRef()) then you have to release it (Release()) or activex control
will never be freed even after clearing all .prg references. It's
released only when last reference owner calls Release() method so now
valid code can keep references to IDispatch at C level without any
problem but it also means that this code can exploit problems in
existing wrong code.
* source/pp/Makefile
* bin/hb-mkdyn.bat
+ Deleting hbpp dynamic built object to not interfere with
harbour dll creation when picking up the objects with wildcard.
* Changed .dll creation script to not filter out above object
explicitly, it's not needed anymore.
* source/vm/mainwin.c
* source/vm/mainstd.c
* bin/hb-mkdyn.bat
+ Added hack to exclude any content when creating dynamic build
objects for win/watcom. Any content here breaks .dll creation
on this target.
* Changed .dll creation script to not filter out above objects
explicitly, it's not needed anymore.
* config/global.mk
% Changed CPU detection to use $(filter)
+ Added CPU detection based on wce compilers.
+ Showing detected host and target CPU architecture in log
(if it could be detected - this is currently only implemented
for non-*nix targets)
- Deleted host binary extension display in verbose mode.
- Deleted now unused HB_BUILD_VERBOSE option.
* config/global.mk
+ Added HB_DYN_VER variable to hold the version number used in Harbour
dynamic libary name.
* config/bsd/global.mk
* config/darwin/global.mk
* config/hpux/global.mk
* config/linux/global.mk
* config/os2/global.mk
* config/sunos/global.mk
* config/wce/global.mk
* config/win/global.mk
+ Added DYN_EXT variables for each platform.
* source/Makefile
* config/rules.mk
+ config/dyn.mk
+ source/dynlib
+ source/dynlib/mt
+ source/dynlib/mt/Makefile
+ source/dynlib/Makefile
* config/win/msvc.mk
+ Added experimental .dll building feature to the GNU Make system.
It's only implemented for MSVC yet.
The goal is to replace shell specific (postinst) solutions.
* utils/hbmk2/hbmk2.prg
+ Added darwin/icc support. Untested yet.
* source/vm/maindllp.c
! Fixed typo in prev commit.
* config/global.mk
* INSTALL
* bin/hb-mkdyn.sh
* bin/hb-mkdyn.bat
+ Added HB_USER_DFLAGS to add custom linker flags to .dll link command.
(just like in hbmk2)
- In hb-mkdyn.sh HB_USER_LDFLAGS deleted, now HB_USER_DFLAGS replaced it.
(HB_USER_LDFLAGS was missing from darwin link cmd)
* bin/hb-mkdyn.bat
! HB_DLLLIBS -> HB_DLLIBS
* config/global.mk
+ Added HB_DLLIBS to list of misc custom settings.
* INSTALL
+ Revision of OPTIONS AVAILABLE WHEN BUILDING HARBOUR section.
! Typo.
* harbour/bin/hb-func.sh
* use -I<path> parameter passed to Harbour compiler in hb* scripts
also with C compiler for C code inside #pragma begindump/enddump
* INSTALL
+ Added msvcarm examples (using MSVC 2008. 2005 should be similar).
* config/wce/msvcarm.mk
% Somewhat reduced number of macro options.
! Deleted debug switch from default c option list.
% Deleted a few more default c options.
! Added corelibc to syslib list.
! Cleaned linker flags to make it link. Some others
just removed, they seem not required.
* utils/hbmk2/hbmk2.prg
* Synced msvcarm settings with .mk.
* config/global.mk
* utils/hbmk2/hbmk2.prg
+ Added msvcarm autodetection to both GNU Make and hbmk2.
* config/wce/global.mk
* config/wce/poccarm.mk
* utils/hbmk2/hbmk2.prg
* bin/hb-mkdyn.bat
+ Added coredll to wce syslib list.
(required for msvc and pocc, optional for mingw)
; Now msvcarm builds, with a lot of warnings.
* contrib/hbxbp/tests/demoxbp.prg
! Opening test.dbf in RO mode to avoid it being update.
Couldn't spot the code which touched it.
* config/global.cf
- Deleted unused and commented code section.
* INSTALL
- Deleted HB_INSTALL_PREFIX from quickstart instructions.
! Modified hbmk2 hello.prg command to work on *nixes.
(I never tried this default scenario though)
* Modified non-*nix hbmk2 commands to look more natural
and similar to *nix.
- Deleted mingw32-make as suggested tool for dos builds done
on NT hosts. It chokes with too long cmdline with mingw32-make.
* bin/hb-mkdyn.sh
- Deleted wininet from wce liblist.
* config/global.cf
! Fixed to process HB_BUILD_NAME when forming package install dir
inside /pkg dir.
% Delete an unnecessary line.
* package/mpkg_win.nsi
* config/global.cf
* bin/postinst.bat
* Little bit changed the way dirs/names are communicated from
GNU Make to postinst package creation code.
The goal was to have an internal PKG_DIR var which is similar
to other *_DIR vars. It was also possible to delete some
exported vars this way.
- Disabled package creation for non-NT shells (= pure MS-DOS).
I found no way to make this work cleanly on pure MS-DOS.
+ Documented weird requirements of zip building. Also to better
clarify why abspath is needed in GNU Make.
* config/instsh.cf
* Updated OS/2 comment to clarify some issues according to
information from Maurilio.
* config/global.cf
* config/rules.cf
* config/dos/watcom.cf
* config/win/watcom.cf
* config/os2/watcom.cf
% Using HB_PRGFLAGS instead of HB_FLAGSEXTRA.
% Using HB_CFLAGS and HB_PRGFLAGS instead of HB_CDBG.
% Using HB_CFLAGS instead of HB_CUNICODE.
% Moved all flags from HB_RULE to HB_FLAGS (except HB_USER_PRGFLAGS).
This only affects dos/watcom, more cmdlines will be put in HARBOURCMD.
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* source/vm/maindllh/Makefile
* source/vm/maindllp/Makefile
* source/vm/vmmt/Makefile
* source/rtl/gtxwc/Makefile
* source/rtl/gtcrs/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/gtsln/Makefile
* contrib/gtalleg/Makefile
* contrib/hbmysql/Makefile
* contrib/hbodbc/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/Makefile
* contrib/hbfbird/Makefile
* contrib/hbcurl/hbcurls/Makefile
* contrib/hbcurl/Makefile
* contrib/gtqtc/Makefile
* contrib/rddsql/sddmy/Makefile
* contrib/rddsql/sddpg/Makefile
* contrib/rddsql/sddfb/Makefile
* contrib/rddsql/sddodbc/Makefile
* contrib/hbhpdf/Makefile
* contrib/hbpgsql/Makefile
* contrib/rddads/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbtip/hbtipssl/Makefile
* contrib/hbssl/Makefile
! Using HB_CFLAGS/HB_PRGFLAGS to specify Makefile local
compiler settings instead of modifying HB_USER_*FLAGS.
This way the double defines are gone.
+ Included global.cf to all Makefiles which needs to modify
HB_CFLAGS/HB_PRGFLAGS. Probably we should move global.cf
inclusion to the top of all Makefiles as a convention.
Not terribly elegant, but solves a few problems and
more efficient.
% Changed ', -I$(d))' to ',-I$(d))' along the way. This avoids
wasting an extra space in command line.
; NOTE: It'd still be beneficial to find a way to get rid of
'descend' rule. It could make cmdlines cleaner/shorter
and whole build process simpler/faster. I didn't manage
so far.
* source/vm/Makefile
* Deleted 'HB_USER_CFLAGS := $(subst -DHB_MT_VM,,$(HB_USER_CFLAGS))'
(since it's no longer supported practice to modify user supplied flags)
I'm not sure if it's important enough to have. AFAIK there is no
reason users use HB_MT_VM define, it's not a public setting, so we
shouldn't go too much far in trying to protect against its presence.
If it's needed, we should add 'HB_CFLAGS += -DHB_ST_VM' and handle
HB_ST_VM as the reverse of HB_MT_VM inside the source.
* source/rdd/dbffpt/dbffpt1.c
* source/rdd/dbffpt/Makefile
* Optimizations are now disabled using #pragma for __XCC__ instead of
deleting them from HB_USER_CFLAGS. Please test, and see above on
modifying HB_USER_CFLAGS in our make files.
* bin/postinst.cmd
! Deleted double quote from target dir in xcopy commands.
Blind change.
* utils/hbtest/rt_main.ch
* utils/hbtest/hbtest.hbp
* utils/hbtest/Makefile
+ Changed to use #pragma to turn on line numbers instead of
using HB_USER_PRGFLAGS (or HB_PRGFLAGS). This way there is
no need for Makefile hack/tweaks and it works with all make methods
automatically.
* config/instsh.cf
! Partially restored a few things which were lost without comments
in prev OS/2 commit:
- Formatting
- '@' prefixes
- '-' prefixes
* source/pp/Makefile
! Fixed to not throw harmless but still confusing error
messages when cleaning hbpp binary parts.
* bin/hb-mkdyn.bat
% Minor optimization in initialization.
- make_gnu_os2.cmd
- make_gnu.bat
- Deleted these starter batch files.
; Please use 'mingw32-make' (if installed in PATH) or
'config/mingw32-make' (if not installed in PATH) instead.
OS/2 users should use 'make'.
; OS/2 users will have to add:
set HB_USER_CFLAGS=-DTCPV40HDRS
to local configuration unless they used:
set HB_OS2_TCP32=yes
I'd like to ask OS/2 users to add (now deleted) related
documentation to one of our docs: INSTALL or include/hbsetup.h.
Since this was a setting to disable some default setup,
we can readd this setting with another name to
config/global.cf if needed. Pls tell me about it.
; TODO: Delete make_gnu.sh and/or integrate make_gnu_xmingw*.sh.
There is still two things which is done by make_gnu.sh:
- Detection for -fPIC option.
- Setting HB_INSTALL_PREFIX to system location.
(I don't like this, but it seems to be standard
behaviour on Linux, so we may want to change GNU Make
default logic according to that)
; TODO: Move mpkg_*.sh files with related support files to /package.
Best would be to integrate them to postinst.sh.
* INSTALL
+ Added TOFIX to one example: djgpp with NT shell will choke on
too long cmdline when building external/libhpdf.
; TOFIX: see above. (if possible. If it's too complicated we
should simply drop this scenario, after all DJGPP GNU
Make also works well.
* contrib/gtalleg/Makefile
* contrib/hbmysql/Makefile
* contrib/hbodbc/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/Makefile
* contrib/hbfbird/Makefile
* contrib/hbxbp/Makefile
* contrib/hbcurl/Makefile
* contrib/gtqtc/Makefile
* contrib/rddsql/sddmy/Makefile
* contrib/rddsql/sddpg/Makefile
* contrib/rddsql/sddfb/Makefile
* contrib/rddsql/sddodbc/Makefile
* contrib/hbhpdf/Makefile
* contrib/gtwvg/Makefile
* contrib/hbpgsql/Makefile
* contrib/rddads/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbwin/Makefile
+ Indentation.
* bin/hb-mkdyn.bat
! Fixed gcc family (mingw) .dll generation. New tricks
had to be employed to workaround 8K cmdline limits.
* contrib/hbwin/win_misc.c
* Implemented recent WinCE fix by Przemek for another
CreateProcess() call.
* utils/hbmk2/hbmk2.prg
* Cleaned system lib list for wce platform.
wininet, commdlg, commctrl libs moved from base to extra
system lib list. These libs aren't needed by Harbour code
code. [ No change in functionality, just synced with rest
of Harbour. ]
I didn't test yet, but seeing the content of this lib,
it's not needed for Harbour core code.
* config/wce/global.cf
* bin/hb-mkdyn.bat
% Deleted wininet wce system lib from liblist.
* config/wce/poccarm.cf
% Deleted winsock wce system lib from poccarm liblist.
ws2 should be enough. (I didn't retest the platform yet)
* config/wce/msvcarm.cf
* config/wce/global.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/cygwin.cf
* config/win/global.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/mingw.cf
* config/win/pocc.cf
* config/win/bcc.cf
% Moved system lib list definition to <arch>/global.cf files
for wce/win platforms.
This will ensure that compilers for the same platform will
always use the same system libs too.
Added reasoning in comment for each extra win system lib.
% Deleted the same meaningless comment line from all files.
* config/global.cf
+ Showing $(SHELL) variable content.
+ Added experimental support for explicitly changing $(SHELL)
variable for nt and dos shells. This should solve the
problem when mingw32-make is picking up sh.exe as shell if
cygwin or msys is in the PATH (or the user may also have
sh.exe laying around).
* INSTALL
% Deleted SHLVL hack from wce/mingwarm build config example.
Not needed anymore.
% Deleted "sh.exe mustn't be in the path" sentences.
Not needed anymore, now it can be in the PATH.
* make_gnu.bat
+ Readded calling sh for cygwin. (sorry I needed this personally
to keep the same interface for all cases on Windows, but I'll
think about this further, also to better cover mingw+msys case.
So this is rather temporary.)
* bin/postinst.bat
* Minor internal cleanup.
* bin/hb-mkdyn.bat
* config/lib.cf
! Fix for gcc family.
! Fixed to use /Y switch with move commands.
% Use automatically created .lib files instead of generating
them explicitly with pocc.
+ Move .exp file to lib dir with pocc.
! Three fixes for watcom .dll generation.
* config/global.cf
+ Plans added to cleanup lots of config vars with various names.
+ Added central OpenSSL detection by the name HB_HAS_OPENSSL.
This makes it possible to use OpenSSL in core or in any contrib
without much hassle.
* contrib/hbtip/Makefile
* contrib/hbssl/Makefile
+ Relying on central OpenSSL detection logic.
; TOFIX: For hbmk2 hbssl.hbc should be added explicitly to the
cmdline yet.
* config/instsh.cf
* Suppressing install copy command for cleaner output.
* ChangeLog
+ Marked items [DONE]
* INSTALL
* make_gnu.bat
- Deleted HB_BUILD_LOG option. This will have to be made
on the user side. It was a fresh feature and a Windows/DOS-only
one so I hope this isn't a big loss.
- bin/hb-mkpkg.bat
* bin/postinst.bat
% Integrated package creation code into postinst.bat.
* make_gnu.bat
- Deleted special handling of cygwin. make_gnu.sh should be
started directly, IMO not a big problem.
* config/global.cf
! Fixed pathseps in default HB_INSTALL_PREFIX.
! Fixed to use abs path when setting HB_INSTALL_PREFIX default.
(it's required by .nsi file to find the source files)
! Fixed setting HB_ARCHITECTURE for some win/dos-only HB_COMPILER
values.
+ --no-print-directory make flag isn't added if HB_USER_MAKEFLAGS
contains -w or --print-directory. Seems that simply adding these
flags after the former won't just reenable it.
- config/test.cf
- Deleted, no longer used.