* ChangeLog
; Added missing change to one the recent entries:
---
* config/global.cf
+ Added 'SHELL := $(COMSPEC)' to OS/2 shells.
I'm not sure this is needed, please test and confirm
whether it solves possible interference with sh.exe in
PATH.
---
* harbour/source/rtl/hbproces.c
! fixed hb_fsProcessRun() (__RUN() and HB_RUN()) in WinCE builds
to pass application name as 1-st parameters
+ added parameters passing to hb_fsProcessRun() (__RUN() and HB_RUN())
in WinCE builds - please test.
* 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.
* include/hbsetup.h
% Optimized out HB_OS_UNIX_COMPATIBLE. HB_OS_UNIX should be used
instead. Since the definition logic for HB_OS_UNIX was completely
different from HB_OS_UNIX_COMPATIBLE, it may be possible that
it's not 100% the same as before, although their meaning was
the same.
HB_OS_UNIX_COMPATIBLE is still available for compatibility, but
it's now marked with HB_LEGACY_LEVEL2 and will be removed in next
major release.
* include/hbapifs.h
* include/hb_io.h
* include/hbsocket.h
* source/vm/set.c
* source/debug/dbgentry.c
* source/common/hbffind.c
* source/rtl/fscopy.c
* source/rtl/fstemp.c
* source/rtl/gtstd/gtstd.c
* source/rtl/gttrm/gttrm.c
* source/rtl/version.c
* source/rtl/hbsocket.c
* source/rtl/copyfile.c
* source/rtl/filesys.c
* source/rtl/console.c
* source/rtl/cputime.c
* source/rtl/gtpca/gtpca.c
* source/rtl/fssize.c
* source/rtl/memofile.c
* source/compiler/hbcomp.c
* source/compiler/gencobj.c
* contrib/hbct/files.c
* contrib/xhb/xhbcopyf.c
* contrib/xhb/hbserv.c
* contrib/hbnf/getenvrn.c
* HB_OS_UNIX_COMPATIBLE -> HB_OS_UNIX
* config/global.cf
* HB_UNIX_COMPATIBLE -> HB_OS_UNIX
* 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.
* make_gnu_xmingw.sh
+ Allow user to override the default TARGET.
* config/global.cf
! Don't add /harbour (LIB|INC)POSTFIX if HB_INSTALL_PREFIX contains
/usr/home (synonym of /home under FreeBSD).
! Fixed INCPOSTFIX usage so it works now.
* config/linux/global.cf
! Added x86_64 to -fPIC machines.
* config/global.cf
+ Package creation now only works if run from Harbour source root.
+ 'clean' of pkg dir will only happen now if run from Harbour source root.
* ChangeLog
* config/globsh.cf
+ 'clean' now deletes pkg/<arch>/<comp> dir. This ensures that
package creation always starts with a fresh empty dir.
Resolves existing TOFIX (marked DONE).
* 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.
* ChangeLog
* source/rtl/Makefile
* source/rdd/Makefile
* config/bin.cf
* config/wce/global.cf
* config/rules.cf
% Using HB_PRGFLAGS instead of HB_GCMODE. Logic is now simple
and standard.
* 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
* config/global.cf
+ Added new plans for further setting cleanup.
* config/global.cf
* config/rules.cf
* config/dos/watcom.cf
* config/win/watcom.cf
* config/os2/watcom.cf
+ Added HB_CFLAGS, HB_PRGFLAGS. These will now replace all
Makefile level manipulation of flags. Should eventually
replace all HB_USER_*FLAGS, HB_GCMODE, HB_INC_DEPEND,
HB_CUNICODE, HB_CDBG and HB_FLAGSEXTRA variables, if everything
goes well.
* contrib/hbwin/wapi_winuser.c
+ Added WAPI_GETKEYSTATE().
* config/none.cf
* config/global.cf
* config/instsh.cf
* config/dirsh.cf
! Fixed minor visual glitch on non-sh shells where some echoed messages
were shown inside double quotes.
There is only one such but very rare message left in global.cf.
* ChangeLog
! Typo in prev entry.
* config/dos/djgpp.cf
* Changed 'echo.' to 'echo' to make it shell independent just like
all other echo commands in the make config files.
Pre-2.02 DJGPP distros had an echo.exe, originally I may have
added to dots to force using the shell echo instead of this external
one. Quick tests made with djecho.exe (the new name of echo.exe)
showed it working. Maybe old echo.exe had some bad side effects,
I don't remember and ChangeLog entry doesn't have the reason.
* 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.sh
* config/linux/global.cf
- Deleted. The -fPIC logic is moved to linux/global.cf but it's
incomplete yet, some comments were added there.
* contrib/hbcurl/hbcurl.hbc
+ contrib/hbcurl/hbcurls.hbc
+ Added separate .hbc file for static mode hbcurl lib.
This replaces former HB_CURL_STATIC setting.
* contrib/hbcurl/Makefile
* external/Makefile
* contrib/Makefile
% Minor optimization to DIRS var.
(in few cases it wasn't init to empty with := operator)
+ contrib/hbtip/hbtipssl.hbc
+ contrib/hbtip/hbtipssl
+ contrib/hbtip/hbtipssl/Makefile
* contrib/hbtip/Makefile
+ Now building separate SSL enabled hbtip lib in case HB_HAS_OPENSSL.
+ Added separate .hbc file for SSL enabled hbtip lib, which also
pulls hbssl libs and dependencies.
* config/prg.cf
* config/lib.cf
* config/bin.cf
* config/globsh.cf
* config/dir.cf
* config/c.cf
* config/header.cf
* config/doc.cf
* config/instsh.cf
* config/dirsh.cf
% Optimized remaining (more delicate) logic to use :=
instead of = assigment operator.
At this point there is nothing left to optimize in this
regard.
; I didn't restest parallel build and BISON related rules,
please do so, I hope they aren't broken. Or in case you
notice anything strange please shout.
* config/global.cf
+ Added link to GNU Make NEWS files which describes at which release
some features were added.
* config/dos/watcom.cf
* config/win/watcom.cf
* config/os2/watcom.cf
! Synced special watcom CC_RULEs with recent changes to global CC_RULE.
* INSTALL
* make_gnu.sh
* config/global.cf
* config/lib.cf
* config/bin.cf
% Deleted HB_USER_MAKEFLAGS envvar.
Simply pass these flags to make executable (or .sh scripts)
* config/global.cf
+ Added some TODO/NOTE/TOFIX about GNU Make version compatibility
of some feature we're using.
+ Showing MAKEFLAGS.
% Using MAKEFLAGS for --no-print-directory trick.
* INSTALL
+ Separated instructions for linux/darwin and rest of *nixes.
The only difference is that the latter needs 'gmake' command
to start.
+ MSYS/Cygwin section extended a bit. (It's now possible to
build for any compilers from MSYS/Cygwin)
* make_gnu.sh
% Deleted unused HB_ARCH64 variable.
* config/global.cf
- Deleted svnversion trick since it's not guaranteed this
command is present on builder's system.
+ Added doc links from make_gnu.sh. (deleted from there)
* Changed to default HB_INSTALL_PREFIX to /usr/local on
*nix systems. I very much don't like this (even though I
understand why it's done that way).
+ Added {HB_TOP} macro for HB_INSTALL_PREFIX, so if someone
wants to install Harbour in its own dir, it enough to do:
export/set HB_INSTALL_PREFIX={HB_TOP}.
This is crucial if someone doesn't want to "pollute" system
areas with Harbour builds, doesn't want to use admin rights
to make the install, or if someone wants to use multiple
Harbour builds in parallel for any reason. hbmk2 works
perfectly without Harbour being installed to system location.
+ Whenever HB_INSTALL_PREFIX is modified by GNU Make (defaulting
or macro replacement), the new value will be presented for the
user.
% Minor optimization.
* Minor cleanups to pkg dir assembling logic.
* config/linux/global.cf
+ Added -fPIC detection logic. This is just a start, it doesn't
replicate full logic found in make_gnu.sh. Przemek, if you have
some spare time, please look into it.
* 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.
* source/rtl/hbsocket.c
! Applied fix for Cygwin as per Przemek's instructions.
(I've guarded #undef HB_OS_WIN with defined( __CYGWIN_ ))
* INSTALL
- Deleted some by now irrelevant restrictions and rules.
+ Added pointers to NT GNU Make, DJ GNU Make and OS/2 GNU Make.
+ Added HB_COMPILER/HB_ARCHITECTURE to option list. These
should now be mostly optional. They are only needed in a
few situations when autodetection cannot work (secondary pocc
targets for example), or in cross build situations when
we want to force some non-native configuration.
% Deleted HB_INSTALL_PREFIX from examples. It's optional.
% Deleted all settings which are now autodetected.
I didn't retest them of course, please try them, and if
something was removed by mistake pls report it.
The reduction is quite dramatic. Starting the build is
really only just starting GNU Make in most cases.
% Converted *all* examples to not use starter script/batch
files. As a next step I'll probably delete them to make
even *less* choices for builders and because current
starter files don't offer anything interesting anymore.
Maybe also included GNU Make executable will also be
deleted.
% Simplified Cygwin example.
* make_gnu.bat
- Deleted Cygwin logic.
; I just realized that after all these GNU Make development,
there is no need at all for make_gnu.sh for Cygwin and it's
a no brainer to launch make either using NT shell or Cygwin/MSYS
shell. It just works by starting GNU Make in whichever shell
or environment you are. [ Well, with NT shell it doesn't seem
to work because gcc.exe is named gcc-3.exe on my system,
anyway, this doesn't change the point. ]
The only remaining "complexity" is finding the name of GNU
Make in a given environment and not use the wrong one
(f.e. Cygwin make.exe in NT shell).
* config/global.cf
+ Added svnversion output in verbose mode.
* 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.)
* harbour/contrib/hbwin/olecore.c
+ added support for decoding VT_DECIMAL variants
+ added disabled by default support for passing pointer items just like
in old OLE code
+ added decoding of VT_VARIANT passed by reference
+ encode NIL or other not directly supported types passed by reference
as VT_VARIANT passed by reference
* added disabled by '#if 0' code which uses VT_VARIANT | VT_BYREF
to pass parameters by reference for testing
* 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]