* config/global.mk
* src/dynlib/Makefile
+ src/dynlib/2nd
+ src/dynlib/2nd/Makefile
* Changed so that _HB_BUILD_DYN_ST=yes now creates a separate,
secondary dll in ST mode, called harbourst/harbours.
- src/dynlib/mt
* src/dynlib/Makefile
* src/vm/maindllp/dllpcode.c
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
* config/global.mk
* config/bin.mk
* Changed to have only one harbour dll, and this one with MT support.
This means the old MT mode dll named harbourmt/harbourm is no more
and the old ST mode dll vanished also. This will result in much
cleaner layout of Harbour binary tree, smaller distribution size,
and unambigous dll tree when linking an app with dll multiple
components (f.e. contribs).
If someone wants to build an ST mode harbour dll, she can use the
internal build-time option: _HB_BUILD_DYN_ST=yes
; Please test.
; TODO: Do a final cleanup on internal variable names to not have "ST" in them.
* config/global.mk
* config/rules.mk
* contrib/hbpost.hbm
* INSTALL
+ Renamed HB_BUILD_UNICODE to HB_BUILD_WINUNI.
Reasons many-fold, first it makes it clear this is a Windows
only setting, second it makes room for future UNICODE
setting which may mean a native UNICODE Harbour HVM,
third is to try to clear up the wide misunderstandings
surrounding this setting (several users thought this
will enable general UNICODE support in Harbour).
+ Extended/changed description of option HB_BUILD_WINUNI,
explaining its purpose better, giving more precise details
for WinCE builds and builds on Win9x/ME hosts.
; INCOMPATIBLE: If you use this setting, rename it on
your system. Note1: You don't have to set this
when doing WinCE builds (it's ignored).
Note2: Try UNICOWS, instead of overriding
this setting. It works.
* package/harbour.spec
* package/harbour-win.spec.in
* package/harbour-wce.spec.in
* include/hbver.h
* config/global.mk
+ Changed version number to:
2.1.0beta3 (from 2.1.0beta2)
* contrib/gtwvg/gtwvg.hbc
! Typo.
* contrib/gtwvg/tests/wvgactivex.prg
* Eliminated WITH OBJECT. Now Harbour doesn't
use this statement except in test code.
* config/global.mk
! HB_INSTALL_PREFIX now defaults to /opt/harbour (instead of /usr/local)
on darwin systems. (not tested)
/opt/local is for MacPorts, plus /opt/harbour is the location
hardcoded into hbmk2 for .hbc autofind, so I opted for the latter.
* contrib/hbhttpd/core.prg
* Formatting.
* contrib/hbexpat/expat/expat.hbp
* contrib/hbexpat/hbexpat.hbp
* contrib/hbexpat/hbexpat.hbc
* Minor cleanups.
* contrib/hbexpat/tests/tohash.prg
+ Added HB_HKEEPORDER( , .T. )
* external/Makefile
* config/global.mk
* INSTALL
- Deleted central option to control external lib building:
HB_EXTERNALLIBS
! Also deleted one reference to HB_EXTERNAL_ADDONS, which has
been removed earlier.
+ external/minizip/minizip.hbp
+ external/minizip/minizip.hbc
+ external/sqlite3/sqlite3.hbc
+ external/sqlite3/sqlite3.hbp
+ external/bzip2/bzip2.hbc
+ external/bzip2/bzip2.hbp
+ external/libhpdf/libhpdf.hbc
+ external/libhpdf/libhpdf.hbp
+ Added experimental hbmk2 make files for
foreign code which is used solely by contribs.
* src/pp/ppcore.c
! Fixed regression in 2010-11-01 16:42 UTC+0200.
Forgot to set value for __PLATFORM__* macros.
INCOMPATIBLE: So far the value returned by __PLATFORM__*
macros were the version part from the string
also returned by OS(), but only in non-cross
platform situations. Now they are defined
without any value, which means now the returned
value is consistent regardless of build-situation
and OS version. If you relied on this feature,
change your code to extract OS version from value
return by OS() function.
* src/vm/mainwin.c
% Do not include windows header.
* src/vm/cmdarg.c
- Undone some (innocent) part of patch in 2010-11-01 13:53 UTC+0200.
* INSTALL
* Moved around cygwin inside example section.
* src/vm/Makefile
* src/vm/mainwin.c
* src/vm/hvm.c
* src/vm/cmdarg.c
* src/vm/vmmt/Makefile
* utils/hbmk2/hbmk2.prg
* config/global.mk
* config/cygwin/global.mk
+ Cygwin related patch from Tamas Tevesz.
- Fixing cygwin dynamic lib name
- Dynamic lib linking
- defining __PLATFORM__CYGWIN in cross-platform builds
* src/rtl/dateshb.c
+ tests/dttest.prg
+ HB_DATETIME() got new, optional nYear, nMonth, nDay, nHour, nMinute, nSecond, nFragment
parameters. If passed, it will return date or timestamp based on passed parameters
instead of current timestamp.
Based on initiative and code by Carlos Bacco. Thank you!
* contrib/hbsqlit3/hbsqlit3.c
- Reverted UTF8 patch in 2010-11-01 00:05 UTC+0200.
+ Replaced above solution with transparent one, using
Str API usage and extended it for all places where UTF8
strings are expected or returned by sqlite3 API.
Please test. This clears an old TOFIX.
+ Added TOFIX for raw pointer usage.
* contrib/hbqt/qtgui/g/QApplication.cpp
* contrib/hbqt/qtgui/qth/QApplication.qth
! Fixed to wrap one declaration in HB_EXTERN_BEGIN/END.
* include/hb_io.h
* include/hbthread.h
* include/hbsetup.h
* src/vm/thread.c
* src/vm/dynlibhb.c
* src/common/hbgete.c
* src/common/hbprintf.c
* src/rtl/gttrm/Makefile
* src/rtl/hbsocket.c
* src/rtl/filesys.c
* src/rtl/hbcom.c
* config/global.mk
- config/win/cygwin.mk
+ config/cygwin
+ config/cygwin/libs.mk
+ config/cygwin/gcc.mk
+ config/cygwin/global.mk
+ Applied cygwin patch from Tamas Tevesz.
The goal is to migrate win/cygwin to cygwin/gcc, IOW to make cygwin
a distinct platform (which is primarily unixy with option to access
winapi) as it should be.
Changes made by me compared to original patch:
- Fixed to HB_HOST_PLAT stay 'win'. Cygwin is not a host platform.
- Fixed to set HB_COMPILER to gcc and HB_PLATFORM to cygwin when cygwin
is detected on win platform.
- Consequently some changes in global.mk could be dropped.
- Deleted hbcom patches not related to cygwin.
- Removed hbmk2 patch until we solve the 'plat $ 'cygwin' problem.
* utils/hbmk2/hbmk2.prg
+ Added MS-DOS compiler (djgpp) detection when used on *nix platform
in cross-compile scenario.
BTW I've also found that I had already implemented win and wce
autodetection based on global.mk, so it' supposed to work. Please
test it.
* config/global.mk
- Deleted a variable not used anymore.
* utils/hbmk2/hbmk2.prg
* config/global.mk
* INSTALL
! HB_BUILD_NAME/-build= no longer supports pathseps (backslash/fwdslash)
(it would need costly solution to resolve compilation of
hbrun.rc, maybe more. It's also "cleaner" this way, since the
dir structure is not altered)
* config/global.mk
* Will now show fatal error if HB_INSTALL_PREFIX is not set
at all on non-*nix systems. Not setting this will result
in missing COPYING file (which is obligatory accessory when
distributing Harbour) and other crucial files like INSTALL,
NEWS and ChangeLog.
* INSTALL
* HB_INSTALL_??? envvars deprecated. It's recommended to use
HB_INSTALL_PREFIX instead and let the build system decide
about the internal directory layout. Setting these to
arbitrary values may break Harbour tools like hbmk2.
* utils/hbmk2/hbmk2.prg
+ Added extension to license. Pls read it, especially projects
including hbmk2 or modified version of hbmk2 (f.e. MiniGUI).
Help text and documentation is now covered by Creative Commons
Attribution-ShareAlike 3.0.
Plus some restriction to not tear hbmk2 off of Harbour Project,
to clearly show modified nature and always distribute modified
source.
My intent is to leave hbmk2 as coherent part of Harbour,
possibly unmodified and my name not stripped.
* config/global.mk
% Minor opt.
* package/mpkg_nightly.sh
! Harmless typo.
* package/winuni/RELNOTES
* Updated.
* contrib/make.hbs
+ Generalized the way dynamic lib dependencies are found
to make it work on *nix systems, too.
* include/harbour.hbx
+ src/rtl/libnamec.c
* src/rtl/libname.prg
* src/rtl/Makefile
+ Added HB_LIBEXT() and HB_LIBPREFIX() functions.
* utils/hbmk2/hbmk2.prg
+ Added "platform", "compiler", "cpu", "buildname", "dynsuffix"
to --hbinfo returned data.
* INSTALL
+ Documented HB_BUILD_CONTRIB_DYN setting. The default is
'no', and if set to 'yes', the build system will create
dynamic lib versions of the contribs.
* src/Makefile
* utils/hbformat/Makefile
* utils/hbi18n/Makefile
* utils/hbtest/Makefile
* config/global.mk
* config/dos/watcom.mk
* config/dos/djgpp.mk
* config/dyn.mk
* config/rules.mk
* INSTALL
* Renamed HB_BUILD_DLL to HB_BUILD_DYN.
* debian/rules
+ Added LD_LIBRARY_PATH.
(it's needed here because the called make process won't
pass back any envvars to caller process)
* config/global.mk
+ Shows LD_LIBRARY_PATH in log.
- Do not clear HB_SYSLOC to allow override (from package makers).
+ Export HB_DYNLIB_PREF (for postinst.hbs).
* config/postinst.hbs
+ Creating Harbour dynamic lib symlinks, like the old postinst.sh
did. This fixes Debian build problems, and probably more.
; TODO: I didn't implement one scenario, I'd appreciate if someone
with bash and *nix skill could decipher the old code
and create the few .prg lines for this functionality.
! Fixed .hbx creation for core dynlibs on *nix systems.
* utils/hbmk2/hbmk2.prg
! Fixed to not propagate _ERRLEV_STOP from sub-projects.
% -stop will not stop processing any further cmdline options.
* Avoided one dangerous IF instruction.
* contrib/hbqt/hbqt_commons.hbm
% If static mode is not requested stop before loading plugins.
* config/global.mk
! Always set HB_REBUILD_* options to 'no' when HB_BUILD_PKG=yes.
* config/global.mk
! Fixed setting LD_LIBRARY_PATH under pre-3.81 GNU Makes.
+ Will now set HB_SYSLOC=yes when creating .tgz packages which
are meant to be installed to system locations. (didn't test
this one)
+ Will now set HB_INSTALL_DOC to /share/doc/harbour on *nix systems.
! Fixed to set HB_INSTALL_MAN to /share/man (instead of /man) on
*nix systems.
; Please test/review these.
* config/postinst.hbs
+ Create directory for "root documents". They are now stored
in /share/doc/harbour for *nix.
! Fixed to store proper directory in ld.so.conf.d setting by
removing HB_INSTALL_PKG_TOP from the beginning of full dynlib
path.
* debian/rules
* package/harbour.spec
* package/harbour-win.spec.in
* package/harbour-wce.spec.in
! Use HB_INSTALL_PKG_TOP to denote the root of package dir structure.
; TODO: Change the name to HB_INSTALL_PKG_ROOT
; TODO: Optimize variable usage.
; TOFIX: Use HB_INSTALL_DYN instead HB_INSTALL_LIB in context of
dynamic libs in postinst.hbs and package scripts.
* package/harbour.spec
! Fixed to honor HB_BUILD_NAME in local LD_LIBRARY_PATH setting.
(is it needed?)
* INSTALL
- Deleted note about GNU Make 3.81.90
3.82 is out and the bug was fixed.
! Updated mpkg_src.sh location.
* contrib/make.hbs
* Do not create dynlib, .hbd, .hbx if the main build process
returned with non-zero errorlevel.
* utils/hbmk2/hbmk2.prg
+ Return errorlevel when -stop is used in project.
+ Use manifest constants for errorlevels.
* config/hbextern.hbs
* Local function renamed.
* contrib/xhb/xhb.hbx
* contrib/hbxpp/hbxpp.hbx
* Regenerated.
* src/vm/pvaluehb.c
! Typo in comment.
* utils/hbrun/hbrun.prg
+ Will now add the script's home directory to the header dir list.
* contrib/make.hbs
* config/postinst.hbs
+ config/hbextern.hbs
+ Moved extern header generation low level logic to separate script.
+ Added feedback about extern generation.
+ Moved core extern header generation logic to postinst.hbs.
! Minor fix to output when postinst is used in non-install phase.
* contrib/global.mk
+ Displays HB_REBUILD_EXTERN setting.
* Makefile
* Changed to always execute config/postinst.hbs, not just in
install phase.
* include/hbextudd.ch
* include/hbextsca.ch
* include/hbextcdp.ch
* include/hbextlng.ch
* include/hbextern.ch
+ Replaced content with automatically generated one.
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/ideshortcuts.prg
* Deleted "just" functions and replaced them with HB_SYMBOL_UNUSED()
macro, which has no runtime overhead.
* contrib/hbide/hbide.hbp
- contrib/hbide/iderequests.prg
- Deleted requesting HBQT component via "just" function. Now it's
done by EXTERNAL statements. BTW this function was not called,
so it was ineffective. Pls correct me if I missed the point
of the old solution.
* contrib/make.hbs
% Code consolidation.
! Fixed recent regression, whereas now again the root project's
.hbc file will be added to the make process in HB_BUILD_CONTRIB_DYN
mode.
+ Changed the way filter is processed, now dependent packages will
always be built, so there is no need to manually pick all the
dependencies too.
* Internal terminology cleanup.
+ Will now also rebuild the _dependencies_ in HB_BUILD_CONTRIB_DYN mode.
- Deleted forcing English language for hbmk2 output.
; Regressions are possible
; NOTE: This dynamic stuff is a real can of worms. Virtually infinite
combinations of dynamic vs static libs may be supported, plus
there is ST vs MT issue, where we must decide about this at
dynlib build time, and f.e. what happens when trying to load
two .dlls one with was linked against MT Harbour and the other
against ST? It's a combinatorical explosion.
* src/vm/vmmt/Makefile
! Fixed missing procaddr.c causing unresolved externals when creating
MT mode dynlibs.
* config/global.mk
! Attempt to fix LD_LIBRARY_PATH problem, adding dynamic lib build
dir to this envvar while doing the build, pls test it, I didn't.
+ contrib/hbplist
- contrib/pkglist
* Renamed.
* contrib/hbct/ctwin.h
! Added missing HB_EXPORT.
* contrib/xhb/xhb.hbp
* contrib/hbgd/hbgd.hbp
! Added missing project references also to .hbp files.
* utils/hbmk2/hbmk2.prg
! Fixed regression with mingw -hbdyn after adding new stub which
stole the show by explicitly exporting one symbol which (due
to autoexport function in mingw) prevented regular symbols to
be exported. This fix will remove the exception so far applied
to mingw/cygwin compilers where HB_DYNLIB was not used with these,
now it's used equally on all compilers/platforms. For this to
be effective, it should be noted that HB_EXPORT must be used
in all public declarations, even in contrib.
! Fix (?) to not include MAIN proc force code when building with
hbmaindllp.
* contrib/xhb/thtm.prg
% Changed hbct LTOC to simple iif()
; TOFIX: xhb makes reference to (deprecated) hb_symEval symbol:
Info: resolving _hb_symEval by linking to __imp__hb_symEval (auto-import)
* contrib/rddsql/hbrddsql.h
! Added HB_EXTERN_BEGIN/END
! Added HB_EXPORT
! Added extern
* contrib/sddoci/sddoci.hbp
! Restored some flags present in old Makefile to make it
work with mingw and bcc.
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt.h
! Fixed to add HB_EXPORT to public declarations.
; TOFIX: hbqt still doesn't link in hbdyn mode.
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/doc/en/*.txt
* Regenerated.
* contrib/hbqt/hbqt.hbc
! Fixed to not include QtUiTools in -hbdyn mode. It creates duplicate
symbols at link. Maybe this is not the right fix, go figure.
(HB_STATIC_QT mode still has to be checked)
; TODO: Add ${__HB_DYN__} to all .hbc files.
* utils/hbmk2/hbmk2.prg
+ -implib= option now accepts filename, too (exactly like -o option)
So it's possible to manually set the generated implib lib in
-hbdyn (and -hbexe) modes.
* contrib/hbpost.hbm
+ Moved the _dll/_exe implib output name postfixing logic from
hbmk2 (though hbmk2 will still keep appending these by default)
This way the "_dll" postfix thing is fully controlled by make.hbs
and hbpost.hbm, no hidden "agreements" with hbmk2.
* config/global.mk
+ Added log warning, if the source tree is modified.
* debian/dirs
! Deleted doc/en dir.
* doc/Makefile
- doc/whatsnew.txt
+ NEWS
* COPYING
* doc/howtorel.txt
* debian/changelog
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* Renamed doc/whatsnew.txt to /NEWS
* debian/copyright
* Updated with COPYING content.
* package/harbour.spec
! Fixed to include doc/* instead of doc/*.txt.
* utils/hbrun/hbrun.prg
- Deleted envvar method of passing dirbase to scripts.
* contrib/make.hbs
+ Using HBRUN_DIRBASE() function instead of envvar trick.
Maybe some more generic named value passing would be better.
* contrib/Makefile
! Using '-' prefix when running hbrun instead of '+', to not
cause fatal breakage in build stage if make.hbs contains
something which previous build of hbrun didn't offer.
* config/global.mk
- HB_INSTALL_PREFIX will not default anymore to source root
dir (on non-*nix systems) to avoid FAQ where installation
fails because of former install into source root, causing
old contrib headers to ovveride current ones and breaking
build. Please note that 'install' is truly optional with
current builds, so only use it for what it was designed.
Pls should if some things fail with empty HB_INSTALL_PREFIX
and requesting 'install' anyway.
* contrib/xhb/xhbat.c
! Applied this fix to Harbour:
2010-07-29 12:28 UTC-0430 Ron Pinkas <ron.pinkas/at/xharbour.com>
* source/rtl/at.c
+ Added missing extended strings support, to hb_AtSkipStrings()
* package/harbour.spec
* Minor in comment.
* Temply commented adding .so files in the lib/ root (without harbour postfix)
* contrib/make.hbs
* contrib/hbpost.hbm
+ Added support for HB_MAN_INSTALL, HB_ETC_INSTALL.
* utils/hbmk2/hbmk2.prg
+ Enabled multi-input compilation for *nix gcc family. This means that
all C source files will be now compiled in one gcc invokation, instead
of compiling them one by one.
% PATHNORMALIZE(): delete unused function.
% ISDRIVESPEC() converted to macro _ISDRIVESPEC().
* config/postinst.hbs
+ Added code to create ld config file.
+ Added commented original bash code to create .so links which I cannot
understand. Anyone to jump in?
+ Added PathNormalize() function from hbmk2.
+ Changed back DirBuild() to always normalize path before creating it
(to filter out potential ".." and "." dirs from it). Required for
ld creation.
* config/global.mk
* HB_ETC_INSTALL is now format equally on all *nix platforms to have a
'harbour' subdir. Required to work well with ld creation logic in postinst.hbs.
- package/debian
+ debian
* INSTALL
* Moved back to root. Seems like this MUST be in root and there
is no way to tell debhelper tools otherwise.
* debian/rules
% Deleted unnecessary stuff. Pls review me.
* config/global.mk
! Minor in comments.
* config/postinst.hbs
+ Added more feedback.
* Internal cleanups.
+ Changed to always copy to etc if there is target dir defined.
! Fixed typo in man copying.
* config/global.mk
+ Added logic to setup dirs for *nix package creation.
Fixing .tgz creation to work like before.
* Changed to only set HB_MAN_INSTALL if installing to sysloc.
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
! Fixed DirBuild() function when crearing absolute paths without
a drive letter. It created dir in current dir on non-*nix and
didn't do anything while returning success on *nix.
; Now mpkg_tgz.sh replacement is about finished.
It's pbly not 100% the same still, so pls review it.
* debian/rules
* harbour.spec
* config/instsh.mk
* Do not use HB_INST_PKGPREF.
* harbour.spec
+ Use HB_MAN_INSTALL
* config/global.mk
+ Added HB_MAN_INSTALL and HB_ETC_INSTALL
+ PKG_NAME is now filled in little bit different way for
*nix systems to emulate old mpkg_tgz.sh logic.
* bin/postinst.sh
- Deleted no more used subroutines.
- Deleted mk_hblibso() function.
- it maintained loca list of contribs which breaks the
effort of contrib "plug-in" system
- it contained lots of platform dependent build details in
hard to maintain bash shell code.
; If someone needs this functionality pls try to integrate
it in hbmk2 or write a .hbs script in modular fashion
(not contrib names). I cannot tell what exactly was the functionality
implemented there though. Maybe rewriting it locally is also an
option.
! Do not use HB_INST_PKGPREF.
* config/postinst.hbs
+ Rewritten mpkg_tgz.sh logic in .prg code. This logic is
finally in it's proper place.
+ Implemented copying of man files on *nix systems.
; NOTE: Not tested at all, it was hard enough to rewrite it,
pls help on finishing and debugging it. See TODOs in
source. Previous replicated with some differences.
- mpkg_tgz.sh
- Deleted. Now implemented in postinst.sh.
Build Harbour with HB_BUILD_PKG=yes to try it.
* INSTALL
+ Added HB_MAN_INSTALL and HB_ETC_INSTALL
+ Updated .tgz binary instructions (now same on all platforms)
* utils/hbrun/hbrun.prg
* utils/hbrun/hbrun.hbp
* utils/hbrun/Makefile
* Renamed include dir control var.
* Change so that now simple HB_INC_INSTALL value will
trigger burn-in of header location.
+ Added logic to only use burnt-in header location if
it is an absolute path.
! Synced .hbp file with this feature.
; NOTE: This is still non-portable and error
prone solution. Pls see my thought on dev list
about possible solutions to use precompiled
Harbour headers compiled right into the executable.
* contrib/hbqt/tests/wvtqt.hbp
* contrib/hbxbp/tests/wvtqt.hbp
! Added missing SVN header.
% Cleanup.
* INSTALL
* contrib/hbpost.hbm
* config/global.mk
* Changed HB_BUILD_IMPLIB to HB_INSTALL_IMPLIB to reflect
new meaning after recent changes. With new build system
the implibs are always created in lib working dir, and
this setting only controls whether to copy it to final
install directory. The default is still 'no'. Setting it
to yes is only recommended if the installation will be
used in local environment (3rd party .dlls) only. IOW
never set this to yes when creating a build for other
users (f.e. for distribution).
INCOMPATIBLE if you used this setting, pls change it now.
* INSTALL
+ Documented HB_STATIC_* options.
* contrib/make.hbs
* Updated TODO list.
* src/debug/debugger.prg
* src/rtl/dirscan.prg
* tests/wcecon.prg
* contrib/xhb/traceprg.prg
* contrib/hbqt/tests/wvtqt.hbp
* contrib/hbqt/generator2/hbqtgen2.prg
* contrib/hbxbp/tests/demoxbp.prg
* contrib/hbxbp/tests/dialogqt.prg
* contrib/hbxbp/tests/wvtqt.hbp
* contrib/hbhpdf/tests/harupdf.prg
* contrib/gtwvg/tests/wvgtbrowser.prg
* contrib/gtwvg/tests/wvgwvtclasses.prg
* contrib/hbtip/tests/dbtohtml.prg
* contrib/hbtip/mail.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idetools.prg
* contrib/hbide/idesources.prg
* contrib/hbide/hbide.prg
* examples/uhttpd2/umain.prg
* examples/hbvpdf/tests/pdf_demo.prg
* examples/httpsrv/uhttpd.prg
* examples/httpsrv/cgifunc.prg
* examples/httpsrv/modules/tableservletdb.prg
* examples/httpsrv/session.prg
* HB_OSPATHSEPARATOR() -> HB_PS()
% Delete temp vars along the way.
* utils/hbmk2/hbmk2.prg
+ Generalized internals for support for older Harbour and
xhb versions.
+ Added -hb20 option. (thanks for asking for it so nicely ;)
* src/rtl/stuff.c
! Fixed GPF in STUFF() when HB_SIZE is signed value.
(HB_SIZE_SIGNED mode)
* contrib/make.hbs
% Normalized some dirs to give cleaner and shorter output.
+ Shows HB_BUILD_CONTRIBS value.
! Fixed to only generate doc once for multi-hbp packages (HBQT f.e.).
% Internal cleanups.
* contrib/hbqt/hbmk2_plugin_qt.hbs
+ Honor HB_WITH_QT also on OS/2.
* Internal. Feedback is still not perfect.
* utils/hbmk2/hbmk2.prg
+ Normalize implib source dirs, -o dirs, -workdir dirs.
+ Implibs automatically generated for dependencies are now put
in the 'implib' install target category, so they can be controlled
separately.
* contrib/hbpost.hbm
! Fixed to only install new automatic implibs when HB_BUILD_IMPLIB=yes.
; TODO: Rename this setting to HB_INSTALL_IMPLIB (or some better
name). Now implib are always made, this setting only controls
whether to install them (f.e. we don't want to install them
when creating package for distribution).
- Deleted stuff belonging to stdalone -hbimplib targets. This
method is deprecated inside contrib area.
* config/global.mk
- Do not show HB_CONTRIBLIBS value anymore.
* contrib/hbqt/hbmk2_plugin_qt.hbs
+ Do not pollute output with meaningless error message, when
HB_WITH_QT=no is used.
* contrib/hbpgsql/postgres.c
! Fixed msvc C mode warning. (this one is valid, though I
couldn't find out why this is only reported in C mode,
there are also some other seemingly unfixable warnings
reported in C mode.)
* contrib/hbpre.hbm
+ Will now enable C++ mode by default for msvc compilers,
to stay in since with GNU Make behavior.
* utils/hbmk2/hbmk2.prg
! Fixed to not rebase dirs passed to -deptimplibs options.
! Fixed to stay silent but still fail when dependencies
are forcefully disabled.
! Reorganized msvc compiler version dependent options to
better handle the case when no compiler version is present
(to go with the less risky option in such case)
* config/global.mk
+ Added msvc64 and msvcia64 version detection.
* Renamed one variable to avoid being same as new hbmk2 macro.
* config/postinst.hbs
* Minor in feedback text.
* utils/hbmk2/hbmk2.prg
+ Added mingw/mingw64 version detection. Not very extensively
tested.
+ Added -depimplibs=, -depimplibd cmdline options, and depimplibs=
and depimplibd .hbc options. They serve to configure automatic
(without stdalone .hbi file using -hbimplib) import library
generation for dependencies. The internal logic is the same,
but now implibs can be generated for multiple dependencies
at once, using pure .hbp files (or eveb .hbc for that matter).
+ Filters now also support '<' and '>' operators.
+ Filters will now expand internal macros before looking for
envvars.
+ Added HB_COMP_VER macro, returning compiler version.
! Fixed to handle "*.hbs" passed as option.
! Fixed to do entry detection also for .hbs files.
* contrib/make.hbs
- Temply disabled .hbi handling, now it's done by .hbp files.
! Refixed to skip hbhrb/hbppo projects in stdalone mode.
* contrib/hbqt/tests/testbrow.prg
* Updated with Bacco's 'testedit.prg' sent to the list.
* Formatting. (pls try to format it like this)
* contrib/hbpost.hbm
+ Enabled 'dynamicbase' and 'nxcompat' exe generation flags
for newer versions of msvc and mingw, to be in sync with
our GNU Make settings (and safety).
* contrib/xhb/hbcompat.ch
! Fixed some wrong xhb to Harbour translations reported by Rossine.
* contrib/hbide/hbide.hbp
% Deleted -gc3. It made the executable 2MBs larger.
Pls report any performance problems after this
change.
* contrib/gtalleg/gtalleg.hbp
* contrib/hbblat/hbblat.hbp
* contrib/hbcairo/hbcairo.hbp
* contrib/hbcurl/hbcurl.hbp
* contrib/hbfbird/hbfbird.hbp
* contrib/hbfimage/hbfimage.hbp
* contrib/hbgd/hbgd.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbmysql/hbmysql.hbp
* contrib/hbpgsql/hbpgsql.hbp
* contrib/hbssl/hbssl.hbp
* contrib/rddads/rddads.hbp
* contrib/sddfb/sddfb.hbp
* contrib/sddmy/sddmy.hbp
* contrib/sddoci/sddoci.hbp
* contrib/sddpg/sddpg.hbp
+ Added new switches to enabled automatic import library
generation without .hbi files.
Please note that this means that now HB_WITH_BLAT will
have to be set from now on for hbblat lib.
* config/global.mk
* Minor.
* config/win/watcom.mk
! Fixed to add .exe extension to watcom tools to make it work
in wine-based cross build situations. [pls note that watcom
can create cross builds using its native tools, so this is
just the cherry on top :)]
Patch provided by Tamas Tevesz.
* external/minizip/minizip.dif
+ Updated after latest changed by Tamas Tevesz. Thanks a lot!
* utils/hbmk2/hbmk2.prg
+ Added support for vxworks/diab compiler.
* utils/hbtest/hbtest.prg
+ Added my name to the copyright header.
* config/global.mk
! Fixed to only assign *nix specific default value HB_INSTALL_PREFIX
on *nix hosts (only a problem when doing *nix cross-builds _from_
non-*nix systems).
* utils/hbmk2/hbmk2.prg
* config/vxworks/gcc.mk
* config/vxworks/diab.mk
+ Added minimal support for HB_BUILD_SHARED=yes for vxworks targets.
For diab it just won't find the harbour .so (see comment for more)
For gcc it links okay, though it's detected as kernel task, so
current support is most probably not right.
* config/vxworks/diab.mk
* Minor change to sync one C compiler option with VxWorks Workbench
generated one.
; NOTE: By this change Harbour VxWorks base port is finished. Besides
being an interesting excercise, it helped to develope new
non-*nix to *nix cross building codepaths, tweak Harbour for
"headless" (w/o terminal) OSes, and to break the ground for
target CPU selection inside one target platform.
Harbour builds cleanly using both vxworks/gcc and vxworks/diab,
and compiler tools plus non-MT utils run properly as well.
Obviously I made few functional tests, but from the experiences
of the port effort, these are the remaining areas:
- reporting bug(s) to Wind River (particularly the one
breaking hvm.c compilation, requiring HB_LONG_LONG_OFF
forcage, causing other unnecessary limits and hbtest
failures)
- serial I/O needs to be implemented using VxWorks specific
sioLib API
- 'fork' has to be replaced.
- sockets were not tested, anyhow they are supposed to work.
- termios is missing, so large parts of GTSTD and GTTRM are
disabled on this platform.
- ARM/MIPS CPU support needs to be added to hbatomic.h
- HB_LIBLOAD() and friends need to be implemented, but I hit
walls here.
- MT apps GPFs, this needs to be fixed probably inside our
code, but it's possible some build options are needed which
I missed all along.
- HB_SHARED_MODE=yes needs further tweaking.
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_hvm.prg
* utils/hbtest/rt_hvma.prg
* utils/hbtest/rt_stra.prg
* utils/hbtest/rt_vars.ch
- Disabled long string tests for vxworks. They fail because of
memory exhaustion.
! Fixes to prev.
; Now hbtest runs OK on vxworks/gcc.
* config/global.mk
+ Now defines __PLATFORM__VXWORKS for cross-builds.
! Fixed typo in lastly added __PLATFORM__ redefinition.
* INSTALL
+ Added vxworks/diab example.
* INSTALL
! vxWorks casing.
+ Added vxworks/gcc/arm example.
* utils/hbmk2/hbmk2.prg
% -DARMEL no more defined for vxworks/gcc/arm. It turns
out it's a predefined macro.
* config/global.mk
! Fixed HB_CPU autodetection after prev change.
* INSTALL
; NOTE: After previous change HB_CCPOSTINST is automatically
set on vxworks/gcc.
* config/vxworks/libs.mk
* config/vxworks/gcc.mk
+ Tried to enable dynlibhb, didn't succeed, see comments.
* config/vxworks/gcc.mk
% Deleted unnecessary compile time macros.
; TOFIX: vxworks HB_BUILD_SHARED=yes is broken. harbour .so
is not found. Couldn't find out why.
; TOFIX: vxworks/gcc/arm hbatomic.h needs support added.
arm harbour and hbpp builds fine.
* utils/hbmk2/hbmk2.prg
+ Added experimental -cpu option. (not at the level
of comp/plat internally, as there won't be separate
subdir open for different cpu builds created in parallel)
+ Added some untested support for vxworks/gcc/arm.
* utils/hbmk2/hbmk2.hbp
+ Synced with Makefile.
* config/global.mk
! Fixed to default HB_CPU value to x86 for vxworks.
+ Exports HB_CPU.
* config/vxworks/libs.mk
* config/vxworks/gcc.mk
+ Added experimental support to select arm target by
using HB_CPU=arm.
* config/wce/msvcarm.mk
! Missed re-xmastree changed done now. (for pre GNU Make 3.81 compatibility)
* include/hbthread.h
! Hacked around collision between vxWorks headers.
* ChangeLog
! Fixed casing of vxWorks.
* utils/hbmk2/hbmk2.prg
+ Added vxworks/gcc libpaths.
! Fixed vxworks/gcc system lib list.
! Fixed ar to have postfix.
; All these are syncs with GNU Make.
* src/rtl/hbsocket.c
! Typos in previous vxworks patchs.
* config/global.mk
! Fixed forming automatic HB_INSTALL_PREFIX value in *nix cross-build
situations. (it's still wrong as it assumes nix->win cross-builds)
; Now vxworks/gcc/x86 build is clean.
There are iTODOs left, and
- this particular class of warnings, which seems
to be a bug down the <pthread.h> system header:
hbnetio\netiocli.c:155: warning: missing initializer
hbnetio\netiocli.c:155: warning: (near initialization for 's_netioMtx.mutexAttr.mutexAttrType')
- also this, each time FD_ZERO() and friends are used:
warning: implicit declaration of function 'bzero'
- "argument n of 'x' differ in signedness" and "discards qualifiers from pointer target type"
warnings in hbsocket.c code.
; TOFIX:
- Unrecoverable error 9998: Harbour terminal (GT) initialization failure
when running hbtest.
- GPF when running hbmk2 and hbrun. (hbformat, hbi18 startup fine)
* INSTALL
+ config/vxworks
+ config/vxworks/libs.mk
+ config/vxworks/gcc.mk
+ config/vxworks/diab.mk
+ config/vxworks/global.mk
+ Started experimental VxWorks port.
; NOTE: VxWorks port was made possible by Wind River Systems Inc.,
who were so kind to mail me a full VxWorks development
environment, for the purpose of porting Harbour to this
platform. Thank you very much guys.
[ The free license is valid for one month, so if anyone
is interested in helping in this project, I can help with
real tests, builds and information. BTW, the devenv is
Eclipse based plus cmdline, running on Windows (available
for Linux and Solaris, too) and the target VxWorks exes
run in a virtual environment. ]
* config/global.mk
+ Added autodetection of VxWorks platform.
* utils/hbmk2/hbmk2.prg
+ Added VxWorks support. It's incomplete yet.
! Fixed to quote *nix/gcc compiler family in
Windows-host cross-platform situations.
* src/vm/thread.c
* src/common/hbgete.c
* src/common/hbffind.c
* src/common/hbtrace.c
* src/common/hbdate.c
* src/rtl/gtstd/gtstd.c
* src/rtl/gttrm/Makefile
* src/rtl/hbsocket.c
* src/rtl/filesys.c
* src/rtl/diskspac.c
* src/rtl/cputime.c
* src/rtl/disksphb.c
* src/rtl/gtpca/gtpca.c
* src/rtl/net.c
* src/rtl/hbproces.c
* src/rtl/gtsys.c
* src/rtl/hbcom.c
* external/zlib/inflate.c
* external/jpeg/jmorecfg.h
* external/pcre/Makefile
* include/hbapifs.h
* include/hbthread.h
* include/hbdefs.h
* include/hbsetup.h
* contrib/xhb/hboutdbg.c
* contrib/xhb/hbsyslog.c
* contrib/xhb/hbserv.c
+ vxworks/gcc port. First phase.
; Please review.
; NOTE: - vxworks has no termios, for serial comm
support it has sioLib.h.
- vxworks supports another C compiler, which
was not tested yet.
- vxworks supports lots of CPUs, only x86 was
tested yet.
- There are still mutex related warnings to sort out.
- Some parts had to disabled, like HB_LIB*() functionality.
; TODO: Regenarate .difs in external/.
* src/vm/hashfunc.c
* Silenced warnings shown by vxworks/gcc.