* include/hbextern.ch
+ Added HB_SETENV()
* utils/hbmk2/hbmk2.prg
* Minor cleanups.
* contrib/examples/uhttpd/uhttpd.hbm
- Removed -n. It's now automatic.
; TODO: Remove the rest.
* INSTALL
* doc/man/hbmk.1
+ config/win/icc.cf
* utils/hbmk2/hbmk2.prg
+ Added Intel(R) C++ compiler support for Windows.
+ Added initial support also in hbmk2.
; This compile is actively developed and its famous of
generating the fastest running code of all C compilers.
It also outputs an extremely detailed warning list.
And the best thing: It compiled Harbour without a single
hitch. hbtest is also running fine. hbmk2 is able to
create executables.
* harbour/include/hbapi.h
* harbour/include/hbwince.h
* harbour/source/common/hbgete.c
* harbour/source/common/hbwince.c
+ added BOOL hb_setenv( const char * szName, const char * szValue )
It sets or deletes (szValue==NULL) environment variable.
Please add support for other compilers/OS-es or define
unsupported platforms to eliminate TODO warning.
For sure OS2 version have to be updated.
* harbour/source/rtl/gete.c
+ added .prg function:
HB_SETENV( <cEnvName>, [<cNewVal>] [, <lOsCP>] ) -> <lOK>
which sets or deletes (when <cNewVal> is NIL) process environment
variable <cEnvName>. <lOsCP> controls character translation to
OS encoding. By default is enabled.
TOFIX: <cEnvName> OS character encoding is missing in [HB_]_GETENV()
* harbour/source/common/hbprintf.c
* do not use modfl() in WinCE POCC builds. If MSVC also does not
support if in WinCE builds then please change the condition to
global HB_OS_WIN_CE
* doc/man/hbmk.1
* INSTALL
* utils/hbmk2/hbmk2.prg
- config/win/dmc.cf
- config/os2/icc.cf
- Removed win/dmc (Digital Marc C) C compiler from supported
compiler list. The compiler was added last year, but
it turned out to be too buggy for any kind of production
work, and the compiler's development seem to have been
stalled year ago.
This is part of the pruning effort to leave here what's
really needed and beneficiary for users. This will
reduce the test matrix and give way to more important
things.
- Removed os2/icc. IBM Visual Age isn't available for OS/2
since very long, and no one seems to use this compiler
on this platform. Harbour support also wasn't tested
since long.
* doc/man/hbmk.1
* INSTALL
* utils/hbmk2/hbmk2.prg
- config/win/icc.cf
- Deleted win/icc from supported compiler list. This was
never working and the compiler isn't available anymore
for Windows. For AIX we could support it though.
* INSTALL
* Minor typos.
* mpkg_win.bat
+ Added zip link. Made NSIS link more direct.
* doc/man/hbmk.1
* INSTALL
* utils/hbmk2/hbmk2.prg
* config/dos/global.cf
- config/dos/rsx32.cf
- config/win/rsxnt.cf
- Pruned rsx32 and rsxnt compiler support. Both are dead
product since long years. Their successor is MinGW on win,
and DJGPP on dos.
; NOTE: More candidates for such pruning are:
- dmc (buggy and compiler not updated)
- xcc (based on very old version of pocc)
Any opinions?
* config/dos/global.cf
- Cleaned emx, watcom, rsx, bcc16 related branches.
* mpkg_win.bat
* mpkg_win.nsi
! Exclusion of junk files is now done in batch, so
the .zip is now also free from them.
* harbour/include/hbdefs.h
* harbour/source/vm/hvm.c
* respect HB_START_PROCEDURE in all builds if such public
function/procedure exists.
Now whole Harbour code can be compiled with -n1 in all builds.
Warning for Windows/DOS users:
if you have main() function in your .prg code then it will be
automatically detected as application startup entry just like
in other systems.
Otherwise the 1-st linked function will be used like so far.
+ added HB_START_PROC_STRICT macro which causes that HVM ignores
HB_FS_FIRST attribute. Before this modification HB_START_PROCEDURE
has such meaning.
* harbour/source/vm/memvars.c
! added protection against pushing new private variable on HVM stack
if such private variable is already created by the same function.
Clipper also has such protection. This code illustrates it:
proc main()
memvar var1, var2, var3
private var1 := "a", var2 := "b", var3 := "c"
? var1, var2, var3
private var1 := "A", var2, var3 := "C"
? var1, var2, var3
private var1 := NIL, var2, var3
? var1, var2, var3
return
compare Clipper and current Harbour results with old Harbour ones or
with xHarbour results.
* utils/hbmk2/hbmk2.prg
+ Added -prgflag:, -cflag:, -ldflag: options.
To lessen the chance to mess up hbmk and underlying
tools, only "-" and (on non-*nix) "/" prefixed values
are accepted. Values are slash corrected by hbmk and
filters can also be used.
+ -hbcc and -hblnk will now consider raw (unrecognized and
prefixed) options as C/linker flags respectively. Values
are slash corrected and filters can also be used.
; NOTE: Passing C/linker flags directly to underlying
tools isn't a very good idea if you want to stay
portable across tools and OSes. The only exception
is the '-D' C flag which seems universally available
on all C compilers.
* "/" prefixed Harbour options will now be recognized
in normal mode on non-*nix systems.
! DOS EOL char is now ignored in .hbp/.hbm files.
+ Added -bm owatcom C compiler switch in -mt mode for win/os2/linux.
Pls test on os2/linux.
* TOFIX: Attempted to add -gui support for win/owatcom. Harbour
still complains about "It's not a GUI app". This compiler
is a real bitch with tons of similarly looking options
and no adequate online docs, so if someone feels like
it, pls correct the TOFIX section in source.
Until then GTWVT and GTWVG won't work with owatcom.
; NOTE: Most probably not, but I hope hbmk2 now qualifies for
"basic functionality".
* mpkg_win.nsi
! Fixed to not include some more unnecessary files generated
by certain linkers along the build process.
* source/compiler/ppcomp.c
! #pragma -k? options are now case-insensitive like all
other Harbour options.
This completes this change:
2008-08-06 22:18 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk2/hbmk2.prg
+ Added warning msg if referenced .hbm file cannot be found.
+ filename without extension referenced with @ prefix
will get an .hbm extension added automatically.
! Typo in prev fixed.
* Filename updated in comment.
* doc/man/hbmk.1
* Updates. Work in progress.
* utils/hbmk2/hbmk2.prg
+ Added man page, troff/groff links.
! Reversed the logic shared lib paths were included by.
* Changed the meaning -hbcc again. Now it will switch hbmk2
to a mode where it accept -c option. If -c is sensed, it
will stop after calling the C compiler.
! gtwxc removed from default GT list for *nix systems.
It should be added there by hbmk.cfg.
* doc/man/hbmk.1
* Updated. Blindly.
Do someone know a tool which can render man pages and show
it without having to install this file first?
* utils/hbmk2/hbmk2.prg
! Fixed to not create .c stub if only C compilation is requested.
In this case it won't do any entry function detection either.
! Attempt to fix core GT dependencies not automatically linked
with gcc/*nix for gtsln/gtcrs/gtxwc (in static mode).
% Not adding some (now unnecessary) system libraries when in
shared mode for gcc family compilers on all platforms.
See: 2009-03-04 12:56 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
; Please test above changes.
* harbour/bin/hb-func.sh
* explicitly bind system libraries with harbour shared library.
RPM/DEB packages should automatically detect these dependencies.
Viktor, now you do not have to pass system libraries like
m, dl, rt, pthread, socket, nsl, resolv, curses, slang, x11,
wininet, ws2, commdlg, commctrl, uuid, ole32 ... when you create
shared binaries by hbmk2 - all bindings are in harbour shared
library. They are necessary only for static builds.
* bin/hb-mkdyn.sh
* bin/postinst.sh
+ Added some level of cygwin support.
; TOFIX: .dlls are not generated.
* make_gnu.sh
* Change recently added '==' operators to '='.
+ Added link to GNU bash and POSIX shell docs.
For Harbour we need to comply with the latter
(at least for OS neutral script parts).
* INSTALL
* mpkg_win.bat
* config/global.cf
* Formatting.
* INSTALL
* HB_INC_OPENSSL sample corrected to point to real-life header dir.
+ Added cygwin compiler. gcc temply removed from doc list.
% Removed unnecessary -n hbmk2 switches.
+ Added cygwin section.
* utils/hbmk2/hbmk2.prg
+ Don't add gtnul as a real library.
Please test, I've never used GTNUL.
+ Added support for cygwin compiler value.
(works the same as current 'win/gcc' combination)
! Typo in rare error messages.
! Removed -no-cygwin option from cygwin gcc command line.
* source/common/hbprintf.c
* contrib/hbssl/sslrand.c
! Fixed to compile with cygwin.
; TOFIX:
when running hbtest.exe:
Error DBFNTX/1011 Write error: _hbtmp_.dbf
Called from DBCREATE(0)
Called from TEST_BEGIN(0)
Called from MAIN(0)
* make_gnu.sh
+ Added cygwin detection.
* config/win/gcc.cf
+ config/win/cygwin.cf
+ Added separate cygwin make config.
gcc is now just a map to cygwin.
* INSTALL
* make_gnu.bat
- 'msvc' is no longer the default choice for win.
HB_COMPILER must always be specified.
* mpkg_win.bat
+ Removes tmp install dir before creating the build.
+ Added support for MinGW.
+ Added creation of .zip packages. (Info-ZIP zip.exe
is required).
* make_gnu.sh
* INSTALL
+ on win/dos/os2 systems it will create HB_*_INSTALL dirs
automatically (sync with make_gnu.bat).
+ on dos/os2 it will also automatically set HB_DOC_INSTALL.
+ on win/dos/os2 it will automatically convert
HB_INSTALL_PREFIX and HB_*_INSTALL to use forward slashes.
* utils/hbmk2/hbmk2.prg
+ Added gtnul to standard list of GTs.
Attempt to solve the problem reported by Barry Jackson.
Please test if this solves anything.
* doc/Makefile
! Deleted files removed.
* mpkg_win.bat
! Not polluting caller environment vars.
* Changed to always override HB_INSTALL_PREFIX to a local temp dir.
(to avoid picking up any other misc files accidentally present
in a user supplied directory)
+ Added --deltemp option which will delete the temp install dir.
+ Completed requirement list.
* mpkg_win.nsi
* Formatting.
* harbour/contrib/examples/uhttpd/uhttpd.prg
* Updated uHTTPD (Work in progress)
! Fixing memory usage attempt.
Set PRIVATE vars to NIL when not more used and force
collect memory with hb_GCAll( .T. )
* Set Service Threads initial value to 0
+ Added support for directory index files
+ Added support for filters (WIP)
* Added creation of error.log file in case of error
* Minor changes
* harbour/contrib/examples/uhttpd/cgifunc.prg
* Fixed comment
* harbour/contrib/examples/uhttpd/uhttpd.ini
+ DirectoryIndex entry
; NOTE: Please check me for memory usage. I have added a comment
// FSG - memory check
to interested lines. But I'm not sure if this solves the
problem.
* INSTALL
+ Extended 'HOW TO ENABLE OPTIONAL COMPONENTS BEFORE BUILD'
section a bit. (HB_DIR_* stuff still not included as it's
early to document it yet, refer to the ChangeLog for info
on it).
* bin/hbmk.bat
- Removed -n switch.
+ mpkg_win.bat
+ Added Windows installer creator script.
; TODO: Move all mpkg_*.* and related files to new /package dir.
* mpkg_win.nsi
+ Changed to use HB_*_INSTALL envvars for source file locations.
! Fixed to exclude .tds files.
+ Will now will include version number, architecture and compiler
in installer .exe name.
+ Default install destination will now include compiler name.
* source/compiler/hbmain.c
* source/compiler/cmdcheck.c
* source/compiler/gencobj.c
* source/compiler/hbusage.c
+ Marked -go option as HB_LEGACY_LEVEL2. Deprecated text
shown on help screen.
* utils/hbmk2/hbmk2.prg
! Fixed entry func autodetection problem with gcc when
source file is passed without .prg extension.
Reported by Maurilio.
* harbour/source/rtl/hbproces.c
* check if some define constants exists before use - it should
fix compilation in some WinCE builds, f.e. with MSVC
* harbour/source/common/hbprintf.c
* disabled _LIB_VERSION setting in DJGPP builds - if we need it
for some reasons then it should be done in different which does
not create multiple instances of this variable
* harbour/source/vm/Makefile
! fixed compilation with C compilers which does not support MT mode
(HB_MT=no) - it's seldom situation but may exists on some platforms,
f.e. in *nixes when PTHREADS is not available
* harbour/config/win/bcc.cf
! fixed compilation in SHELL environment
(if exists ... del ... is COMMAND.COM/CMD.EXE only command)
* harbour/source/rtl/hbstrfmt.c
! casting for C++ compilation
* harbour/contrib/xhb/dbf2txt.c
! casting for C++ compilation
! fixed two bad bugs which can cause GPF or some other bad results
I'd seen after short check. I haven't analyzed this code carefully
for others.
* harbour/bin/postinst.sh
! fixed hb*-mkslib link in cross builds (MinGW/MinGWCE)
* utils/hbmk2/hbmk2.prg
+ Now hbmk will show the filename of each processed .hbp file.
* Changed -quiet meaning: it will now suppress above messages.
* ChangeLog
+ Added new line for previous entry about new --version option.
* INSTALL
- Bison requirement moved next to the parser related option,
to not cause any unnecessary confusion.
* utils/hbmk2/hbmk2.prg
* Made -hbcc and -hbcmp to behave the same. They'll no both
generate objects.
* INSTALL
- Removed HB, HBPP envvars as cross-compilation requirements.
* make_gnu_os2.cmd
+ Now honors HB_USER_MAKEFLAGS setting.
* utils/hbmk2/hbmk2.prg
+ Added -n2 Harbour switch as default.
; TODO: If this works out well, we can remove explicit
-n switches from .hbm files.
* config/win/bcc.cf
+ Suppressing some OS commands to not pollute output.
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/include/hbexpra.c
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/cmdcheck.c
* harbour/source/compiler/hbcomp.c
* harbour/source/compiler/genc.c
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyh
* harbour/source/compiler/ppcomp.c
* harbour/source/compiler/hbdbginf.c
* harbour/source/compiler/genhrb.c
* harbour/source/compiler/hbusage.c
! fixed static variables indexes in the generated PCODE when static
variables are declared inside extended codeblocks - in some cases
wrong PCODE was generated
! fixed initialization PCODE for thread static variables declared
inside extended codeblocks
! fixed modulename generated for debugger to always contain function name
part for extended codeblock declared as file wide static variables.
In such case "(_INITSTATICS)" is used as function name.
Without it debugger does not register entering such codeblocks and
GPFs.
+ added support for automatic adding 1-st function with the same name
as compiled .prg file if some code statements are used before 1-st
function/procedure declared explicitly in .prg file. Such mode can
be enabled by -n2 new harbour compiler switch.
* utils/hbmk2/hbmk2.prg
+ Automatically switching to -hbcmp mode if /gh switch is used.
+ In -hbcmp mode it will pass /o option directly to Harbour.
- contrib/examples/uhttpd/modules/bldhrb.bat
+ contrib/examples/uhttpd/modules/allmod.hbm
+ Replaced batch file with hbmk2 make file. It will build
all .hrb files and place them to cgi-bin dir.
* source/rtl/Makefile
* include/hbextern.ch
+ source/rtl/hbstrfmt.c
+ Added HB_STRFORMAT() sprintf()-like formatting.
+ Added hb_StrFormat() C level function.
; Work of Mindaugas sent to the list, with some minor
cleanups applied. Please test on your platform/compiler.
* contrib/examples/uhttpd/uhttpd.prg
* contrib/examples/uhttpd/cgifunc.prg
* contrib/examples/uhttpd/session.prg
* contrib/examples/uhttpd/uhttpd.hbm
* xhb compatibility cleanups.
- xhb lib and header dependency removed.
* utils/hbmk2/hbmk2.prg
* Changed so that libs won't inherit their .hbm file paths.
+ Embedded .hbm files will inherit their parents dir.
* INSTALL
* Updates.
* source/vm/Makefile
- Removed sensing HB_MT value and building pure MT version
of Harbour. This is to avoid yet another unnecessary
variation of Harbour builds. For MT, just simply hbvmmt lib
should be linked.
- contrib/examples/uhttpd/hbmk.bat
+ contrib/examples/uhttpd/uhttpdgd.hbm
* contrib/examples/uhttpd/uhttpd.prg
* contrib/examples/uhttpd/readme.txt
* Added separate GD enabled .hbm file.
* Remaining hbmk.bat features moved to .prg code and into readme.txt.
* utils/hbmk2/hbmk2.prg
+ Added support for @ and .hbm parameters inside .hbm files.
Currently three levels deep nesting in allowed.
* contrib/xhb/Makefile
+ contrib/xhb/dbf2txt.c
+ Added DBF2TXT() function from xhb.
; TODO: RPC support and HB_SERVICE*() API ?