* contrib/make.hbs
* config/postinst.hbs
* config/hbextern.hbs
+ Implemented manual include/exclude filter in extern header
generation process. Include filters can be specified
using '// HB_FUNC_INCLUDE <func>', exclude filters using
'// HB_FUNC_EXCLUDE <func>'. By default everything is
included, this can be overridden using HB_FUNC_INCLUDE,
and exceptions made using HB_FUNC_EXCLUDE. <func> can
contain wildcards, so it's very flexible.
NOTE: - By default the functions are declared using DYNAMIC
so these generated can be directly used when the goal
is to load pcode dynamic libs dynamically.
- By #defining '__HBEXTERN__<libname>__REQUEST' the
generated headers will switch to EXTERNAL declaration,
so they can be used when building dynamic libs or when
user wants to explicitly pull all functions into lib
code. Do not use this from app code.
- When __HBEXTERN__<libname>__REQUEST is defined, the
generated headers will also ANNOUNCE __HBEXTERN__<libname>,
which means that application can simply pull all functions
into app code, using:
'REQUEST __HBEXTERN__<libname>__' command.
- Names are not necessarily finalized yet. ("extern", ".hbx")
- Deleted hard-coded exceptions from generator code.
; TODO: Clean core generated headers to behave like before.
; TODO: Adapt hbextern lib to these changes.
; TODO: Add generated headers to SVN for contrib libs.
; TODO: Add stubs which include generated headers to all libs.
; TODO: Long term TODO: make it easy to generate such headers
for 3rd party projects.
* include/hbextudd.ch
* include/hbextsca.ch
* include/hbextcdp.ch
* include/hbextlng.ch
* include/hbextern.ch
* contrib/hbct/hbct.hbx
+ Filled HB_FUNC_INCLUDE, HB_FUNC_EXCLUDE exceptions to
achieve the previous hard-coded results.
* Regenerated.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
* config/postinst.hbs
* config/hbextern.hbs
* bin/hbmk2l2d.hbs
* bin/hbxpatch.hbs
+ Added -km, -ko options.
* utils/hbmk2/hbmk2.prg
+ Added new plugin APIs:
- hbmk2_AddInput_OBJ()
- hbmk2_PathFromWorkdirToCWD()
- hbmk2_CWD()
+ Changed to not abort processing if there are no input files, but
there are custom plugin input parameter.
+ bin/hbmk_l2d.hbs
+ Added rough plugin to convert static libs to dynamic libs
on platforms supporting 'ar' tool (and of course the notion
of such conversion). This is meant to replace functionality
provided by bash script hb-mkdyn.sh.
Pls find cmdline example in the script header.
* config/postinst.hbs
+ Now installs hbmk_l2d.hbs
- bin/hb-mkdyn.sh
- Deleted hb-mkdyn speciality shell tool to convert static
libs to dynamic ones.
- bin/postinst.sh
- Deleted, it only started hb-mkdyn.sh, which was just deleted.
* Makefile
- Do not run postinst.sh anymore.
* 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.
* include/hbextern.ch
* src/rtl/Makefile
+ src/rtl/hbdoc.prg
+ Added __HBDOC_LOADDIR() internal RTL function to read
NFDOC formatted documentation source directories into
memory. The result will be a list of hashes which contain
the raw content of doc files. The function does format
validation (but not content) and add all agreed-on metadata
to the hashes.
It's a start and I hope others can join to create new
layers of function for below functionality:
- doc content validation
- pre-formatting
- output generators
The goal is to avoid local solutions and standardize
the format.
+ tests/hbdoctst.prg
+ Added small test app which will find and parse all
documentation inside the Harbour source tree and
save them in .hbd (serialized doc hash) format.
Such .hdb files can be generated by the build process
in the future, so tools like HBIDE can use the content
to display intellisense or built-in help.
; TODO: HBQT doc/html should be removed as it's
hbdoc tools' job to convert HBDOC source
format to html or whatever else format needed.
* harbour.spec
* debian/rules
- doc/man
+ src/pp/hbpp.1
+ src/main/harbour.1
+ utils/hbmk2/hbmk2.1
+ utils/hbtest/hbtest.1
+ utils/hbrun/hbrun.1
* Moved man doc files to their own component dirs.
* doc/Makefile
* doc/en/Makefile
+ doc/clipper.txt
- doc/en/clipper.txt
* Moved non-NFDOC formatted doc file to doc dir.
* doc/en/Makefile
! Fixed missing 1stread.txt
* doc/en/hb_apigt.txt
* doc/en/hbinet.txt
* doc/en/tbrowse.txt
* doc/en/hb_apifs.txt
! Fixed NFDOC non-standard entries.
* bin/hbxpatch.hbs
! Fixed detecting dirs. (could cause errors only in rare cases)
* contrib/hbdoc2/tmplates.prg
* Formatting.
* bin/hbxpatch.hbs
* utils/hbmk2/hbmk2.prg
* contrib/make.hbs
* config/postinst.hbs
* contrib/hbide/idemisc.prg
* contrib/hbide/idefunctions.prg
* hbmk2 rooted filename/path handling functions renamed.
Now they are in sync with hbmk2_*() (plugin) flavour.
With their new names they could even be included in core,
by adding an hb_ prefix to them.
* Renamed one internal constant in hbmk2.
* contrib/hbide/idemisc.prg
- Deleted unused hbmk2 function.
* INSTALL
* contrib/make.hbs
+ Added standalone mode. The goal is to emulate GNU Make's
nice in-place build feature for contribs hbmk2 make files.
Run with 'hbrun ../make.hbs [clean] [install]'
(install mode's installation phase doesn't work yet)
+ Added contrib type autodetection.
* HB_ADDONS_LIB, HB_ADDONS_BIN merged into HB_BUILD_ADDONS,
now the type is autodetected.
% Move hbmk2 cmdline to HBMK_OPTION only on MS-DOS hosts.
+ Added *nix script header.
+ Updated TODO list.
; NOTE: Most tasks are ready now regarding make system
migration in contrib area from GNU Make to hbmk2.
* config/postinst.hbs
+ Added native .hbl generation logic which doesn't require
hbi18n executable. (not used yet)
* bin/hbxpatch.hbs
* contrib/make.hbs
+ Added svn:executable flag.
* utils/hbrun/hbrun.prg
+ Extended to look in current dir, hbrun dir and PATH for
passed script name, if no extension was passed, it will
try .hbs and .hrb in that order. This means hbrun is
pretty much like a shell command processor now.
* bin/hbxpatch.hbs
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.prg
* contrib/hbqt/hbmk2_plugin_qt.hbs
* config/postinst.hbs
* HB_OSPATHSEPARATOR() -> HB_PS()
* HB_OSNEWLINE() -> HB_EOL()
* utils/hbmk2/hbmk2.prg
* Using string literals instead of Chr() in few places.
! FindInPath() corrected to honor original dir in filename
it receives. This may affect plugins if they pass such
argument.
* utils/hbmk2/hbmk2.prg
+ -clean will now delete the target for -hbdyn, -hblib and default
-hbexe modes. .bak is also deleted for -hblib mode.
Probably more autogenerated extensions will have to be deleted
here to become in sync with globsh.mk.
+ Extended -instfile and -instpath support to also accept
a file group prefix. This way multiple set of files can be
copied to a set of target directories.
; TODO: Change all -instfile options to point to 'inc' group.
+ dos/djgpp will now use -gstabs+ for debug mode instead of -g.
Following change made in GNU Make system by Tamas.
* contrib/makefile.hbs
+ Reworked the way GNU Make operations are mapped to hbmk2
actions. F.e. 'clean install' needs special attention as
plain clean cannot be done because
+ Added hbblat to limited set of test contribs.
+ Better isolation and preparation of hbmk2 configuration.
+ Cleanups to dynamic lib creation from contribs.
+ Added experimental support to install headers similarly
as GNU Make does.
* Makefile
! Fixed to reverse order and dependency of contrib and utils
trees in clean without install mode. In pure clean mode,
the contribs need to be traversed first, because hbrun and
hbmk2 are required for this task.
* Makefile
* contrib/Makefile
+ Will now inform about missing hbrun and .hbs scripts not
run because of it.
* examples/hbapollo/hbapollo.hbp
* -instfile updated with header file group.
* src/rtl/hbproces.c
! Fixed some unused variable warnings experienced with poccarm.
; Patches from Tamas Tevesz:
* config/dos/djgpp.mk
+ debug switch changed to -gstabs+ from -g. Following this:
http://www.delorie.com/djgpp//mail-archives/thread.cgi?msg=djgpp-workers/2002/05/29/06:33:31&mode=frames
* bin/hbxpatch.hbs
* Updated after latest changes. Thanks!
* src/common/hbver.c
! Fix for pcc detection.
* src/rtl/gtdos/gtdos.c
* src/rtl/hbproces.c
! MS-DOS fixes for TRACE() messages.
- bin/patchup.hbs
+ bin/hbxpatch.hbs
* Renamed to have hb prefix.
Better suggestion are welcome for the name, don't
consider this final. Pbly sth like hbupdext.prg
would be better.
* contrib/Makefile
* Changed test status of makefile.hbs call to make it
do some actual work.
* config/postinst.hbs
- Deleted implib creation. Now done by makefile.hbs.
Implibs are never required for core, so this is now
much cleaner.
- Deleted experimental HB_BUILD_ADDONS support. This
feature has moved to makefile.hbs and it can be
controlled by HB_ADDONS_LIB and HB_ADDONS_BIN to add
non-hosted extra components to the build process.
The envvar names are not finalized.
* Changed to only copy .hbs files starting with 'hb'
in bin dir to avoid catching local scripts and adding
them to install.
* contrib/makefile.hbs
+ Makred dependencies from external.
* Reworked the way project list is assembled.
! Fixed root dir issues.
! Fixed -instpath option
* config/postinst.hbs
* Tweaked to convert pathseps in external tool calls
to native.
* ChangeLog
! Corrected most basic problems with Massimo's latest
log entry. Massimo: You fixed a one byte typo and
caused by to fix about 10 typos writing 3-4 letters.
This isn't very effective help.
- external/patchup.prg
+ bin/patchup.prg
* Moved to bin dir for universal access. F.e. we may want
to support external components inside contribs or anywhere
else in the tree.
+ Added support to recognize and use .hbp file as well, if
Makefile is not available in current dir.
* ChangeLog
* Revised and updated status for pending TODOs TOFIXes of
this year.
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/hbcurl.ch
+ Added support for all new libcurl features introduced in
7.19.4, 7.20.0, 7.21.0
* Changed some recently added constants to be in sync libcurl
values.
* contrib/hbwin/Makefile
* contrib/hbwin/hbwin.hbp
+ contrib/hbwin/wapi_winnetwk.c
+ Added WAPI_WNETGETLASTERROR()
* contrib/hbct/ctnet.c
* NETREDIR(): Deleted Windows specific 4th parameter extension
which activated debug-style features (introduced in xhb)
based on WNetGetLastError() call. Such call was now added
separately to hbwin.
* contrib/hbide/hbide.prg
! Deleted hard-coded reference for specific QT version.
This should be solved differently.
; TOFIX: BTW the whole notion of having a special build
for a given distro is wrong. It should rather
do autodetection in all builds.
; Patches from Tamas Tevesz:
* src/rtl/memvarhb.prg
* Adjusted information on magic byte
+ Version number change to 1.
* src/rtl/hbcom.c
! Fix for linux/watcom link problem.
* bin/postinst.sh
* Ajustment for some undisclosed but probably weird system :)
* mpkg_deb.sh
* mpkg_rpm.sh
* mpkg_rpm_win.sh
* mpkg_nightly.sh
* mpkg_src.sh
* mpkg_rpm_wce.sh
* mpkg_tgz.sh
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* bin/postinst.sh
- Do not force bash.
(QNX by default doesn't have bash f.e., and now with the
limited amount of .sh code in SVN, we can focus on making
the code POSIX compliant.)
* ChangeLog
! One QNX TODO marked as DONE.
* bin/hb-func.sh
* bin/postinst.sh
- Deleted 'hbmk' script. Now superceded by hbmk2, which is
backward compatible with hbmk.
- Deleted 'hb-mkslib' compatibility synonym. Use 'hb-mkdyn'
instead.
* Makefile
- bin/postinst.prg
+ config/postinst.prg
* Moved postinst.prg from bin to config dir.
* config/postinst.prg
+ Changed to automatically build all tools found in /utils,
thus dropping hard-wired tool names from postinst.
* Minor cleanup.
* bin/postinst.prg
* Corrected double pathseps in one place.
* ChangeLog
+ Marked TODO's as DONE.
! Fixed timezone for today.
* utils/hbrun/hbrun.rc
+ Added support for OS/2. Can someone test it?
- bin/postinst.bat
* bin/postinst.prg
* INSTALL
* Moved remaining .bat to .prg. This means that HB_BUILD_PKG now
should work with all shells and (cross) build situations. I didn't
test these (pls do so), but it's now easy to make necessary
tweaks for these platforms in case it's necessary.
; Harbour doesn't use a single line of .bat anymore in the build process.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
* config/os2/gcc.mk
! Fixed resource compiler binary name to honor CCPREFIX and friends.
* utils/hbrun/Makefile
+ utils/hbrun/hbrun.rc
+ Added resource file to include icon.
; TOFIX: The .ico file path is hard-wired and will break if HB_BUILD_NAME
contains subdirs.
* bin/postinst.bat
- Deleted no more necessary hack to build hbrun with icon using hbmk2.
* INSTALL
* config/rules.mk
+ config/res.mk
* config/bin.mk
* config/wce/global.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/common/watcom.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/cygwin.mk
* config/win/global.mk
* config/win/msvc.mk
* config/os2/watcom.mk
* config/os2/gcc.mk
* config/os2/global.mk
+ Added support to GNU Make system to compile and link resources
on win, wce and os2 platforms.
* bin/postinst.bat
+ Deleted requirements from local comment. These are
documented in INSTALL.
* bin/postinst.bat
* bin/postinst.prg
+ Moved shared Harbour tools generation from .bat to .prg.
So now it should work on OS/2, cross-builds and all shells
in general. (some cmdline tweaks may be required for *nix)
+ Changed hbrun regeneration (with icon) to better take into account
build settings.
; This leaves about 50 (!) total lines of DOS batch code in
Harbour, which is quite good for a project of this size.
* bin/postinst.bat
* bin/postinst.prg
+ Moved implib generation logic from .bat to .prg. You may
recall this has happened recently, and you're right, but
this time it's based on hbmk2 calls. This change means
that implib generation is now available for all shells
(f.e. msys and cross-build scenarios).
(best would be to move to GNU Makefile level though)
* utils/hbmk2/hbmk2.prg
* Minor cleanup to use native pathseps in hb_FileExists() call.
* bin/postinst.bat
! Fixed missing '\' when forming PGSQL .dll path.
* utils/hbmk2/hbmk2.prg
+ Added undocumented '-mkimplibms' option to allow for users
to make bcc implib happy for some .dlls (translated to
-a implib.exe option). Ugly solution, needed because bcc
chose not to follow standards.
* bin/postinst.bat
+ Some adjustments to hbmk2-based implib generation cmdlines.
+ Added exception to use static ocilibs with mingw.
* bin/postinst.bat
- bin/hb-mkimp.prg
* package/winuni/mpkg_win_uni_extra_copy.bat
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ Switched HB_BUILD_IMPLIB build option to use hbmk2
to create implibs instead of local solution (hb-mkimp.prg).
Note, this means that implibs will now always be
created dynamically from .dll, even when a package
offers pre-built .lib for the compiler. This will
in practice cause a change msvc and pocc compilers.
This also means that from now on it's enough to have
the .dll to create implibs.
It's also easier for users to create implibs using
hbmk2 any time, so it's possible that HB_BUILD_IMPLIB
build-time option will be deleted in the future.
; Not tested yet.
* utils/hbmk2/hbmk2.prg
+ Added experimental -mkimplib= option to "convert" .dll
files into import libraries. Syntax tentative.
; TODO: Support for idiotic -a Borland C implib option.
If anyone has an idea how to detect when to use
-a and when not, I will implement it. If not,
I will most probably drop maintaining -a option
for bcc and leave it off. This leaves implibs
working for most .dlls we currently use, but will
break some (blat, curl, cairo, pq, alleg from
contrib).
* config/win/xcc.mk
* utils/hbmk2/hbmk2.prg
! Fixed to use case-correct filenames for xcc tools.
* bin/hb-mkimp.prg
+ Added msvcia64, msvcarm, xcc support.
! Fixed few library specs for msvc*.
* FS_ERROR -> F_ERROR
! Fixed handling spaces inside dll name for msvc*.
! Fixed handling non .dll extension for msvc*.
* bin/hb-mkimp.prg
+ Finished, tested. This version also adds pocc64 support.
It also gives proper feedback.
* INSTALL
* bin/postinst.bat
- bin/hb-mkimp.bat
* package/winuni/mpkg_win_uni_extra_copy.bat
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
+ Switched to use hb-mkimp.prg instead of .bat.
25KB less of non-portable .bat file in Harbour SVN.
Remains only ~100 lines of .bat stuff in core parts.
+ Deleted GNU Sed requirement.
+ Lifted Windows NT requirement for implib creation.
+ Lifted NT shell requirement for implib creation.
+ bin/hb-mkimp.prg
+ Added .prg rewrite for implib generation. This highly
reduces redundancy, drops WinNT and GNU Sed tool
requirement, further lowers the amount of non-portable
batch sources in SVN. It also opens the door to add
automatic implib generation in tools like hbmk2.
Not yet tested.
* bin/postinst.bat
% Minor cleanup.
* bin/hb-mkimp.bat
* Rearrangement.
* utils/hbmk2/hbmk2.prg
! Typo on comment.
* harbour/bin/postinst.bat
! fixed to not override hbrun if HB_BUILD_SHARED == "yes"
* harbour/ChangeLog
! fixed date
* harbour/contrib/hbsqlit3/hbsqlit3.c
! fixed usage hb_fsNameConv in SQLITE3_TEMP_DIRECTORY
* bin/postinst.bat
! Fixed recent change. 'HB_BUILD_SHARED=yes' means to create
_default_ binaries (hbtest.exe, hbrun.exe, etc) in shared
mode, so the correct behavior here is to _not_ create separate
shared versions in this case.
I didn't retest every aspect of this, so it's possible even
this is wrong and the whole change has to be rethought or reverted.
! Fixed indentation after recent change.
Please do respect formatting when editing files.
* src/rtl/hbsocket.c
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
+ Restored to work with ws2_32.dll. (instead of wsock32)
* INSTALL
+ Added information on Win9x/ME support.
* src/rtl/diskspac.c
* src/rtl/disksphb.c
+ Added comment about the reason why GetDiskFreeSpaceEx()
is called dynamically (win95 first edition support).
+ Added support for HB_NO_WIN95 build-time flag to drop
Win95 compatibility. Unfortunately current dynamic load
trick fails with UNICOWS, returning zero for disk
space related calls in this scenario. If we drop the
dynamic call, we lose support for Win95 first edition,
but these functions will work properly on Win95b/98/ME
in return. I'm still thinking about it, but maybe it's
better to drop Win95 first edition support altogether
and make newer versions work properly. Any opinions?
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_wingdi_font.c
! Fixed to use WIDE/ANSI versions of dynamically executed
functions according to UNICODE setting.
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
! Stepping back to link against wsock32 instead of ws2_32.
The only reason is Win95 (even OSR2) compatibility.
This is a little bit less efficient unfortunately.
* src/rtl/hbsocket.c
! Fixed to use WSAioctl via dynamic call for non WinCE
builds, and if HB_NO_WIN95 macro is no defined.
WSAioctl is present in ws2_32.dll, which .dll isn't
available on Win95.
; Not tested since I don't know how to test it, pls
review and test.
; NOTE: There seem to exist a package which add ws2_32
support for Win95, but I couldn't find it, if
someone has, we can drop this ugly trick and
simply document the requirement.
* src/rtl/gtwin/gtwin.c
* Formatting.
* INSTALL
* bin/hb-mkimp.bat
+ contrib/rddsql/sddoci
+ contrib/rddsql/sddoci/Makefile
+ contrib/rddsql/sddoci/ocidd.c
+ contrib/rddsql/sddoci/sddoci.hbc
+ contrib/rddsql/sddoci/tests
+ contrib/rddsql/sddoci/tests/hbmk.hbm
+ contrib/rddsql/sddoci/tests/test1.prg
* contrib/rddsql/Makefile
+ Added support for direct connection to Oracle
databases via OCILIB library.
UNICODE, ANSI (default) and MIXED modes are supported.
For mingw targets, the library will be linked
statically, for the rest dynamically.
You need to have Oracle client (oci.dll and the
rest of the package) installed to use it.
; TODO: Finish type conversion and mapping.
* contrib/rddsql/sddmy/mysqldd.c
* contrib/rddsql/sddpg/pgsqldd.c
* contrib/rddsql/sddfb/fbirddd.c
* contrib/rddsql/sddodbc/odbcdd.c
! HB_ULONG -> HB_SIZE
; TOFIX: To Mindaugas: Current SDD architecture will crash with GPF
if dbUseArea() is attempted after a failed RDDI_CONNECT
call. You can check it f.e. with sddodbc's test1.prg, by
modifying test.mdb to test_.mdb, and simply run it.