* utils/hbmk2/hbmk2.prg
* -debug description extended.
* contrib/xhb/hbcompat.ch
- Disabled dangerous bitop compatibility macros + comment added.
Enabled them with #define XHB_BITOP. Or even better
to change code to use HB_BIT*() functions natively.
* utils/hbmk2/hbmk2.prg
+ Added support for static lib creation (experimental).
win/msvc, win/bcc are supported.
+ Added support for dynamic lib creation (experimental).
win/msvc is currently support.
; Please help adding support for the rest of compilers.
* utils/hbmk2/hbmk2.prg
+ Normalizing paths of cfg files.
* CCPREFIX, CCPATH renamed to HB_CCPREFIX, HB_CCPATH
(seems these are Harbour specific settings)
* contrib/examples/uhttpd/home/testxmldb.html
* Added Safari as unsupported browser.
(BTW, what would it need to support Safari and Chrome, or
WebKit browsers in general?)
* utils/Makefile
* Minor reordering.
* config/win/poccce.cf
* config/win/pocc.cf
! Turned off -Ox, left -Ot.
"When it comes to optimizations, the -Ot option (in this case) is the much
more important than -Ox. The -Ox option will only rarely find things to
optimize, and in your case it will cause a GPF. I suggest you skip the -Ox
option and just use the -Ot option for now...
Pelle"
* utils/hbmk2/hbmk2.prg
! Fixed -gh switch detection and workings.
(Francesco, pls check now allmod.hbm)
+ -gt switch can now be filtered. (-gtwin{win})
! -gui switch won't anymore add '-Wl,-mwindows' C compiler switch
on *nix systems. Someone pls confirm this is right.
* icc will use -vc postfixed .dlls. They seem to be binary
compatible, but I didn't test.
% Using __PLATFORM__UNIX macro where applicable.
! Ignoring -o Harbour option passed using '-prgflag:'
* INSTALL
+ Added some details.
* mpkg_win.bat
! Don't create install files if the make process returned
with error.
* source/lang/msg_tpl.c
! Removed ending ';'.
* source/vm/Makefile
+ Added icc to generate maindllh.lib.
* source/common/hbfsapi.c
! Removed obsolete 'extern hb_fhnd_ForceLink()'.
* config/rules.cf
* config/lib.cf
* config/bin.cf
% Compiling all .prg files with -n1 switch.
* contrib/examples/uhttpd/uhttpdc.c
* Cleaned Windows headers usage.
#define HB_OS_WIN_USED is safe to use on all platforms,
it just requests the Windows headers, and if compiled on
Windows, it will #include them.
* contrib/examples/uhttpd/uhttpd.prg
+ Automatically sets USE_HB_INET on non-Windows platforms.
- contrib/examples/uhttpd/uhttpd-inet.hbm
- contrib/examples/uhttpd/uhttpdgd-inet.hbm
- Removed files no longer necessary.
* contrib/examples/uhttpd/uhttpd.hbm
+ Added comment about -DUSE_HB_INET option.
% Removed -lhbct
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
- 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 ?
* INSTALL
* make_b32.bat
* doc/gmake.txt
* bin/postinst.bat
* bin/hb-mkdyn.bat
* make_gnu.bat
* contrib/hbfimage/readme.txt
* contrib/examples/uhttpd/modules/bldhrb.bat
* source/vm/Makefile
* source/rtl/console.c
* source/compiler/gencobj.c
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/examples/winapi.hbp
- config/win/bcc32.cf
+ config/win/bcc.cf
* Long time TODO done: Renamed bcc32 compiler name to bcc.
bcc32 is still accepted by make_gnu.bat, but will be
removed in the future, so it's recommended to update
your local settings to use:
set HB_COMPILER=bcc
- config/dos/bcc16.cf
- Deleted bcc16 compiler support. I didn't work since ages,
and Harbour doesn't support 16-bit compilers anyway.
* utils/hbmk2/hbmk2.prg
! Fixed yesterday's -fullstatic patch. Now it should work.
* make_b32.bat
* make_vc.bat
- Disabled automatic .dll builds to expose the
pure make_gnu.bat interface.
* Some refininements to vc version.
+ mpkg_win.nsi
+ Added NSIS Windows installer script.
Needs to be inserted into build creation process,
which is completely missing yet from SVN. Anyhow
it's tested and working well. At this moment it should
be run from a freshly created dir created with
'make_gnu.bat install'.
You can find the result here:
http://www.syenar.hu/harbour/harbour-1.1.0dev-win32-msvc.exe
* utils/hbrun/hbrun.prg
+ Added -v option which simply runs '? hb_version()' after
startup.
* make_gnu.bat
+ Added init of HB_DOC_INSTALL.
* doc/license.txt
- Removed SVN header to be in full sync with /COPYING.
* INSTALL
* Minor cleanups.
* utils/hbmk2/hbmk2.prg
+ Added '-Wl,-static' option for gcc/*nix when -fullstatic
hbmk option is used. I hope this is fine. On my Ubuntu,
this says: '/usr/bin/ld: cannot find -lgcc_s'.
- Removed debug trace line left in.
* contrib/Makefile
! Fixed commenting hbwhat.
* make_gnu.bat
+ Added autodetection of mingw32-make.exe. If found in
PATH, it will be used instead of make.exe.
This way the build process is much less resistant of
environment configuration. If this works out, I'll
lax the rules in INSTALL.
* utils/hbmk2/hbmk2.prg
* Minor internal cleanup to previous.
* INSTALL
+ Added text to specifically tell to rename mingw32-make.exe
to make.exe if the former is found in a distro.
BTW most probably mingw32-make.exe would also make it, but
our make_gnu.bat file wants make.exe, and there is no
easy way to check (but can be done).
* utils/hbmk2/hbmk2.prg
! Fixed silly typo preventing object files to get their
proper extension in -hbcc mode.
* Minor internal change to avoid changing extensions twice
on the same string, since this may cause loss.
* INSTALL
* make_gnu.bat
* make_gnu.sh
+ Added listing of supported C compilers.
+ Added list of available built-time options.
(may be incomplete).
! Added -n options to hbmk2 calls.
- Removed similar content from script files.
* make_gnu.bat
- Removed --install-with-dll option.
Use set HB_BUILD_DLL=yes instead.
* utils/hbmk2/hbmk2.prg
! Fixed swapped -hbcc and -hbcmp meaning.
+ Don't deal with compiler autodetection if called with
-hbcmp option. In this mode a C compiler isn't needed
at all.
* INSTALL
* make_gnu.bat
+ Added --install-with-dll option. This will build
and install Harbour with .dlls. Some examples:
--- for msvc:
call "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
set PATH=C:\devl\make-3.81;%PATH%
set HB_INSTALL_PREFIX=C:\devl\hbvc-1.1
call make_gnu.bat --install-with-dll > out.txt 2>&1
---
--- for bcc32:
set PATH=C:\devl\bcc55\bin;%PATH%
set PATH=C:\devl\make-3.81;%PATH%
set HB_COMPILER=bcc32
set HB_INSTALL_PREFIX=C:\devl\hbb32-1.1
call make_gnu.bat --install-with-dll > out.txt 2>&1
---
* make_gnu.bat
* make_gnu_os2.cmd
+ Will now automatically create the install destination dirs.
; TODO: Could someone please add this feature to make_gnu.sh?
* bin/postinst.bat
* bin/hb-mkdyn.bat
* Moved building dll flavoured executables to postinst,
so they will be rebuilt even if HB_DLL!=yes but .dlls
are available.
* contrib/Makefile
+ Added support for option: HB_CONTRIBLIBS=no.
This will disable building any Harbour contribs.
(no need to resort to hacks here anymore)
* utils/hbmk2/hbmk2.prg
* Minor on help screen.
* utils/hbmk2/hbmk2.prg
+ Now all dirs of input files referred to through .hbm
make files will be adjusted with the .hbm path as passed
on the command line. This allows to use .hbm files without
switching to their host dirs:
'hbmk2 examples/hello/hello.hbm'
(internal logic also allows to display error messages
pointing to the exact location where the error
was detected)
+ Added simple macro substitution engine. Not used yet.
% Minor optimizations.
* bin/hb-mkdyn.bat
* source/vm/Makefile
* utils/hbmk2/hbmk2.prg
+ config/win/msvcia64.cf
+ Added support for IA64 architecure with MSVC.
(actual compilation untested as it needs MSVC Team System)
* bin/hb-mkdyn.bat
% Now using .hbm files.
* bin/hb-mkdyn.bat
* Cleaned tool outputs.
+ Added hbmaindllh lib to included liblist.
(dunno what this serves, but we had it in non-GNU make)
Do we need this at all?
+ Added support for msvc64 dll name.
* Some tweak to owatcom, but it's just guessing, it still
doesn't work.
+ Added generating hbrun-dll executable.
* source/vm/hvm.c
* source/vm/mainstd.c
* Random tweak for owatcom/win dll support without success.
Best result so far is:
"Unrecoverable error 9012: Can't locate the starting procedure: 'MAIN'"
* source/vm/Makefile
+ Added mainddllp generation for msvc, msvc64, bcc32, owatcom.
* source/vm/maindllp.c
+ Added msvc64 and msvcia64 .dll names.
* source/vm/extrap.c
* Minor tweak to use alternate (documented) CPU detection macro.
* utils/hbmk2/hbmk2.prg
+ Added msvc64 .dll name.
* Removed automatic addition of hbcommon lib for shared
mode for win compilers.
* utils/hbtest/hbtest.hbm
* utils/hbrun/hbrun.hbm
+ Added make files.
* bin/hb-mkdyn.bat
+ Moving .lib and .exp (if they are generated) files
to LIB dir.
* source/vm/maindllp.c
+ Added owatcom flavour of .dll name.
* contrib/hbwin/win_misc.c
+ Added WAPI_GETLASTERROR(), WAPI_SETLASTERROR(), WAPI_SETERRORMODE().
* utils/hbmk2/hbmk2.prg
+ Added TODO to create temp .c files in temp location.
Looks this can create a few problems (-hbcc, .ppo output
location when -p is used by user).
+ '/o' flavour of -o option is now ignored on non-*nix
systems to make sure users cannot mess up the hbmk process
flow.
* -o option modified to reset any previous explicit -o settings.
* Some minor internal renames, comments.
+ Added new hbmk.cfg / .hbp option: 'shareddef='. This can
change the default state of shared/static setting, so it
can be used by installers or user to override default
behaviour. NOTE: HB_SHARED envvar can also be used.
* Changed hbmk.cfg lookup preferences to this:
1. $HOME/.harbour
2. /etc/harbour
3. <hbmkdir>/../etc/harbour
4. <hbmkdir>/../etc
5. <hbmkdir>
(NOTE: I've deleted /etc as etc/harbour seems superior
and we already store a .def file there.
I've also deleted /usr/local/etc)
* utils/hbmk2/hbmk2.prg
! Refined autodetection of msvc to not be confused by
watcom binary dir in the path.
! Refined autodetection of owatcom by also checking for
WATCOM envvar. Thanks Petr Chornyj for the hint.
% Removed hack to not prioritize MSVC compiler detection,
so it's now handled just like the others.
* bin/postinst.cmd
* bin/postinst.bat
* bin/hb-func.sh
+ Added arch= and comp= variables to hbmk.cfg.
I plan to use these for autoconfiguration.
* make_gnu_os2.cmd
* make_gnu.bat
- Removed built in output redirection to make them in sync
with the bash flavour. Users can easily redirect it themselves.
* utils/hbmk2/hbmk2.prg
+ Formally added icc.
* config/win/msvcce.cf
! Untested fixes for msvcce in GNU make.
* utils/hbmk2/hbmk2.prg
* On *nix platform hbmk.cfg is now first checked for
in /usr/local/etc, then in /etc and after that in
hbmk2's dir. Please advise if there are other such
global config dirs to check on different platforms.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* hbmkcfg.hbp file renamed to the clearer: hbmk.cfg
Same rules apply, the format is .hbp, which is also
made clear on the hbmk2 help screen.
hbmk2 and hbmk.cfg now effecticely replaces harbour.cfg,
which can now be considered obsolete, along with the
/go option. If someone knows some real-life tasks
which can be done with /go+harbour.cfg, but cannot
with hbmk2, please speak up.