* utils/hbmk2/hbmk2.prg
+ Added autodetection of compiler based on build data on linux.
+ Added '-comp:bld' option to force autodetection based on build
data for all other platforms. This way the compiler will be
set to the same one as was used to build hbmk2 executable.
+ Added support to specify object output name using the -o
option in conjunction with the -hbcmp parameter. Single
and multiple input (c. and .prg->.c) files are also supported,
but that's compiler dependent, currently gcc/pocc/msvc/bcc32
supports single file and also msvc/bcc32 support multiple files.
* os2/icc libprefix reset and TODO added.
+ Added some cross-platform related markups (comments).
! Fixed not stripping 'lib' from libnames for linux/gpp.
* utils/Makefile
! Fixed broken GNU Make after recent directory rename.
* utils/hbmk/hbmk2.prg
* -q switch changed to -quiet to not collide with harbour option
of the same name.
+ Following C flags will automatically be inheried to
*nix/gcc|gpp compilers regardless of -bldf flag:
-mlp64, -mlp32, -m64, -m32, -fPIC, -fpic
+ Following C flags will be automatically processed and
relevent system libs added:
-DHB_PCRE_REGEX - pcre
-DHB_EXT_ZLIB - z
-DHAVE_GPM_H - gpm
! Stripping 'lib' prefix from lib names for gcc-family compilers.
! Stripping extension from lib names for gcc-family compilers.
; Please review.
* contrib/examples/uhttpd/hbmk.bat
* .lib extensions removed from HB_USER_LIBS.
* common.mak
* changed HBM_KDIR from "utils\hbmk" to "utils\hbmk2"
- utils/hbmk
+ utils/hbmk2
* renamed dir name to fix wrong dir change on gnu scripts: mpkg_tgz.sh
and the harbour.spec
! Fixed dir name error that avoided to build rpms and tgz files.
* utils/hbmk/hbmk2.prg
+ Added object archive support for (currently) gcc compilers.
.a file are gathered like .o files, and they can be added
to the internal command line templates using the {OA} macro.
I've added these after {O} macros in gcc cmdlines.
(Przemek's request #9. Please review.)
* Minor internal change to system location detection.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* mpkg_tgz.sh
% Removed -r make flags. No longer needed.
* utils/hbmk/hbmk2.prg
+ Added new flags to replace -bldflags[-]:
-bldf[-] and -bldf=[p][c][l]. We can pass any combinations
to the latter. '-bldf=' is the same as '-bldf-'.
+ Added hbcplr to liblists (both static and shared).
+ Added infrastructure to allow for any kind of logic
to detect compilers (not just PATH search for .exe).
We should however very carefully use such methods
to keep detection precize, predictable. For now I'd like
to hear about misdetections using current system.
* utils/hbmk/hbmk2.prg
+ Added new TODOs.
+ Now using GTCGI as the GT.
+ Added -info option to enable informational output.
(currently this is the default for testing period)
+ Added -arch=<arch> command line option. Same as HB_ARCHITECTURE.
Added -comp=<comp> command line option. Same as HB_COMPILER.
envvars are kept for compatibility.
+ Added -hblnk option to give plave for hblnk script behaviour
emulation.
* Changed -cc, -cmp options to -hbcc, -hbcmp respecitvely.
+ Changed -hbcc, -hbcmp, -hblnk switches to turn off information
output and turn on quiet mode by default.
+ Added autodetection of architecture when unique to
architecture compiler is choosen manually. IOW, when
-comp=msvc|mingw|pocc|dmc|xcc is passed the architecture will
be set to win automatically. When -comp=djgpp is used,
dos will be selected.
! Fixed ordering of compiler autodetection because f.e. owatcom
bin dir holds a 'cl.exe', which made hbmk2 falsely detect msvc.
+ Added trick which I'm not sure I like, and may cause problems
and seemingly unpredictable behaviour, but could also help
in some environments where multiple compilers are setup in
parallel (this isn't a recommended scenario for various other
reasons, so maybe we shouldn't support it further). So from
now on the compiler autodetection will first look for the
compiler used to build hbmk2.exe, and check for the rest
afterwards. This feature is turned off for msvc builds of
hbmk2.exe because it breaks owatcom autodetection.
+ Added possibility to pass a plain dir by using -odir[\|/]
switch. The final name will be determined by first input
file name, if this one also has a dir, -o option will be
ignored. Added logic to handle separator differences, this
wasn't tested to a great deal.
+ Added -Wl,--start-group support for linux/gcc|gpp, win/mingw,
dos/djgpp.
! Fixed owatcom support to setup library paths.
! Fixed linux/owatcom to use link script.
* Some adjustments to win/owatcom C compiler settings. I guess
the ones in .cf should also need a cleanup.
* Few minor indentation problems fixed.
! C compiler and linker scripts now got an extension in
the generated temp filename to make some of them happy
(owatcom in this case). .cpl is used for compiler scripts,
.lnk for linker ones.
+ Compiler autodetection now also looks in hbmk2 executable
dir before looking into the PATH.
! Link script content was wrong due to typo.
! Fixed problem with library paths being wrong (doubly
decorated) in the link command. This may also fix some
problems with double extensions and final .c file cleanup.
! Fixed to add hbdebug lib when building in shared mode.
! Fixed typo in automatically adding './' on *nix systems.
; Please test, I definitely couldn't retest all scenaros
after all these changes.
* bin/postinst.bat
* Adapted change in mode modifier switches, also
added new -hblnk one.
* utils/hbmk/examples/winapi.hbp
+ Added mapi32.
+ utils/hbmk/examples/contrib.hbp
+ Added .hbp file for popular and portable only contribs.
* config/win/owatcom.cf
- Removed unnecessary system libs.
* contrib/hbvpdf/hbvpdft.prg
* hbwhat32 -> hbwhat in comment.
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/wapi_winuser.c
! Fixed harbour-project page link in header.
* contrib/hbwin/hbwapi.h
* Formatting (indenting the whole file content inside
self-guard isn't necessary.)
* utils/hbmk/hbmk2.prg
+ Added rest of default *nix system paths.
% Minor optimization regarding the above.
! Fix regarding the above (include/lib were swapped).
* make_gnu.sh
* Formatting.
* ChangeLog
* utils/hbmk/hbmk2.prg
* TODOs moved to source file.
+ Added hbp comment syntax to help screen.
* config/win/install.cf
! Reverted previous fix (with xcopy) and replaced with
official method to suppress return value.
* utils/hbmk/hbmk2.prg
% Optimizations in FindInPath().
! Fixed handling dirs in PATH with embedded path separator
in them.
! Possible fix for owatcom compilers by forcing link
script instead of passing options on the command line.
* utils/hbmk/examples/winapi.hbp
! Updated for BCC.
* source/vm/cmdarg.c
* little hack from Przemyslaw to make it work under OS/2 where
executable name hasen't got extension if extension was not give when
executable was started.
* utils/hbmk/hbmk2.prg
* Changed to work under OS/2 with GCC; other OS/2 compilers not tested.
* utils/hbmk/hbmk2.prg
* '-l-' is now passed to Harbour instead of being considered
as a lib spec.
* Arch/comp is now case-insensitive in filters too.
* Removed GTSTD usage.
It caused a stall at startup for BCC, and Ctrl+C had
to be pressed to proceed. I didn't investigate further,
maybe it's a local problem.
* contrib/gtalleg/tests/gtalleg-static.hbp
+ Added some Windows libs. The libs seem compiler
and/or SDK dependent, so pls update this, current state
is probably enough to get an idea of it.
+ utils/hbmk/examples/winapi.hbp
+ Created hbp file for Windows libs.
* utils/hbmk/hbmk2.prg
* utils/hbmk/examples/xbgtk.hbp
* utils/hbmk/examples/xhgtk.hbp
* Formatting.
* utils/hbmk/hbmk2.prg
+ Added handling of quoted options (with double quotes) for
items containing spaces. hb_AToken( , , .T. ) is used, so
these rules apply. Outer double quote pair will be stripped
from the quoted items.
We will probably need extra code to add the quote back
when forming the command lines. Anyway this feature mainly
targets to support pkg-config options, which have their
own special quotes anyway.
! Minor change to not use hb_cmdline() for -q option detection,
and also to ignore -q in main option processing loop.
! Fixed explicit .hbp processing.
* contrib/gtalleg/tests/gtalleg-shared.hbp
* contrib/gtalleg/tests/gtalleg-static.hbp
* utils/hbmk/examples/xbgtk.hbp
* utils/hbmk/examples/hwgui.hbp
* utils/hbmk/examples/xhgtk.hbp
* Updated pkg-config related lines.
* bin/postinst.bat
+ Added generation of hbcc[.bat|.cmd], hbcmp[.bat|.cmd]
and hblnk[.bat|.cmd].
; NOTE: Available only when using GNU-make to build Harbour.
* utils/hbmk/hbmk2.prg
% Minor optimizations.
+ HB_USER_LIBS now gets automatic path separator adjustment.
* config/win/msvc.cf
! Added missing system libs.
! Tweaked C options to be like in non-GNU make.
* make_gcc.sh
* make_gnu.sh
- Removed compatibility with HB_ARCHITECTURE = w32.
* utils/hbmk/hbmk2.prg
! Fixed not recognising hbp lines if the filter was at BOL.
! Two minor fixes.
* utils/hbmk/examples/xbgtk.hbp
+ Added cflags, it was already supported, just forgot about it.
* contrib/hbblat/tests/hbblat.hbp
* contrib/hbblat/tests/blatcmd.prg
% Using WIN_GETCOMMANDLINEPARAM().
* contrib/hbwin/win_misc.c
* contrib/hbwin/tests/testreg.prg
+ Added WIN_GETCOMMANDLINEPARAM().
Similar to WAPI_GETCOMMANDLINE() but returns
only the parameter part. Handles UNICODE,
_SET_OSCODEPAGE and appnames with spaces.
* contrib/hbwin/tests/hbwin.hbp
! Fixed to include shell32 lib.
* contrib/hbwin/Makefile
* contrib/hbwin/common.mak
+ contrib/hbwin/wapi_winbase.c
* contrib/hbwin/tests/testreg.prg
+ Added WAPI_GETCOMMANDLINE().
With UNICODE and _SET_OSCODEPAGE support.
* ChangeLog
* TOFIX (hb_cmdline()) marked as POSTPONED with explanation.
+ contrib/gtalleg/tests
+ contrib/gtalleg/tests/gtalleg-shared.hbp
+ contrib/gtalleg/tests/gtalleg-static.hbp
* utils/hbmk/examples/whoo.hbp
* utils/hbmk/examples/c4w.hbp
* utils/hbmk/examples/minigui.hbp
* utils/hbmk/examples/hwgui.hbp
* utils/hbmk/examples/fwh.hbp
+ utils/hbmk/examples/xbgtk.hbp
+ utils/hbmk/examples/xhgtk.hbp
+ Added new hbp files and settings to cover support by current
hbmk script features.
+ Added new gtalleg hbp files for Windows, both static
and shared. Added logic from hbmk script for Linux.
; NOTE: This is a work in progress, I'll have to investigate
-I support needed for xbgtk, hbmk can't handle that yet.
Also pkgconfig notation isn't parsed well yet, there needs
to be added syntax to allow spaces inside items.
Expect some possible incompatible changes in this area.
* utils/hbmk/hbmk2.prg
+ Made HB_ARCHITECTURE and HB_COMPILER case-insensitive.
Notice however that other parts of Harbour (notably the
GNU-make system) will only accept them in lowercase, so
that's the recommended way to setup these values.
* One error message made more informative.
* utils/hbmk/hbmk2.prg
+ HB_COMPILER now automatically set to gcc for Linux.
You can override it if you need gpp or owatcom.
+ xcc, icc autodetection for win.
+ Added support for HB_MT=mt|MT for compatibility.
+ Added support for -mwindows/-mconsole for compatibility.
+ 0/1 is accepted instead of yes/no for compatibility.
* utils/hbmk/hbmk2.prg
+ Added support for -fullstatic.
+ Added '-lm' to linux/gcc. Still needs to tweaking, like gpm.
* bin/hbmk.bat
+ Added missing '@'.
* make_b32.mak
* make_vc.mak
* common.mak
+ bin/hbmk.bat
* utils/hbmk/Makefile
- utils/hbmk/hbmk.prg
+ utils/hbmk/hbmk2.prg
+ Renamed hbmk to hbmk2 to avoid collision with hbmk script,
and to allow parallel testing.
+ Readded hbmk.bat to redirect to hbmk2.exe.
This will be removed in the future. Win9x/OS/2 isn't
supported with this batch file.
* utils/hbmk/hbmk.prg
+ Added support for multiple -L (lib path) options.
+ Added support for libpaths= option in .hbp files.
! Fix/cleanup to help screen.
! Fixed handling of libs specified in an explicitly passed
.hbp file due to typo.
* utils/hbmk/hbmk.prg
+ Added support for -cc switch. This will stop hbmk after creating
the Harbour .c outputs to emulate hbcc tool behaviour.
'hbcc' -> 'hbmk -cc $*'
+ Added support for -cmp switch. This will stop hbmk after creating
the object outputs from the C compiler.
'hbcmp' -> 'hbmk -cmp $*'
+ From now on objects file passed on the command line will also
be considered as final executable name if passed before the other
files.
* Tweaked internals to cope with some new combinations, like
passing object only for a compiler having separate C compiler
and link phases. Launching C compiler even if there are only
object files.
- tests/hbmk_gnu.bat
- Removed.
* contrib/examples/uhttpd/hbmk.bat
* contrib/examples/dbu/hbmk.bat
* contrib/examples/rl/hbmk.bat
* Made them compatible with Win9x/NT systems again.
* source/lang/msg_tpl.c
+ Added NOTE about date format.
* source/lang/msgbe866.c
* source/lang/msgbewin.c
* source/lang/msgbg866.c
* source/lang/msgbgiso.c
* source/lang/msgbgmik.c
* source/lang/msgbgwin.c
* source/lang/msgit.c
* source/lang/msgnl.c
* source/lang/msgsl437.c
* source/lang/msgsl852.c
* source/lang/msgsliso.c
* source/lang/msgslwin.c
! Fixed date formats to only contain YYYY MM and DD.
Plus the format itself corrected in a few places.
* utils/hbmk/hbmk.prg
+ Added TODO
% Added ANNOUNCE HB_GTSYS / REQUEST HB_GT_STD_DEFAULT.
Since this tools doesn't need anything fullscreen, and
this way it's faster smaller, yet portable.
* ChangeLog
* Few old TODO/TOFIX statuses updated.
* utils/hbmk/hbmk.prg
+ Added support to pass .hbp files on the command line.
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/hbwapi.h
! Remaining comments changed to ANSI.
* contrib/hbapollo/tests/hbapollo.hbp
+ Added filters.
; TOFIX: hbapollo test doesn't link with MSVC.
- contrib/hbapollo/tests/hbmk.bat
- contrib/gtwvg/tests/hbmk.bat
- contrib/hbbtree/tests/hbmk.bat
- contrib/examples/terminal/hbmk.bat
- contrib/examples/terminal/hbmk_trm_appn.bat
- Removed batch versions of make files.
Go to the directory the source are located and
use the .hbm files where there is one, or just pass
the .prg name to hbmk.exe.
* utils/hbmk/hbmk.prg
! Fixed handling lib/source files with double extensions.
! Fixed to not add empty items to lists in some occasions.
+ Added -q to suppress informational output + header.
- bin/hbmk.bat
- bin/hbmk_gcc.bat
- bin/hbmk_os2.cmd
- bin/hbmk_ow.bat
- bin/hbmk_b32.bat
- bin/hbmk_vc.bat
- Removed make files obsoleted by new hbmk tool.
Old calling convention, features, switches, envvars
continue to work.
WARNING: If you've called hbmk as hbmk.bat,
you'll need to change that to simply hbmk.
* contrib/hbodbc/odbc.c
* Minor formatting.
* utils/hbmk/hbmk.prg
! Fixed owatcom link commands. (it was also wrong
in hbmk.bat)
+ Added -debug support for owatcom. (untested)
+ Added rsxnt/rsx32 support in an unobtrusive way.
* source/compiler/hbusage.c
+ Added Vailton Renato to credit list.
* utils/hbmk/hbmk.prg
+ Cleanups and additions to help screen.
! Fixed dm/dmc compiler ID.
- config/win/dm.cf
+ config/win/dmc.cf
* contrib/gtalleg/Makefile
* contrib/hbwhat/Makefile
* Digital Mars C compiler ID changed from dm to dmc.
(they also have a D compiler f.e.)
* utils/hbmk/hbmk.prg
+ Added support for '#' comment lines in .hbm files.
+ Added support to automatically convert slashes/backslashes
in passed libnames and prg options.
* Cleanup on computing Harbour location. I didn't test all
situations here. This should fix previous versions not
honoring explicit HB_*_INSTALL envvars.
+ Added support for POCC (untested).
+ contrib/hbct/tests/hbct.hbp
+ contrib/examples/terminal/terminal.hbp
+ contrib/examples/terminal/trm_appn.hbm
+ Added new hbmk files to show what it takes to replace
the current system, but this time fully supporting
all Harbour platforms.
To use these just run hbmk, either from the path, or
by directly pointing to it:
..\..\..\bin\hbmk.exe <test.prg>
..\..\..\bin\hbmk.exe trm_appn.hbm
.exe can be dropped as soon as we delete out hbmk.bat file.
* utils/hbmk/hbmk.prg
+ Added POCC and DMC autodetection.
+ Added screen message when no C compiler could be
autodetected.
! owatcom was missing from OS/2 supported compiler
internal list.
* utils/hbmk/hbmk.prg
+ Added support for -map switch to create a map file.
+ Added support for -run switch to run the created executable.
+ Script files can be passed without '@' prefix if using the
extension '.hbm'. So 'hbmk myscript.hbm' will now also work.
+ Now possible to negate most switches using a '-' postfix:
'hbmk -strip-'
+ Added '-notrace'/'-trace-' switches to disable tracing.
+ Some steps towards Windows resource support.
+ Added support for 'cflags=' and 'ldflags=' in .hbp files.
+ Added mini architecture/compiler filter which can be used
in every line of an .hbp file, and also for every library
passed on the command line:
hbmk hello.prg -lonlyforlinux{linux}
The filter expression can use paranthesis, '&' for AND,
'|' for OR and '!' for not. F.e.: {linux&!owatcom}
% Minor optimizations.
+ utils/hbmk/examples
+ utils/hbmk/examples/whoo.hbp
+ utils/hbmk/examples/c4w.hbp
+ utils/hbmk/examples/minigui.hbp
+ utils/hbmk/examples/hwgui.hbp
+ utils/hbmk/examples/fwh.hbp
+ Added few example for .hbp files to support 3rd party
packages. These may be removed, as it's better if these
are supplied by the packages themselves.
NOTE: I took these from hbmake, and they are probably
obsolete.
* utils/hbmk/hbmk.prg
+ Added -bldflags option which tells hbmk to also
apply user build flags (HB_USER_*FLAGS) used when
building Harbour.
* Minor internal cleanups.
! Typo in help screen.
* utils/hbmk/hbmk.prg
+ Added support for parameters passed in files:
'hbmk @myprogram.hbm'.
Multiple scripts can be passed, and they can be
combined with normal command line options.
This makes it possible to supply quasi make files
for programs.
+ Added support for hbmake parameter (.hbp) files. hbmk
will scan current dir for .hbp files and process them.
.hbp files can specify user libs, .prg options, can
control MT, GUI, NULRDD, SHARED, DEBUG, STRIP and can
select GT. This makes it ideal to offer automatic setup
for lib dependent programs, f.e. an .hbp can be places
in contrib test dirs to allow for a configuration free
make process without the need of any helper batch/script
files. 3rd party makers can also supply .hbp file for
the same effect, f.e. xhgtk, hwgui support may be added
this way, without hard-wiring knowledge into hbmk itself.
-nohbp disables processing of these files.
+ Added support for HB_GT envvar.
+ -o support for win/msvc.
! Fix to GT handling and -shared to for msvc and bcc32.
! Fixed some envvar names.
* utils/hbi18n/hbi18n.prg
* Minor typo.
* utils/hbmk/hbmk.prg
+ Added -strip/nostrip switch and implemented for GCC/GPP.
+ Added -trace switch to see executed commands.
+ Added negative switches: -std, -st, -nodebug
+ Added detection whether Harbour is installed in default system
locations on *NIX systems. If it is, turn on shared libraries
by default for all *NIX systems.
+ Added support for GT selection with -gt??? switch.
(using .prg method, not .c as in hbmk bash script)
+ Added support for linux/gpp.
; NOTE: Some things still missing:
- details of *NIX stuff, systems libs, switches,
etc, etc.
- -fullstatic not yet supported.
- fmstat/nofmstat. It would be good to find a
more easily manageable way to influence that.
Current one is make system dependent and a bit hackish.
- handling 3rd party libs. These should be supported
by supplying proper parameter, and we can provide
example scripts for these libs. Hard-wiring them
into core Harbour is quite dangerous.
- "MAIN" function override. I'd rather leave this out,
and clear up the situation with entry procs.
- gtsln and gtcrs support.
- Watcom, OS/2, *NIX not tested.
- Built-in support for our contribs. For clear
separation of components contribs shouldn't be
referred to in this core component.
- Filtering foreign system libs passed on the command
line for platforms not needing them. The goal is to
be able to use as simple and _portable_ hbmk command
lines as possible.
- Support for POCC, DM.
; TODO:
- Switch to portable command lines in hbmk.bat files.
(Win9x will be supported again).
- Remove bin/hbmk*.bat, bin/hbmk*.cmd, util/hbmake/*.
- Cleanup on variable names in hbmk.prg.
* tests/testid.prg
* Minor cleanup.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* common.mak
* utils/Makefile
+ Added hbmk to make systems.
* utils/hbmk/hbmk.prg
+ Update. Second pass, it's now ready for testing. I've
only tried with BCC yet.
Please test and if possible update internal setup
for various platforms/compilers.
+ utils/hbmk
+ utils/hbmk/hbmk.prg
+ utils/hbmk/Makefile
+ Added hbmk .prg implementation. First pass, work in progress,
unfinished. It aims to fully replace hbmk.bat, hbmk_os2.cmd
and possibly/eventually hbmk bash script, with similar
functionality. Beyond that it's meant to support all
compiler/platform combination we happen to have under /config.