- 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]
* source/rtl/gtsln/gtsln.c
! Fixed linux/gcc warning. Now write() retval is checked.
* config/global.cf
! Fixed wrong autodetection due to recent change.
(HB_COMPILER needs to be checked against empty value)
* 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.
* 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.
* harbour/config/global.cf
* set HB_HOST_ARCH to HB_ARCHITECTURE if it cannot be autodetected
It fixes builds with older GNU makes if autodetection fails
* harbour/config/os2/watcom.cf
* use the same calling convention in optimized and not optimized
builds
* INSTALL
* OS/2 prerequisites added. (currently not relevant, but anyway)
* bin/postinst.bat
* bin/hb-mkdyn.bat
* make_gnu.bat
+ Reworked the way .dll generation is done in Harbour build process.
New method solves the problem in one pass, instead of invoking
make twice and requiring starter script to control this.
The new trick is that CC_RULE will generate both dynamic and static
objects for libs included in the .dll for compilers where such trick
is necessary (currently all win/wce compilers except gcc based ones).
* Changed HB_BUILD_LOG forming. Since at this point ARCH/COMP values
aren't known (and just for this purpose it's not worth to maintain
parallel detection logic in start script), the automatically
generated log file will contain the date/time. Maybe even this will
be dropped in the future. Since this is the only remaining logic
in starter script (plus finding correct GNU Make, but that's even
smaller role)
; I didn't test watcom yet, plus mpkg_gnu.bat isn't working yet,
it needs to be moved to postinst phase.
; After these changes, there is basically no need for make starter
scripts. Maybe I'll even remove included make tools to make things
cleaner/leaner.
; TODO: Revise starter .sh scripts.
; TODO: mpkg_gnu.bat rework to run from postinst.
; TODO: Do some cleanup, remove redundancy in settings, etcetc.
; TOFIX: Fix watcom .dll generation.
* config/global.cf
! Deleted double MAKE info line.
+ Showing detected shell in verbose mode.
+ Added mkdir/rm detection for OS/2 shells. (commented)
% Optimized HB_BIN_COMPILE detection by using $(realpath) function.
Now it's only detected once per make run.
+ Added HB_*_INSTALL value defaulting similar to make_gnu.sh
for *nix platforms. (adding /harbour postfix to lib/inc dirs when
HB_INSTALL_PREFIX is system location (/usr or /opt). Please review.
* config/lib.cf
+ Added HB_DYN_COMPILE to control compiling for dynamic libs in
a sperate command.
+ Added HB_DYN_LIBS to hold list of libs which should be built
with separate command for dynamic libs.
* config/rules.cf
+ Added logic for duplicate CC_RULE.
TODO: Notice that it's not yet working when CC_RULE is overridden
on compiler level. Help would be appreciate here.
* config/wce/msvcarm.cf
* config/wce/poccarm.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/pocc.cf
* config/win/bcc.cf
+ Enabled HB_DYN_COMPILE for these compilers.
* contrib/gtqtc/gtqtc.hbc
! Fixed lib order for mingw, supc++ moved to the end of list.
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* external/Makefile
* source/rtl/gtxwc/Makefile
* source/rtl/gtcrs/Makefile
* source/rtl/gtsln/Makefile
* contrib/Makefile
* contrib/gtalleg/Makefile
* contrib/hbmysql/Makefile
* contrib/hbodbc/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/Makefile
* contrib/hbfbird/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/hbssl/Makefile
+ Indentation.
% Using ':=' in '*_OK := $(foreach...' expressions, instead of
former unsafe '+='.
* config/win/mingw.cf
* config/wce/mingwarm.cf
* config/win/cygwin.cf
+ Using 'crs' instead of 'r' as AR command.
* config/install.cf
+ Don't define rule if INSTALL_RULE is empty.
Cannot currently happen.
* config/header.cf
% Minor optimization.
* harbour/include/hbthread.h
* added workaround for different CRITICAL_SECTION definitions in
some compiler header files
* harbour/source/vm/fm.c
* harbour/source/hbzlib/ChangeLog
* harbour/source/hbzlib/zutil.c
* use #pragma warning to pacify OpenWatcom warnings
* harbour/contrib/hbwin/olecore.c
! fixed memory leak in PutParams()
! fixed parameters order in PutParams()
! fixed possible GPF due calling VariantClear() without VariantInit()
for C stack VARIANT item.
! fixed reverted #if condition - VT_[U]I8 was not supported
+ implemented passing parameters by reference
Not tested at all - I do not have Windows and I'm not familiar
with OLE code/servers. I hope that Windows users can test it
and it Windows developers can update this code if necessary.
* config/wce/mingwarm.cf
* config/win/mingw.cf
- Deleted ranlib usage. I've tested with mingw 3.4.2, 4.4.0
and mingwarm 4.4.1, and the runlib command made no difference.
If someone knows the reason why was it there, pls shout.
* config/bsd/global.cf
* config/darwin/global.cf
* config/linux/global.cf
- Deleted RANLIB variables. They are not used anywere through the
make process.
(only mingw/mingwarm uses it)
* 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.
* harbour/bin/hb-func.sh
* updated list of system libraries used in to create harbour*.dll
in MinGW builds
* harbour/bin/postinst.sh
- removed not longer used code for build library in postinst phase
* use 'suncc' instead of 'cc' to create harbour shared library without
any platform dependent non default settings
* synced flags used in build process with flags used to create
harbour shared library in sunpro builds
* harbour/config/linux/sunpro.cf
* harbour/config/sunos/sunpro.cf
* removed options which explicitly force platform
* added -xbuiltin=%none as workaround for problems in x86 PIC builds
exploited by hbpcre library code
* changed the order of C/LD flags settings so they can be easy
overwritten by HB_ISAOPT
* source/rtl/gtcrs/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/gtsln/Makefile
* config/global.cf
! Hopefully fixed GPM detection with pure (no starter script)
GNU Make invocations. It needs to be done centrally,
as it's used in multiple modules, plus it has external lib
dependency.
; TODO: Streamline macro usage regarding external dependencies.
There is currently HAS*, HAVE*, HB_HAVE*, HB_WITHOUT*
plus some other variations.
We should probably stick to HB_BUILD_WITH_* for user
level control, and HB_HAS_* for internal detection logic.
* config/instsh.cf
! Fixed '-' prefix usage in non-*nix shells, so now make
process won't fail because of install rule error.
(this was a problem introduced in recent days)
Maybe it will be needed to tweak that because an install
failure might signal a real problem as soon as package
creation gets implemented inside/under GNU Make.
* config/global.cf
+ Added autofill of HB_INSTALL_PREFIX if not specified.
(work in progress, might change in the future)
+ Added support for "macro" values in HB_INSTALL_PREFIX:
{HB_ARCH}, {HB_COMP}, {HB_CPU}. They will be replaced
by corresponding value. This is a small steps towards
moving to GNU Make bases autodetection an moving away
from starter script (make_gnu.*) usage.
* config/bsd/global.cf
* config/wce/global.cf
* 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
+ Added DYN_EXT and DYN_PRE variables as a small step
towards integrating dynlib creation in the GNU Make
process.
* config/global.cf
! Fixed to not indent one define/endef block.
I've actually even warned for this in comment, but ignored
it by mistake yesterday, and broke compiler autodetection.
* config/instsh.cf
% Deleted $(CMDPREF) from OS/2 rules. Please test it and report
if it broke.
* config/os2/watcom.cf
* config/os2/gcc.cf
+ Added '@' prefix for echo cmds.
* harbour/contrib/xhb/xcstr.prg
% fixed fatal for performance code used to serialize hash arrays
in ValToPrg() functions. I know that xHarbour does not have native
support for hash array iteration in FOR EACH statements so it's
necessary to make some hacks but even there serialization can be
quite easy done by simple FOR/NEXT loop and function calls to
access given keys and values.
Please remember that sending :keys or :values messages to hash
arrays is very expensive in both languages because each time
new array is created with copy of all key or values items.
In the old code :values message was send inside a loop so to serialize
hash array with 1000 items it was created 1000 arrays with 1000
items inside each of them. It means 1000000 unnecessary item copy
calls. Modern computers are very fast but such code can kill the
performance on any hardware. It's also classic example when forcing
FOR EACH usage in all places can give code thousands times slower
then code using simple FOR/NEXT.
% few minor optimizations
- tests/bldtest/bldtest.hbp
+ tests/bldtest/Makefile
! Restored GNU Make file.
Maybe we should move this file to somewhere else, perhaps
inside /config to better serve its purpose.
* config/global.cf
+ Added another setting to raw setting list.
+ tests/hbpptest/hbpptest.hbp
+ tests/bldtest/bldtest.hbp
+ tests/multifnc/multifnc.hbp
+ Added hbmk2 make files (quite simple ones) for these tests.
Better make them independent of the core make system.
This way they also work outside the source distribution,
f.e. when shipped inside a binary distro.
- tests/hbpptest/Makefile
- tests/bldtest/Makefile
- tests/multifnc/Makefile
- Deleted GNU Make files.
- tests/Makefile
- Deleted GNU Make file. hbmk2 is recommended to build these tests.
The only missing feature compared to Makefile is auto-exclusion
of "NOTEST" sources, anyway it's pretty apparent from first line
of each source file, so it shouldn't be a problem.
* harbour/contrib/xhb/trpccli.prg
! fixed typo in function name.
Harbour has hb_inetPeriodCallback() not hb_inetSetPeriodCallback()
* harbour/contrib/xhb/xcstr.prg
! disabled calling ValToPrgExp() used to serialize codeblocks
! use __objGetValueList() instead of __objGetValueDiff() which does
not exist in Harbour
* harbour/contrib/xhb/trpc.prg
! fixed xHarbour only function names: JoinThread() -> hb_threadJoin()
and StopThread() -> hb_threadQuitRequest()
* Makefile
% Using := instead of =
* tests/Makefile
- Deleted support for 'pm' envvar.
* config/global.cf
+ Added PM envvar to list of misc config vars.
* config/globsh.cf
* config/win/bcc.cf
+ Added NOTEs about Windows NT family command-line length limits.
It's 2047 for NT/2000 and 8191 for XP and upper.
Seemingly also on Vista or Windows 7. Probably memory is still
too expensive at MS ;) or, they want us to switch to PowerShell?
* config/bin.cf
% Using := instead of = for 'BIN_NAME'.
* config/dir.cf
% Using := instead of = for 'comma'.
* config/dos/watcom.cf
% Using := instead of = for 'DOS4G'.
* config/instsh.cf
+ Showing useful information instead of "! Done" in case
of error situations.
* config/dir.cf
* config/global.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/win/watcom.cf
* config/win/bcc.cf
* config/instsh.cf
* config/dirsh.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
+ Indentation.
* Syncing some common comments across files.
* ChangeLog
+ Added [WORKS] to prev entry.
* config/global.cf
- Deleted '! Configuration' line.
* config/instsh.cf
+ nt install rules moved to a subroutine, so the multicommand
hack could be deleted.
+ os2 install rules modified to use the same line length limit
avoiding technique as dos. Please test.
; QUESTION: Could an OS/2 user tell me whether $(CMDPREF) is
*really* needed? This is the only place it's used,
so I wonder. If not, we should delete it.
* dos/os2 install command results are now ignored ('-' prefix)
just like for other shells.
+ dos install rule now contains check for existing dir.
Not currently required, I've added it for cleanness and to
be in sync with other shell rules where such check is std.
% define/endef extra empty lines deleted from where they weren't
necessary.
* Indentation.