* INSTALL
+ Added DJGPP cross-builds to support matrix.
+ Added DJGPP bash.exe to the shell mix.
+ Added OS/2 bash.exe to the shell mix.
; NOTE: djgpp build fails here when using bash too
(I've used a Windows machine to test), see below.
* ChangeLog
* Updating pending item status.
* contrib/hbbtree/hb_btree.c
! Added TOFIX about bad bug. (hitting win64, maybe more)
Reported on the list a while ago.
* utils/hbmk2/hbmk2.prg
- Deleted HB_CCPATH support for *nix based gcc/icc compilers.
To be in sync with GNU Make files.
+ Added HB_CCPATH support for os2 and dos.
+ Added HB_CCPREFIX and HB_CCPOSTFIX support for dos/djgpp to
support cross-builds.
+ Using host dependent executable extension for compiler
tools in dos/djgpp to support cross-builds.
* config/wce/mingwarm.mk
* config/win/mingw.mk
+ Added HB_CCPOSTFIX support. Now in sync with rest of gcc
family compilers in GNU Make and with hbmk2.
* config/win/cygwin.mk
+ Added HB_CCPATH, HB_CCPREFIX, HB_CCPOSTFIX support.
To be in sync with rest of gcc family compiler in GNU Make
and with hbmk2.
* config/dos/djgpp.mk
+ Added HB_CCPATH, HB_CCPREFIX, HB_CCPOSTFIX support for
dos/djgpp.
! Fixed to only give error when using non-DOS build of
GNU Make on a Windows host.
; NOTE: Tried the bld process with bash.sh, and it starts
when using nativ DOS make.exe, but it fails also
with 'Bad command or file name' and 'No command name seen.'
when building hbcommon lib. Same effect when using
msys. So I conclude our djgpp make files are broken
for POSIX shells, I hope someone else can also do
tests.
* config/os2/gcc.mk
+ Added HB_CCPATH support.
To be in sync with rest of gcc family compiler in GNU Make
and with hbmk2.
* config/win/bcc.mk
! Readded dbl quotes around tlib filename. This breaks tlib
on msys shells. The real problem is caused by /P64 option.
Fix unknown, besides avoiding msys shell+bcc target
combination.
* contrib/hbfbird/Makefile
* Indented/rearranged.
* utils/hbmk2/hbmk2.prg
! Fixed silly regression in 2009-08-23 15:56 which cause RTE on
startup if no comp/plat were specced.
* utils/hbmk2/hbmk2.prg
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/win/xcc.mk
* config/win/pocc.mk
* config/win/icc.mk
* config/win/pocc64.mk
* config/win/msvc.mk
! Changed to use '-' option prefix instead of '/' to make them
work under sh (msys) shells.
* config/global.mk
* INSTALL
+ Added poccarm and pocc64 autodetection.
+ Added iccia64 autodetection.
+ Added watcom target platform detection on all host platforms.
+ Added djgpp autodetection under win hosts.
% Simplified INSTALL examples accordingly.
Actually it's so simple now that only 'make' should be
issue after setting up the compiler according to compiler
docs. It's very rare that HB_COMPILER or HB_PLATFORM should
be specified now on non-*nix platforms.
* Minor formatting.
- Deleted debug $(info) line.
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
! Fixed to not initialize HB_DYN_INSTALL location to central lib
dir in case there was a plat/comp specific lib dir found.
I can't remember why this was done this way, but now it doesn't
seem to be necessary and it can just cause problems, as central
lib may contain some overlapping lib name (leftovers from other
'install' sessions) causing trouble for linkers. It also cleaner
this way.
! Added '(internal)' text to Harbour command -trace output.
! Changed harbour.exe path in internal command trace/error output
to use the same base dir as hbmk2 itself. In cross-compile
situations this is more accurate. Since harbour.exe shouldn't
necessarily exist, I've put harbour.exe path in paranthesis
to suggest it's not a real path.
; NOTE: Actually now hbmk2 autodetection code is lagging behind
GNU Make, so hbmk may need to get a bigger internal revision
sooner or later to catch up. It currently cannot switch
platforms based on detected situation, also the embedded
and normal tool installation should be merged, plus
autodetection added for *nix platforms.
* include/hbwince.h
* include/hbdef.h
! Added HB_EXPORT to some WinCE function, because they are needed
to successfully link shared final executable for non-mingw
wce compilers (poccarm and msvcarm). (in mingw we automatically
export all 'extern' functions, so this isn't a problem)
* 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'
* config/global.mk
+ Will now show the autodetected compiler path.
* utils/hbmk2/hbmk2.prg
! Fixed to not pass bogus resource source files to linker when
resource compiling isn't supported on given compiler (win/icc).
* config/common/watcom.mk
! Fixed double .exe extension (regression).
* contrib/hbqt/Makefile
* contrib/hbxbp/Makefile
* contrib/gtqtc/Makefile
+ Experimental changes:
Now showing reason why library was skipped.
Configuration also works a little differently:
HB_INC_QT should either be set to the header dir,
or set to 'no' which will disables any autodetection
(on *nix systems). This method replaces HB_HAVE_QT=no
setting and leaves only one setting to control QT
lib building. Experimental, probably the control
method should be further tuned.
Possible log messages:
- component not found
- component location not set
- deselected
- platform not supported
- compiler not supported
- (...) not supported
+ not necessary
NOTE: I've used 3.81 'if/else if' structure here.
% Streamlined the way darwin autodetection is solved.
(not yet tested)
* contrib/hbfbird/Makefile
* contrib/hbfimage/Makefile
% Optimized prerequisit check by using $(filter)
* config/win/icc.mk
! Changed to use xilink instead of using the compiler for
linking. This syncs it with msvc and hbmk2, and it also
fixes .dll creation.
+ Added /nologo.
* config/global.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/win/xcc.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/icc.mk
* config/win/msvc.mk
* config/rules.mk
* config/os2/watcom.mk
% Optimized OBJ_DYN_POSTFIX variable to be an internal one,
it doesn't need to be set in compiler .mk file anymore.
If there is any extra C compiler flag set for dynamic mode,
it will be set automatically.
- doc/linux1st.txt
* doc/Makefile
* INSTALL
+ Moved linux1st.txt content to INSTALL.
* utils/hbmk2/hbmk2.prg
* config/global.mk
- Deleted some HB_ARCHITECTURE compatibility lines.
Now only legacy hbmake sources keep referencing it.
* utils/hbmk2/hbmk2.prg
+ Added support for combined target names. This means
that from now in all supported platform/compiler inputs can
be formed like <plat>/<comp> in one string.
So f.e. '-plat=wce/mingw' is the same as '-plat=wce -comp=mingw'.
This feature only kicks in if the string contains '/' and in
this case the first item always indicates the platform, the
second always the compiler, regardless of which switch name is
used (-plat or -comp). So -comp=wce/mingw is the same as -plat=wce/mingw.
Experimental yet.
! Wrong bugfix reverted in prev commit. (for watcom/win)
* utils/hbmk2/hbmk2.prg
* config/global.mk
+ Added autodetection for i386-mingw32ce, which is WinCE running on x86 CPU.
This tool was released just recently from cegcc team.
* config/global.mk
+ Tweaked a little mingwarm autodetection on *nixes.
It will now look for all three mingw compilers on provided HB_CCPATH.
If not provided or not found on that location, it will continue to look
for them in default locations.
+ config/wce/mingw.mk
+ Added x86 wce/mingw config file. It's a simple redirection to
mingwarm.mk. I'll try to make some steps to make it generic,
can't really see the end of the tunnel yet though.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
* Changed to use 'platform'/'plat' instead of 'architecture'/'arch'.
+ Added -plat option. Same as old -arch, which is still accepted
for compatibility.
+ Accepting HB_PLATFORM envvar instead of old HB_ARCHITECTURE.
Old envvar is still accepted for compatibility.
+ Added ${hb_plat} and ${hb_platform} macros. Content the same
as for old ${hb_arch} and ${hb_architecture} macros. Old ones
still retained for script compatibility.
; Please start using the new values.
* contrib/hbwin/olecore.c
! Suppressed MSVC warning.
* 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.
* utils/hbmk2/hbmk2.prg
! Minor visual correction to help screen option section.
* ChangeLog
! Missed from prev entry:
* utils/hbmk2/hbmk2.prg
+ Added quiet option for watcom linker commands.
! Fixed missing SYS directive in watcom/win targets which prevented
using this target in cross-build scenarios.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added -implib option. Implemented it for all compilers.
(some of these don't support -hbdyn option yet though, once we
got it matured in GNU Make, these can be added to hbmk2)
+ Added linux/watcom dynlib generation. Quite experimental, it doesn't
work due to missing symbols.
+ Added linux/watcom support for -shared mode. Experimental, it doesn't
work due to 'invalid library file attribute'. Either the GNU Make
generate .so is wrong, or it's wrongly specified, or else.
I hope something can continue watcom dynamic lib support.
* config/dos/watcom.mk
* Formatting.
* config/linux/watcom.mk
- Deleted 'RUNTIME linux' and 'OP norelocs' options from dynlib gerenation.
* config/global.mk
% Minor opt.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Some 'hbmk' texts changed to 'hbmk2'.
* contrib/rddads/adsfunc.c
! Fixed ADSGETLASTERROR() to return empty string instead of garbage
when there was no error.
Borrowed from xhb by Augusto Infante.
Fixes applied: Using manifest constant instead of 0, using NULL
instead of empty string literal.
* config/bsd/gcc.mk
* config/hpux/gcc.mk
* config/darwin/gcc.mk
* config/linux/gcc.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
+ Added HB_CCACHE, HB_CCPREFIX, HB_CCPOSTFIX to all places where
it was missing from.
bsd/hpux/os2/sunos - pre/post to cc/ld, pre to ar
darwin - ccache to ld (I'm not sure about this one)
linux - post to cc/ld
; Not it's about consistent and in sync with hbmk2.
Please review me.
* utils/hbmk2/hbmk2.prg
+ Added support for HB_CCPREFIX/HB_CCPOSTFIX for os2/gcc targets.
* source/vm/maindllh.c
* source/vm/Makefile
+ Added support for os2 .dll. Please review.
* config/os2/watcom.mk
+ Added os2 .dll generation for watcom.
Now it generates OK.
* source/Makefile
* config/lib.mk
+ Added support for os2 and some level of *nix support.
* INSTALL
* Minor update to a few option description.
* utils/hbmk2/hbmk2.prg
+ Added preliminary/experimental/untested OS/2 -shared (.dll)
support for watcom targets.
* 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.
* utils/hbmk2/hbmk2.prg
* Improvement in msvc/wce support to support multiple WinCE
CPUs.
! Fixed to add '/manifest:no' only for 8.00 or upper msvcarm
compilers.
* config/wce/msvcarm.mk
* Minor improvements.
+ Added preliminary support for MIPS/SH/x86 WinCE build settings.
* source/vm/maindllp.c
+ Added MIPS and SH .dll names.
* include/hbsetup.h
* source/common/hbver.c
* HB_CPU_SUPERH -> HB_CPU_SH
* utils/hbmk2/hbmk2.prg
* config/global.mk
! Fixed to -undef:__PLATFORM__UNIX even for Windows host platforms.
This is required because Cygwin builds have this envvar set.
I'm not sure that setting __PLATFORM__UNIX for Cygwin is right
behavior though.
* config/dos/watcom.mk
* config/win/watcom.mk
* config/linux/watcom.mk
* config/os2/watcom.mk
+ config/common/watcom.mk
% Moved common watcom compiler specific make logic to one file.
I've choosen OS/2 rules in this global makefile, as they will
work on all platforms, albeit in the known slighly hacky way.
It's easy to reintroduce shell specific rules for more advanced
shells. There was one common rule set for nt/dos shells, plus
a very clean one for sh. I may do this in a next commit.
After this change it's possible to create all possible watcom
cross-builds. Pls shout if I missed something or the concept
seems to have some potential flaws.
; QUESTION: Does 'wlib' support '-p=64' option on Linux watcom builds?
; NOTE: Still most of the not yet merged logic could be merged,
since there is only a few minor difference between them.
; TODO: Add shell optimized watcom rules for nt/dos/sh shells.
; TODO: Try to do a similar stunt for gcc.mk files.
* source/pp/ppcore.c
* #ifdef -> #if defined()
* utils/hbmk2/hbmk2.prg
* config/wce/msvcarm.mk
! Fixes to cmdline macros, now many warnings are gone.
* utils/hbmk2/hbmk2.prg
+ Added ceshell, oleaut32 syslibs to default wce liblist.
(to be more in sync with win)
* contrib/hbwin/hbwin.hbc
! Added sms syslib for wce.
* utils/hbmk2/hbmk2.prg
* config/global.mk
+ Added autodetection for old MSVC for WinCE versions (clarm.exe based ones).
+ Added autodetection for HB_VISUALC_VER_PRE80 value for msvcarm targets.
* INSTALL
+ Added cross-build matrix. Tweaked cross-build information.
+ Added MSVC 2005 for WinCE/ARM example.
; TODO: Create separate example section for native and cross-builds.
* config/global.mk
! Fixed to handle spaces in PATH elements.
Now '#' is used as intermediate char. Please change it to something
else if you feel this might clash with some real-world scenarios.
* utils/hbmk2/hbmk2.prg
* config/wce/msvcarm.mk
! Readded -DUNDER_CE.
Does anyone know of any documentation about required macros
for WinCE compilation?
* 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.
* utils/hbmk2/hbmk2.prg
+ Added support for detecting Harbour binary environment
in raw form, meaning the one after simple 'make' *without*
'make install'.
Of course 'install' is still useful to build dlls (and
implibs on win), but for normal cases this may be a very
useful feature. You do a 'make' (no admin needed on *nix),
go to ./bin/arch/comp and hbmk2 works without any extra
configuration.
This feature also allows us to distribute multihost
binary packages. Such unified binaries can be run under
multiple hosts. (IOW we can have one binary distro which
covers potentially all our supported platforms/compilers
both as host OS and target OS). See watcom for such an
example in the C compiler world.
* utils/hbmk2/hbmk2.prg
+ Added wininet syslib to std lib list for win platform.
(to be in sync with wce and hbmk script).
* INSTALL
* Using 'platform' in a few places where 'architecture' was used
in text.
* utils/hbmk2/hbmk2.prg
+ Added support for HB_INSTALL_PREFIX macros (recently introduced
in global.cf). Maybe it'd be better to not use this build-time
envvar at all.
Now that autoconfiguration is working pretty well, I think it may
be time to drop support for some envvars in hbmk2. In case of
HB_INSTALL_PREFIX it rather makes things more complicated.
* 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
* utils/hbmk2/hbmk2.prg
! Minor fix for darwin and automatic entry function detection using 'nm'.
nm on Darwin doesn't seem to support '--defined-only -C' option.
Przemek, please check this, maybe this hurts functionality.
* make_gnu_os2.cmd
% Minor opt. I hope OS/2 accepts such 'if' command.
* include/hbthread.h
! Fix to poccarm build. Provided by Przemek.
* utils/hbmk2/hbmk2.prg
* config/wce/msvcarm.cf
* config/wce/global.cf
* config/wce/poccarm.cf
+ Added -DUNICODE for mingwarm. It didn't seem to require it so far,
but I thought it's better to define this for all wce compilers.
% Deleted -DHB_NO_WIN_CONSOLE. No longer exists in Harbour.
% Deleted /stack:65536,4096 linker option from wce/msvcarm.
I'm just guessing it's not needed.
+ -DUNICODE is now enforced through HB_BUILD_UNICODE=yes setting
in GNU Make for all wce compilers.
* 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.)
* INSTALL
+ Added HB_INSTALL_PREFIX description (this is now optional).
+ Added HB_BUILD_PKG description.
+ Added HB_BUILD_IMPLIB description.
* log-%HB_COMPILER%.txt log names changed to log.txt.
* Cygwin example changed to directly launch make_gnu.sh.
; NOTE: INSTALL still needs some updates. I'll do that while
testing new ways of doing things.
* config/global.cf
+ Some new information is shown in the log. (detection results)
% exporting HB_HOST_CPU to avoid detecting it in each recursion.
+ Showing whether HB_ARCHITECTURE/HB_COMPILER values were autodetected.
+ Showing GNU Make version and targets ("clean"/"install"/"all").
+ Showing HB_BUILD_PKG, HB_BUILD_DLL settings.
+ Added logic to do some presets if HB_BUILD_PKG=yes and check
if clean+install was specified.
* bin/postinst.cmd
* bin/postinst.bat
* bin/hb-mkpkg.bat
* bin/hb-mkimp.bat
* bin/hb-mkdyn.bat
+ Prefixed all messages coming from our make process with '! '
+ Some new messages added to offer better entertainment for builders.
- mpkg_gnu.bat
* config/global.cf
+ bin/hb-mkpkg.bat
* bin/postinst.bat
* mpkg_win.nsi
+ Updated to work as a child function of postinst.bat instead
of being a starter batch file. Now a package build can be
initiated the same way as a normal one except that HB_BUILD_PKG=yes
setting should be used additionally and 'clean install' is
obligatory.
In package building scenarios HB_INSTALL_PREFIX will be automatically
set by the process, using the pkg/<arch>/<comp> tree to install the
build into.
* Moved most of the old logic to GNU Make level, so the batch file
is very simple now.
; TOFIX: Whole removal of above dir should be solved to avoid
leftover old files to be included in the release packages.
Ideas are welcome.
; TODO: Integrate into postinst.bat.
; TODO: Move .nsi file to a better place.
* bin/postinst.bat
* config/rules.cf
! Fixed to respect HB_BUILD_DLL setting.
* bin/hb-mkdyn.bat
! Fixed to create temp files in install area so that multiple parallel
build runs don't badly interact with each other.
! Some fixes regarding spaces in dirs, although tool support is generally
to hectic/buggy to implement that reliably. Spaces are still not recommended
in dir.
! Fix for msvc.
! Untested fixes for watcom.
! Fixed leaving two temp file on disk for debuggin purposes.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added -vcshead support for Bazaar repositories.
* config/global.cf
* config/wce/global.cf
* config/dos/watcom.cf
* config/win/watcom.cf
* config/win/global.cf
* config/os2/watcom.cf
- Deleted no more used HB_CDYNLIB and HB_DYNLIB logic.
* config/rules.cf
! Changed CC_RULE and CPP_RULE to have CC_OUT option _before_ CC_IN.
Quick check didn't reveal any problems with this accross our supported
compiler, but I may be wrong, so pls check me, I didn't test this
change thoroughly.
This change fixes CC_OUT for bcc, where it was ignored before.
If this is breaks other compilers, bcc specific CC_RULE should be
added to win/bcc.cf.
* utils/hbmk2/hbmk2.prg
* source/rtl/gtcrs/gtcrs.c
* source/rtl/gtcrs/gtcrs.h
* source/rtl/gtcrs/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/gttrm/gttrm.c
* source/rtl/gtsln/mousesln.c
* source/rtl/gtsln/gtsln.c
* source/rtl/gtsln/Makefile
* HAVE_GPM_H -> HB_HAS_GPM
* config/global.cf
+ Added some compile-time macros in comment.
* Minor correction to MKFLAGS comment.
* source/rtl/console.c
* source/rtl/hbgtcore.c
* Changed wording 'screen driver' to 'Harbour terminal (GT)'.
Former term isn't used by us.
* config/bsd/gcc.cf
* config/darwin/gcc.cf
* config/hpux/gcc.cf
* config/dos/djgpp.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/sunos/sunpro.cf
+ Readded accidentally deleted feature to include *nix system
libs needed for rtl, only if rtl is actually linked.
(IOW in practice don't link them for harbour/hbpp executables)
! Fixed a few old problems where some extra libs were always
linked. Now m is the only one linked in all scenarios.
+ Added linking pdcurses along with gtcrs for djgpp.
* Standardized LDFLAGS in linux/icc (left from previous modification).
! Indentations corrected.
* config/bin.cf
+ Harbour binary core liblists are now formed centrally.
Four variations are generated:
HB_LIBS_ST_RDD
HB_LIBS_MT_RDD
HB_LIBS_ST_NORDD
HB_LIBS_MT_NORDD
Binaries can choose by using: 'LIBS = $(HB_LIBS_*)'.
Important to use '='.
This step also fixes potential problems with former liblists,
where it was easy to make a local mistakes and some libs which
needed more complicated logic, or which were just rarely used
simply weren't added. Now all liblists are guaranteed to have
proper order and content.
HB_GT_LIBS and HB_DB_DRIVERS are automatically added centrally,
so no need to add them manually in each compiler specific .cf.
* tests/Makefile
* tests/hbpptest/Makefile
* tests/multifnc/Makefile
* utils/hbformat/Makefile
* utils/hbmk2/Makefile
* utils/hbtest/Makefile
* utils/hbi18n/Makefile
* utils/hbrun/Makefile
% Using above HB_LIBS_* macros.
; The only few places which I didn't thouch is non-Harbour
executables (harbour exe and hbpp exe).
* config/bsd/gcc.cf
* config/wce/msvcarm.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
* config/hpux/gcc.cf
* config/darwin/gcc.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/cygwin.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/mingw.cf
* config/win/pocc.cf
* config/win/bcc.cf
* config/linux/watcom.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/sunos/sunpro.cf
% Deleted local logic to merge HB_GT_LIBS and HB_DB_DRIVERS
into LIBS.
* utils/hbmk2/hbmk2.hbp
* utils/hbrun/hbrun.hbp
! Extra libspecs are still needed for some compilers.
I've readded them until better solution is found.
* utils/hbmk2/hbmk2.prg
+ Reorganized core Harbour lib handling. The goal is to
allow linkers to resolve references by themselves, either
by clever ordering and adding libs multiple times if needed.
I took the methods used in Makefiles as guiding line.
% Removed -Wl,--start-group / -Wl,--end-group lib grouping.
It doesn't seem to be necessary anymore.
! Fixed "hbrtl" lib reference with some targets in -xhb mode.
; NOTE: Please test, I didn't test all possible combinations
only mingw and recent Harbour. (no xhb, no hb10x)
; NOTE: Regressions are possible regarding lib selection or
ordering and also GT selection.
; TODO: If this works out okay, we can delete similar grouping
options from .cf files. At the same time, core liblists
could be moved to central place to ease maintenance
and guarantee correctness.
* utils/hbmk2/hbmk2.hbp
* utils/hbrun/hbrun.hbp
- Deleted extra core lib specifications to make it link
in shared mode. Doesn't seem to be necessary anymore
after above hbmk2 change.
* Makefile
* tests/Makefile
* contrib/hbmisc/Makefile
* contrib/hbwin/Makefile
* utils/Makefile
% Started converting '=' operators to ':=' where applicable.
; TODO: Rest of Makefiles.
* contrib/hbwin/Makefile
! Including 'global.cf' directly to make HB_ARCHITECTURE/HB_COMPILER
variables work in case we're relying on autodetection.
; TOFIX: Rest of Makefiles.
* config/global.cf
+ Added self-inclusion check to allow adding this .cf file
directly to Makefiles in order to force platform detection
for cases where this information is needed for local decisions.
* config/dos/global.cf
- Deleted 'ifndef MK' construct. Purpose unknown, and not
found similar for other platforms.
* config/global.cf
* config/globsh.cf
+ Added my copyright.
* contrib/hbtpathy/tpwin.c
* contrib/hbtpathy/tpos2.c
% Deleted unnecessary headers.
* utils/hbmk2/examples/contribf.hbc
* contrib/hbtpathy/Makefile
+ contrib/hbtpathy/tpdos.c
* contrib/hbtpathy/hbtpathy.hbc
+ Added DOS stubs. This makes it possible to enable this contrib
for all existing platforms. Serial support is possible to
implement in DOS.
% Now all source files are compiled for each platform, platform
specific parts are guarded internally, no need to duplicate the
logic on the make level.
* contrib/hbwin/win_tprt.prg
* contrib/hbwin/win_prt.c
+ ::Recv() got a new second parameter to return result code.
+ WIN_PORTFCN() now requires port number to be passed as 1st param.
+ WIN_PORTERROR() now requires port number to be passed as 1st param.
* Renamed function WIN_PORTFCN() to WIN_PORTFUNCLAST()
+ Fixed last port operation and last error to be stored per port
rather than in global vars. This makes it possible to use multiple
ports in parallel.
- Deleted WIN_PORTBUFFERS() which wasn't MT friendly.
+ WIN_PORTOPEN() function got enabled 6th and 7th inbuffer/outbuffer
parameters. This replaces WIN_PORTBUFFERS() function.
+ Added WIN_PORTRECV() function which is similar to WIN_PORTREAD()
but returns the result directly rather than putting it in a var
passed by reference. It accepts lenght parameter and return result
code by reference. It's a little bit more effient than WIN_PORTREAD().
% Some if/else branches swapped to make code a little smoother.
* contrib/hbwin/olecore.c
+ Attempt to add vars by reference support. Commented until
there is no test code to try it.
* Minor formatting.
* contrib/xhb/hbserv.h
* contrib/xhb/htmlform.ch
* contrib/xhb/inet.h
* contrib/xhb/hblognet.prg
* contrib/xhb/tfile.prg
* contrib/xhb/html.ch
* contrib/xhb/tedit.prg
* contrib/xhb/tframe.prg
* contrib/xhb/htjlist.prg
* contrib/xhb/xdbmodst.prg
* contrib/xhb/htmlclrs.ch
* contrib/xhb/thtm.prg
* contrib/xhb/hterrsys.prg
* contrib/xhb/tcgi.prg
* contrib/xhb/regexrpl.prg
* contrib/xhb/hbserv.ch
* contrib/xhb/ttable.prg
* contrib/xhb/hjwindow.prg
* contrib/xhb/hbserv.c
* contrib/xhb/htmutil.prg
* Header formatting.
; NOTE: I noticed some xhb components have pure GPL license (recently
added CGI parts), plus some other use some sort of xhb specific
modification of original Harbour + exception license. This
contains some sentence which doesn't seem to make much sense:
"This exception applies only to the code released with this xHarbour explicit exception."
FYI.
* contrib/hbtpathy/telepath.prg
* utils/hbmk2/hbmk2.prg
* Minor formatting, comments.