* harbour/config/win/watcom.cf
* added SYS NT to link options - it's default in Windows builds but
is necessary in cross builds
* harbour/config/global.cf
* small modification in platform checking order to reduce possible
interactions with some extended host information
+ added automatic HB_BIN_COMPILE setting based on binaries located
in PATH.
! export some variables to avoid repeated setting in recursive calls
what causes some bad side effects, i.e. multiple __PLATFORM__*
macro settings in cross builds what was breaking cross compilation
and also slow down the whole build process.
* config/instsh.cf
* config/dirsh.cf
* config/globsh.cf
% Grouped non-bash (batch) initializations to reduce redundancy.
* Changed 'md' command to 'mkdir' in OS/2 and DOS, just to be
in sync, mkdir is available in all shells.
+ Added links to good multiplatform batch docs.
* utils/hbmk2/hbmk2.prg
+ Added ability to start -gui targets on OS/2.
* include/hbextern.ch
* source/lang/Makefile
+ source/lang/msguados.c
+ Added Ukrainian language module for cp1125.
(borrowed from xhb, work of Pavel Tsarenko.)
I've made a few corrections compared to xhb:
- Using the same internal name as filename for
consistency with other language modules
(UADOS instead of UA1125).
- Fixed date format which must only contain YYYY, MM, DD
regardless of the CP/language used, since it's a picture mask.
- Formatting (semicolon, spaces, deleted embedded $Id$ not
needed with SVN)
- Added to hbextern.ch.
* source/lang/msguakoi.c
* source/lang/msgua866.c
* Two corrections to internal name.
(borrowed from xhb, work of Pavel Tsarenko.)
; QUESTION: I wonder why the texts are very much different in
Harbour and xhb. Someone familiar with Ukrainian
language and encodings should check this, only one
of them can be right and all CPs should be synced
with each other the only thing being different is
the encoding.
* source/codepage/msguakoi.c
! Fixed one letter.
* source/codepage/cpuawin.c
* source/codepage/cpua1125.c
* source/codepage/cpua866.c
* source/codepage/cpuakoi.c
* Added "CYRILLIC LETTER GHE WITH UPTURN" letter.
(borrowed from xhb, work of Pavel Tsarenko.)
* make_gnu_os2.cmd
* make_gnu.bat
* make_gnu.sh
% Deleted install dir creation. Now done from GNU Make.
* make_gnu_os2.cmd
* Installs libs in lib/<arch>/<comp> by default just like
win/dos builds.
* config/instsh.cf
! Fixed missing semicolon.
* config/rules.cf
* Minor in comments.
* include/hbsetup.h
* source/common/hbprintf.c
- Removed temporary enabler logic, here testing is over.
* config/instsh.cf
+ Implemented automatic creation of install dir for all shells.
(only nt and dos were tested, os2 should be okay since it's the
same as dos.)
+ Implemented to ignore empty install dir. This can be useful in
practice although make_gnu.* starter scripts mask this feature yet.
(bash gave an error so far on empty install dirs, this is now
changed)
* doc/en-EN/Makefile
- Deleted ending slash from DOC_SUBDIR.
- config/hpux/dir.cf
* config/hpux/global.cf
- config/hpux/install.cf
- config/darwin/dir.cf
* config/darwin/global.cf
- config/darwin/install.cf
- config/dos/dir.cf
* config/dos/global.cf
- config/dos/install.cf
* config/win/global.cf
- config/win/install.cf
- config/win/dir.cf
- config/linux/dir.cf
* config/linux/global.cf
- config/linux/install.cf
- config/os2/dir.cf
* config/os2/global.cf
- config/os2/install.cf
- config/sunos/dir.cf
* config/sunos/global.cf
- config/sunos/install.cf
- config/bsd/dir.cf
* config/bsd/global.cf
- config/bsd/install.cf
- config/wce/dir.cf
* config/wce/global.cf
- config/wce/install.cf
* Minor change in dos specific dirbase:: checks. Should be
equivalent.
* darwin/gcc was running RANLIB on install. I've removed
this for now and if ranlib is required on Darwin, it
should be readded to gcc.cf.
* config/os2/gcc.cf
* Changed to not rely on LIB_FILE_OS.
* config/dir.cf
+ config/dirsh.cf
* config/global.cf
+ config/globsh.cf
* config/install.cf
+ config/instsh.cf
! Fixed NT vs dos shell detection. (hopefully)
+ Shell dependent logic merged and moved into new *_sh.cf
files. The filename is ugly, but couldn't yet find a better one.
This means a great deal of redundancy is now removed, plus
now cross-platform combinations aren't limited by missing
shell support. New shells can now be added with much less work.
; Please test, it's possible that I made some mistakes along the way,
and haven't tested bash yet. Nor OS/2 obviously.
* config/global.cf
* config/win/global.cf
* config/linux/global.cf
* config/os2/global.cf
* config/wce/global.cf
+ Changed host CPU detection.
+ Added automatic __PLATFORM__* macro configuration in cross-build
situations.
+ Enhanced target/host CPU detection and decisions based on them.
+ Added automatic HB_BIN_COMPILE setup if not specified by user.
In such case Harbour build will automatically look for the first
available native build and use that.
+ Protected detection related screen messages with HB_BUILD_VERBOSE=yes.
* Minor sync in shell command definition order.
* INSTALL
% User set __PLATFORM__* macro tweaks not needed anymore.
* bin/postinst.cmd
* bin/postinst.bat
* bin/hb-func.sh
* addins -> addons
(hm, which is better?)
* config/dos/global.cf
* config/global.cf
* config/win/global.cf
* config/linux/global.cf
* config/os2/global.cf
* config/wce/global.cf
+ COMSPEC detection centralized. Added command.com defaulting in DOS shells.
* Some 'MK:=' changed to 'MK='. (maybe ':=' is the correct one, I just
syncing yet)
+ Added IA64 detection.
+ Not giving warning on missing HB_BIN_COMPILE on some host-target
combinations which don't require it (win32 on win64 and dos on win32).
* config/dos/global.cf
% Simplified an if construct. QUESTION added.
* harbour/harbour.spec
! fixed RPM building after recent modification in Makefiles
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* updated for new binary files directory and HB_BIN_COMPILE meaning
* harbour/source/pp/Makefile
* harbour/config/rules.cf
! fixed binary extension used to execute hbpp and harbour,
AFAIK in current version it should be HB_HOST_BIN_EXT not EXE_EXT
* harbour/config/global.cf
! fixed host architecture autodetection:
@uname = $(shell uname -a)
does not execute command silently but creates envvar '@uname'
% added function for host detection and extended host detection
rules to work with some envvars
% test some known OS envvars before calling uname
! use 'uname -s' instead of 'uname -a' which may cause wrong host
detection when host name contains some string we are looking for
! set .exe in HB_HOST_BIN_EXT for win_amd64
* include/Makefile
+ include/hbextcdp.ch
* include/hbextern.ch
* utils/hbmk2/hbmk2.prg
+ Separated EXTERNAL HB_CODEPAGE_* lines to hbextcdp.ch.
These are commonly needed by apps.
* Using hbextcdp.ch in hbmk2.
; TODO: hbextern app needs to be updated to filter out
CODEPAGE symbols.
* source/pp/Makefile
* source/pp/hbpp.c
+ hbpp is now accepting directory for -c parameter and in this
case it will check ChangLog names in specified dir.
+ Modified make file to pass dir to hbpp so now it configures
itself automatically no matter where we move the object directory.
; Please review me.
* config/global.cf
+ Enabled base directory for all intermediate build files
(objects, Harbour generated .c files, etc).
Now they will be put under 'obj' dir inside each source
directory.
After this huge task, it's now possible to filter out
all these intermediate files from grep, hbextern commands.
For me this means I can do without a parallel virgin
repository kept for grep usage.
* examples/hbextern/hbextern.prg
* Filtering obj dirs instead of all platforms specifically.
* config/c.cf
! Fixed to use $(GRANDP) instead of hard-wired ../../ dir.
Please verify me.
; Przemek, you can now go on, the only remaining larger thing
is moving install dir creation to GNU Make level.
* config/dos/global.cf
* config/global.cf
* config/linux/global.cf
* config/os2/gcc.cf
* config/os2/global.cf
* Finished internal support for obj base dir. In next step
I'll enable it.
* config/global.cf
+ Added new shell detection logic (not used yet)
+ Added experimental HB_HOST_ARCH (host architecture) and
HB_HOST_BIN_EXT detection. Extra screen messages will be
deleted later.
Currently 3.81 GNU Make is required (for the screen messages).
+ Moved DIRSEP init here.
+ Moved CMDPREF init here.
+ Moved CompSpec detection here.
* config/none.cf
% Using global.cf for some central logic.
* config/c.cf
* config/rules.cf
% DIRSEP init deleted, now in global.cf
* source/pp/Makefile
- Removed HB_PPGEN_PATH setting. Now HB_BIN_COMPILE is used to
point to the directory where all native executables are to be
found. This means you can simply delete HB_PPGEN_PATH from
your local settings.
; NOTE: Please update make_gnu_xmingw*.sh script accordingly,
it should probably accept (detect) HB_BIN_COMPILE and
drop HB_COMP_PATH / HB_PPGEN_PATH settings.
Or, we should define some new ways to define cross
builds replacing the current mess (there is also
HB_XBUILD). I'd vote for these envvars:
- HB_HOST_ARCH (linux, win, dos, os2, etc...)
- HB_HOST_BIN (dir of native executables)
- HB_HOST_BIN_EXT (.exe or empty)
* INSTALL
* Updated cross-build sections and deleted make_gnu_xmingw*.sh
related exception to keep instructions clean.
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/hbwapi.h
! Fixed to compile under various other win compilers.
! Added missing WinCE protections. (notice all tools are freely
available to check these and avoid breaking builds)
Added non-WinCE branch to return dummy values.
! Formatted: (_WIN32_IE >= 0x0300) -> ( _WIN32_IE >= 0x0300 )
! Fixed non-ANSI comments.
! Fixed warnings, and there is still some dubious comversions
in there like HANDLE - HTREEVIEW and RECT passings. I wonder
if it is possible at all to create clean Windows API code.
; NOTE: Please take care of above stuff, it's not a pleasure
to be the cleaner of such code, but it breaks builds
to it must be done all the time.
; NOTE: I'd like to recommend adding only Windows API functions
which are available on all Windows platforms (WinCE,
Win64) otherwise it will be more difficult to build
anything portable on top of them.
; QUESTION: Why many functions are disabled with #if 0?
* config/hpux/install.cf
* config/darwin/install.cf
* config/dos/install.cf
* config/win/install.cf
* config/install.cf
* config/linux/install.cf
* config/os2/install.cf
* config/sunos/install.cf
* config/bsd/install.cf
* config/wce/install.cf
! Restored previous install rule setup, to fix hbpp combined
lib/bin install case.
; QUESTION: How to use multiple commands in a non-bash (= batch)
INSTALL_RULE variable? This would be needed to support
automatic addition of install dirs with non-bash shells.
* source/pp/Makefile
* config/rules.cf
* config/darwin/gcc.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/global.cf
* config/lib.cf
* config/win/watcom.cf
* config/bin.cf
* config/linux/watcom.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
+ Now all binaries will be created inside bin/<arch>/<comp>,
instead of the work/obj dir.
; Please test. (I didn't test cross-compilation yet, but maybe
now it's a better time to cleanup the HB_PPGEN_PATH, HB_BIN_COMPILE
settings and drop the former.
! Reverted prev cleanup.
; TOFIX: install rule for hbpp lib doesn't work after recent
change.
; TODO: Delete HB_PPGEN_PATH
* config/darwin/install.cf
* config/hpux/install.cf
* config/dos/install.cf
* config/install.cf
* config/win/install.cf
* config/linux/install.cf
* config/os2/install.cf
* config/sunos/install.cf
* config/bsd/install.cf
* config/wce/install.cf
* Little tweak to install rules to allow multiline rules
on non-bash shells.
Maybe there is another way, but couldn't find it.
; This is a step towards moving install dir creation to
GNU Make level.
* source/rtl/hbinet.c
* Formatting, cleanup.
* Few types cleaned. Although many 'int's seems better be 'long',
I didn't touch it.
Please review. No functionality should change.
! HB_INETSTATUSDESC() to always return string if socket is valid.
* config/darwin/global.cf
* config/hpux/global.cf
* config/dos/global.cf
* config/win/global.cf
* config/linux/global.cf
* config/os2/global.cf
* config/sunos/global.cf
* config/bsd/global.cf
* config/wce/global.cf
+ Added dir creation for executables.
This is a preparation step towards generating executables
inside bin/<ARCH>/<COMP>.
* Dir creation on OS/2 shells changed a bit, I hope it works,
and I'm not sure if it was intentional to use a different
solution than DOS/NT shells, since there is only GNU Make
logic involved. Anyhow, please test.
* config/dos/global.cf
% Deleted (unused) RANLIB reference.
* config/win/bcc.cf
! Restored branch to use link script to avoid cmdline length
limits present on some NT systems.
Also fixed to work on paths with spaces.
* config/bin.cf
* Minor cleanup to prev.
* config/bin.cf
* config/lib.cf
+ Preparation for moving the generated binaries in:
bin/<ARCH>/<COMP>
* contrib/hbwin/hbwapi.h
* contrib/hbwin/wapi_commctrl.c
+ Added TreeView_* functions under namespace HB_FUNC( WAPI_TREEVIEW_* ).
NOTE: Please check for different compilers/platforms. I have tried to confine
functions in #ifdef but these may be limited.
* contrib/hbxbp/xbpfontdialog.prg
* contrib/hbxbp/xbprtf.prg
+ Implemented :print( oXbpPrinter, lOnlySelection ) in XbpRTF() class.
TODO: <lOnlySelection> is not functional yet.
+ Implemented :selFont GETSET METHOD - Harbour Extension - this accepts
XbpFont() object as new font.
* contrib/hbxbp/tests/demoxbp.prg
+ Demonstrated the use of XbpFontDialog() with XbpRTF().
1. Click on <Rtf> tab.
2. Select some text.
3. Click on <Font> Push Button - it will open Font Dialog on the left-top corner.
4. Move around in the font dialog, select every factor available, change it,
you will see the effects on selected text in <Rtf>.
* harbour/source/rtl/gtwin/gtwin.c
* added code to disable/enable mouse input by:
hb_gtInfo( HB_GTI_MOUSESTATUS, <lOnOff> )
It's possible that hb_gtInfo( HB_GTI_MOUSESTATUS, .F. ) will also
disable mouse cursor in full screen mode but I haven't tested it.
Please check.
* source/rtl/gtwin/gtwin.c
* Minor formatting.
* source/rtl/gtapi.c
% hb_gtSetCursor(): Deleted parameter evaluation.
It's better to do it only on low-level.
* config/win/bcc.cf
% Line deleted.
* utils/hbmk2/hbmk2.prg
+ -nohblib now supported in scripts.
+ -nohblib- option added.
* examples/pp/pp.hbp
* Comment deleted.
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpgeneric.prg
! Changed the way AppEvent() eventloop was being executed.
Not it is more near to Xbase++, not 100% but near.
CPU consumption is reduced to 2-3 percent.
* contrib/hbxbp/xbprtf.prg
+ Implemented more XbpRTF() features.
* contrib/hbxbp/tests/demoxbp.prg
+ Demonstrated more XbpRtf() features.
Play with Rtf tab.