* 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 ?
* 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.
* config/win/bcc32.cf
! Fixed to use response files with tlib, to avoid command line
length limits on some systems.
- tests/run_prg.bat
+ tests/run.bat
- tests/run_prg_all.bat
+ tests/run_all.bat
* Renamed to short name.
* harbour/include/hbapi.h
* harbour/include/hbstack.h
* harbour/source/vm/hvm.c
* harbour/source/vm/estack.c
* harbour/source/vm/memvars.c
! fixed __M[V]CLEAR()/ __M[V]RESTORE() to be exactly Clipper compatible
and do not release PUBLIC GetList value. Here it's small example
which illustrates current behavior and exploits bug in previous
version:
memvar getlist
proc main()
getlist:="public:getlist"
? getlist
private getlist:="private:getlist"
? getlist
CLEAR MEMORY
? getlist
return
* harbour/source/compiler/gencc.c
+ added Harbour exception to the license - it's mine code with
few lines added/modified by Ryszard and Viktor. I hope they do
not have anything against.
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/hbident.c
* minor formatting
* harbour/contrib/gtwvg/common.mak
* harbour/contrib/gtwvg/Makefile
+ Added wvgcuig.c
* harbour/contrib/gtwvg/gtwvg.h
+ Added PHB_GOBJS structure to hold static CUI enhancement elements.
* harbour/contrib/gtwvg/gtwvg.c
! Implemented hb_gt_wvt_PaintGObjects( PHB_GTWVT pWVT, RECT *uRect )
just before EndPaint() call.
+ harbour/contrib/gtwvg/wvgcuig.c
+ Implementation of pure static controls with Clipper like
approach leaving away the details of heavy GTWVG base
protocol.
* harbour/contrib/gtwvg/tests/demowvg.prg
! Implemented simplified GUI look to a CUI console.
Now it is possible TO build console dialogs pretty fast.
This implementation assumes that appln will NOT use
overlapping screens as with SaveScreen()/RestScreen()
functions. Instead a new window will be opened to host
overlapping screens.
Please look at <Traditional><WVG Console with GCUI> to
look at this functionality. The code goes below:
/* PROCEDURE GCUIConsole()
LOCAL dDate := ctod( "" )
LOCAL cName := Space( 35 )
LOCAL cAdd1 := Space( 35 )
LOCAL cAdd2 := Space( 35 )
LOCAL cAdd3 := Space( 35 )
LOCAL nSlry := 0
LOCAL nColGet := 8
LOCAL GetList := {}
LOCAL cLabel := "VOUCH, that GROWS with you"
SetColor( "N/W,N/GR*,,,N/W*" )
CLS
hb_gtInfo( HB_GTI_WINTITLE, "WVG Simplified GUI Console" )
@ MaxRow(), 0 SAY PadC( "GTWVG Simplified GUI Console", maxcol()+1 ) COLOR "W+/B*"
@ 2, nColGet SAY "< Date >"
@ 5, nColGet SAY "<" + PadC( "Name", 33 ) + ">"
@ 8, nColGet SAY "<" + PadC( "Address", 33) + ">"
@ 15, nColGet SAY "< Salary >"
@ 3, nColGet GET dDate
@ 6, nColGet GET cName
@ 9, nColGet GET cAdd1
@ 11, nColGet GET cAdd2
@ 13, nColGet GET cAdd3
@ 16, nColGet GET nSlry PICTURE "@Z 9999999.99"
// The only additional calls to render your console GUI
//
// The GETLIST : This can be embedded via @ GET preprocessor command
aEval( GetList, {|oGet| Wvg_BoxGet( oGet:Row, oGet:Col, Len( Transform( oGet:VarGet(), oGet:Picture ) ) ) } )
// And thsese can be another @ SAY commands
Wvg_BoxRaised( 1, 2, 18, 49, { -5,-5,5,5 } )
Wvg_BoxRecessed( 1, 2, 18, 49 )
Wvg_BoxGroupRaised( 2, 4, 17, 47, { -7,-7,7,7 } )
// Instruct GT to Repaint the Screen with GUI elements.
Wvt_InvalidateRect( 0, 0, maxrow(), maxcol() )
// Issue the read
READ
RETURN
*/
* make_gnu_os2.cmd
* make_gnu.sh
+ Setting HB_DOC_INSTALL dir.
(the .sh sets it only for mingw, please test)
* INSTALL
* contrib/hbhpdf/make_b32.bat
* contrib/hbhpdf/make_vc.bat
* contrib/hbgd/make_b32.bat
* contrib/hbgd/make_vc.bat
! Old typos in two HB_INC_* examples.
* INSTALL
* Cleaned the section dealing with GNU Make on Windows.
---
3.) Make sure to have GNU Make. We recommend the one distributed
with MinGW. To get it:
- Use your search engine with 'mingw gnu make'
- Use this link:
http://sourceforge.net/project/showfiles.php?group_id=2435
If you have it, you have three choices:
- Put mingw32-make.exe anywhere in your PATH. (recommended)
- Put mingw32-make.exe in Harbour source root dir.
- Rename mingw32-make.exe to make.exe and put it in
your PATH _before_ your compiler tools.
---
* make_gnu.bat
+ mingw32-make.exe is now also accepted in Harbour's source
tree root.
* 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.
* INSTALL
+ Added more information to Windows section.
This will need a cleanup already.
+ Added links, header.
* make_gnu.bat
+ Added automatic default of HB_INSTALL_PREFIX on NT
and above systems. This means this setting is now
option. If not set, it will install under the
source tree.
* 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.
+ harbour/contrib/xhb/xhbcls.ch
+ added header file which xHarbour like OVERRIDE / EXTEND CLASS
definitions.
Warning: using this functionality may break logical inheritance
scheme or even some internal class definitions in both
Harbour and xHarbour compilers. In Harbour it's unsupported
feature added here only for strict XHB compatibility.
* INSTALL
+ Added more information.
(everyone trying to build Harbour from source
should read this first.)
* bin/postinst.bat
+ Added option to copy import libs belonging to
external tools for msvc and bcc32 to HB_LIB_INSTALL.
This is to keep this debated, but convenient feature
for the GNU-make world, until we find some better way
to deal with it. Now it's self contained, detached from
all important Harbour parts. And most importantly:
You don't have to use it, if you don't want to.
Now, if you want, set HB_DIR_IMPLIB to "yes" and
setup your HB_DIR_* dirs to the roots of the external
tool dirs, like this (adjust to your environment):
---
set HB_DIR_IMPLIB=yes
set HB_DIR_ADS=C:\devl\ADS910\ACESDK
set HB_DIR_ALLEGRO=C:\devl\allegro-4.2.2
set HB_DIR_APOLLO=C:\devl\Apollo-6.1.0.4
set HB_DIR_BLAT=C:\devl\blat-2.6.2
set HB_DIR_CURL=C:\devl\curl-7.19.0
set HB_DIR_FIREBIRD=C:\devl\Firebird-2.1.1
set HB_DIR_FREEIMAGE=C:\devl\FreeImage-3.11.0
set HB_DIR_GD=C:\devl\gd-2.0.34
set HB_DIR_LIBHARU=C:\devl\libharu-2.1.0
set HB_DIR_MYSQL=C:\devl\mysql-5.0.67
set HB_DIR_OPENSSL=C:\devl\openssl-0.9.8j
set HB_DIR_PGSQL=C:\devl\pgsql-8.3.3
---
(This may be tweaked in the future, so I don't
guarantee any compatibility for this stuff)
* make_b32.bat
* make_vc.bat
* make_gcc.sh
* Redirected old "non-GNU" build starters to the mainstream
Harbour GNU Make system, with some measures to keep
compatibility. It's not 100% compatible, but the most
important settings and aspects should be similar.
It's recommended for everyone to switch using the GNU
make system natively, as the non-GNU one will be removed
in the future, the old way is now legacy and not supported.
* INSTALL
* make_gnu.bat
+ Added some more information.
* bin/postinst.bat
* make_gnu.bat
* config/win/global.cf
* Renamed HB_DLL to HB_BUILD_DLL, which makes this GNU make
setting compatible with old non-GNU make.
* 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.