* harbour/include/hbmacro.h
* harbour/source/macro/macro.yyc
* harbour/source/macro/macro.y
* hb_macroIdentNew() made public
* harbour/include/hbexprb.c
! use hb_macroIdentNew() instead of hb_compIdentifierNew()
in code compiled for macrocompiler
* INSTALL
* Cleaned examples.
- Arranged them by host platform
- Fixed a few examples (DJGPP on NT missed HB_PLATFORM)
- Moved 'set HB_COMPILE' to make cmdline.
- Consistency changes.
- Deleted empty 'rem' lines.
- Moved log redirection from each example to general NOTE.
- Moved %1 %2 from example to general NOTE.
- Added generic *nix section.
- Added information about possible cross-build targets.
; Hopefully they are much cleaner now. In fact most information
deal with how to setup the compiler.
* config/global.mk
+ Added link to GNU Make free book.
% path checking functions rearranged, so now it can be indented.
+ Added log header line.
! Fixed to display only the first autodetect location.
* bin/postinst.cmd
* bin/postinst.bat
* bin/hb-func.sh
* Wording: 'Generating' -> 'Making'
* 'Harbour Make (hbmk2)' -> 'hbmk2' in generated hbmk.cfg.
* utils/hbmk2/hbmk2.prg
* Wording: 'Generating' -> 'Creating'
* harbour/include/hbexprb.c
* minor modification
* harbour/source/common/expropt2.c
+ added compile time optimization for expression like ("alias")->var
and ("alias")->(<exp>)
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/hbcurls/Makefile
* contrib/hbcurl/Makefile
- contrib/hbcurl/hbcurlm.c
- Deleted two wrappers belonging to share/multi interfaces.
* Moved two legacy functions back to main source.
- Deleted hbcurlm.c which caused doubly defined symbols
when built with pocc. It was caused by some curl header
features most probably.
* config/global.mk
* Comment update in config var planning section.
* config/global.mk
+ Will now show the autodetected compiler path.
* utils/hbmk2/hbmk2.prg
! Fixed to not pass bogus resource source files to linker when
resource compiling isn't supported on given compiler (win/icc).
* config/common/watcom.mk
! Fixed double .exe extension (regression).
* contrib/hbqt/Makefile
* contrib/hbxbp/Makefile
* contrib/gtqtc/Makefile
+ Experimental changes:
Now showing reason why library was skipped.
Configuration also works a little differently:
HB_INC_QT should either be set to the header dir,
or set to 'no' which will disables any autodetection
(on *nix systems). This method replaces HB_HAVE_QT=no
setting and leaves only one setting to control QT
lib building. Experimental, probably the control
method should be further tuned.
Possible log messages:
- component not found
- component location not set
- deselected
- platform not supported
- compiler not supported
- (...) not supported
+ not necessary
NOTE: I've used 3.81 'if/else if' structure here.
% Streamlined the way darwin autodetection is solved.
(not yet tested)
* contrib/hbfbird/Makefile
* contrib/hbfimage/Makefile
% Optimized prerequisit check by using $(filter)
* config/win/icc.mk
! Changed to use xilink instead of using the compiler for
linking. This syncs it with msvc and hbmk2, and it also
fixes .dll creation.
+ Added /nologo.
* config/global.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/win/xcc.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/icc.mk
* config/win/msvc.mk
* config/rules.mk
* config/os2/watcom.mk
% Optimized OBJ_DYN_POSTFIX variable to be an internal one,
it doesn't need to be set in compiler .mk file anymore.
If there is any extra C compiler flag set for dynamic mode,
it will be set automatically.
- doc/howtobsd.txt
* doc/Makefile
* INSTALL
* Essence of the content moved to INSTALL.
* config/none.mk
+ Added support to display the reason for the "skip".
* external/sqlite3/Makefile
* contrib/gtalleg/Makefile
+ Showing the reason why the libs were skipped.
Experimental. This feature needs some more design
to be consistent and helpful, it should be done while
also standardizing our config methods.
Current internal solution is also not terribly elegant,
maybe it can be converted to a function call, but there
may other solutions too.
* doc/dirstruc.txt
* Minor update.
* config/globsh.mk
! Deleted double quotes from around $(MK) command on nt
shells.
This had the side effect that GNU Make couldn't run the
executable for recursion if it wasn't in the PATH.
(so win-make.exe didn't work. Now it does.)
- doc/linux1st.txt
* doc/Makefile
* INSTALL
+ Moved linux1st.txt content to INSTALL.
* utils/hbmk2/hbmk2.prg
* config/global.mk
- Deleted some HB_ARCHITECTURE compatibility lines.
Now only legacy hbmake sources keep referencing it.
* utils/hbmk2/hbmk2.prg
+ Added support for combined target names. This means
that from now in all supported platform/compiler inputs can
be formed like <plat>/<comp> in one string.
So f.e. '-plat=wce/mingw' is the same as '-plat=wce -comp=mingw'.
This feature only kicks in if the string contains '/' and in
this case the first item always indicates the platform, the
second always the compiler, regardless of which switch name is
used (-plat or -comp). So -comp=wce/mingw is the same as -plat=wce/mingw.
Experimental yet.
! Wrong bugfix reverted in prev commit. (for watcom/win)
* utils/hbmk2/hbmk2.prg
* config/global.mk
+ Added autodetection for i386-mingw32ce, which is WinCE running on x86 CPU.
This tool was released just recently from cegcc team.
* config/global.mk
+ Tweaked a little mingwarm autodetection on *nixes.
It will now look for all three mingw compilers on provided HB_CCPATH.
If not provided or not found on that location, it will continue to look
for them in default locations.
+ config/wce/mingw.mk
+ Added x86 wce/mingw config file. It's a simple redirection to
mingwarm.mk. I'll try to make some steps to make it generic,
can't really see the end of the tunnel yet though.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
* Changed to use 'platform'/'plat' instead of 'architecture'/'arch'.
+ Added -plat option. Same as old -arch, which is still accepted
for compatibility.
+ Accepting HB_PLATFORM envvar instead of old HB_ARCHITECTURE.
Old envvar is still accepted for compatibility.
+ Added ${hb_plat} and ${hb_platform} macros. Content the same
as for old ${hb_arch} and ${hb_architecture} macros. Old ones
still retained for script compatibility.
; Please start using the new values.
* contrib/hbwin/olecore.c
! Suppressed MSVC warning.
* source/vm/itemapi.c
! Added casts to avoid MSVC -W4 warnings. All of them was related
to casting Harbour numeric value number of digits/decimals
coming as an 'int' but stored as an USHORT in HB_ITEM.
* source/hbpcre/Makefile
* source/hbzlib/Makefile
+ Added 'HB_BUILD_WARN := no' which causes that these foreign
sources will be compiled using default compiler warning level.
Should avoid a few MSVC warnings.
* INSTALL
+ dos-make.exe
+ win-make.exe
+ os2-make.exe
- config/mingw32-make.exe
- config/dj-make.exe
- config/os2-make.exe
* config/readme.txt
* Moved non-*nix GNU make executables to the root.
* Rename above utilities to give a clear idea which belongs to
which platform. At the same time we avoid using their original
names, thus allowing users to use those ones if installed.
* Modified documents accordingly.
* include/hbsetup.h
* Minor in comment.
+ Also looking for __DARWIN__ to autodetect HB_OS_DARWIN.
* utils/hbmk2/hbmk2.prg
+ Honoring -quiet option for language file creation related screen output.
* INSTALL
* Some improvements.
* bin/postinst.bat
+ Added -quiet to hbmk2 cmdlines.
* harbour/contrib/hbwin/axcore.c
* added automatic activex initialization to __AXDOVERB().
__AXGETCONTROL()/hb_oleAxControlNew() also make automatic
initialization so it's not necessary to explicitly call
WIN_AXINIT()/hb_oleAxInit()
* harbour/contrib/rddads/readme.txt
! updated ADS* RDD usage description which contain very old information
which stop to be valid many years ago, i.e. user code should not call
rddRegister().
* harbour/contrib/rddads/rddads.h
* harbour/contrib/rddads/ads1.c
! fixed SELF_RESETREL() macro
! changed uiRecordLen to ulRecordLen - ADT tables can have records
longer then 64KB
! fixed size of alias buffer passed to AdsGetTableAlias()
* harbour/contrib/rddads/adsx.c
* modified ADSXAREA structure definition to directly inherit from
ADSAREA instead of manual redefining all of its fields.
* utils/hbmk2/hbmk2.prg
! Minor visual correction to help screen option section.
* ChangeLog
! Missed from prev entry:
* utils/hbmk2/hbmk2.prg
+ Added quiet option for watcom linker commands.
! Fixed missing SYS directive in watcom/win targets which prevented
using this target in cross-build scenarios.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added -implib option. Implemented it for all compilers.
(some of these don't support -hbdyn option yet though, once we
got it matured in GNU Make, these can be added to hbmk2)
+ Added linux/watcom dynlib generation. Quite experimental, it doesn't
work due to missing symbols.
+ Added linux/watcom support for -shared mode. Experimental, it doesn't
work due to 'invalid library file attribute'. Either the GNU Make
generate .so is wrong, or it's wrongly specified, or else.
I hope something can continue watcom dynamic lib support.
* config/dos/watcom.mk
* Formatting.
* config/linux/watcom.mk
- Deleted 'RUNTIME linux' and 'OP norelocs' options from dynlib gerenation.
* config/linux/watcom.mk
+ Added dynamic library generation for linux/watcom.
Experimental.
NOTE: DFLAGS is a little tricky as I found no 'SYSTEM'
preset for ELF DLLs.
* bin/hb-mkimp.bat
- Not creating msvc implibs for QT .dlls anymore.
.dlls distributed in the QT binary package are using
Itanium ABI (built with MinGW/GCC), which isn't compatible
with ABI used by MSVC. Generating an implib is impossible here.
Those who want to use QT with MSVC Harbour builds should
rebuild QT .dlls from source, implibs will be generated
automatically in this case (I assume).
* contrib/hbqt/hbqt_slots.cpp
! Fixed memorys leak in HbDbfModel::rowCount() and HbDbfModel::columnCount().
It was shown as "unreachable code" warning.
* contrib/hbxbp/tests/demoxbp.prg
* Added '#pragma -w1' to suppress warnings.
Pripal, is there any chance you can clear them? it would
be a nice showcase as in real apps it's better to stick
with full warnings on. It would better show the Xbase++
Parts user code's suitability for real apps. IMO.
+ config/Makefile
+ Added Makefile to show an error with simple one-liner
instruction to guide users who want to start provided
GNU Make executables right in the config dir.
This is wrong, they should be started in root.
Anyhow maybe I'll move these make executables to root,
with these names:
dos-make.exe
os2-make.exe
win-make.exe
This will avoid above problem, it simply cannot be
[messed] up anymore. Well, so I imagine.
These names also won't collide with original names
of these tools, so users who want to stick with external
tools, can continue to do so.
The other option is that I delete them from SVN.
* config/global.mk
+ Showing warning to user if she's using DOS shell
(which probably means DOS based GNU Make) on Windows system.
It should also work for most features, but not recommended
and there is little reason to do this in production
environment.
* contrib/hbqt/Makefile
* contrib/hbqt/generator/hbqtgen.prg
+ contrib/hbqt/filelist.mk
- contrib/hbqt/Makefile_gen
* Renamed Makefile to filelist.mk to stick
with known short filenames and extensions.
* INSTALL
* Minor.
* config/rules.mk
* config/dyn.mk
% Cleaned the way dynamic lib creation logic is activated.
Now there is no slowdown on targets where dynamic lib
isn't available (or implemented).
* source/pp/Makefile
% Deleted rule to delete hbpp_dyn object. No longer necessary
after patching hbpp.c. Just left there in prev commit to
have this line fixed.
! Deleted comment which became irrelevant after prev commit,
but forgot to remove it.
* source/pp/Makefile
! Fixed case when OBJ_DYN_POSTFIX was empty (all platforms
except win/wce non-gcc family) and hbpp object was deleted
twice, the second one resulting in error message.
! Deleted ineffective hack to add an empty line after pptable
rules. I turned out the behavior I was trying to fix with this
is totally random.
* source/pp/hbpp.c
! Disabled content when built in HB_DYNLIB. This file should
never go into a the Harbour dynamic library.
Of course we already have the object deletion trick, but,
at least on bcc it doesn't work reliably. After chasing this
for half a day it turns out bcc build with mingw32-make 3.81
has some sort of random behvior and sometimes hbpp_dyn.obj is
deleted, sometimes not. Also 'rm hbpp.obj' either appears at
the end of the make process, or not, I don't know if there is
any realtion between the two. Maybe we're exploiting some
make bugs with bcc rules, I don't know.
So this patch will make bcc dynamic lib creation reliable.
* config/global.mk
* Comments.
* config/global.mk
% Minor opt.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Some 'hbmk' texts changed to 'hbmk2'.
* contrib/rddads/adsfunc.c
! Fixed ADSGETLASTERROR() to return empty string instead of garbage
when there was no error.
Borrowed from xhb by Augusto Infante.
Fixes applied: Using manifest constant instead of 0, using NULL
instead of empty string literal.
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
* source/Makefile
- Deleted extra dos platform guards. It's not needed. I hope
it won't cause bad side effects.
* config/common/watcom.mk
! Fixed to not use $? in LD_RULE. Typo of yesterday.
! Restored remaining $? to $^. It exploited some bad side effects
in hbpp lib.
* config/globsh.mk
+ Switched os2 $(CP) command to use config/os2-cp.exe.
* config/instsh.mk
+ Changed os2 install rule to the one used for dos shells except dirsep type.
Based on real OS/2 tests made by Maurilio Longo. Thank you very much.
This also means CMDPREF.
! Typos in my comment.
* source/pp/Makefile
! Fixed to also check presence of hbpp object before trying to
delete it. It may not be there in some rare chain of (failure) events.
* config/global.mk
* config/darwin/gcc.mk
+ Added version macros similar to include/hbver.h ones.
% Using above version macros accross the build system.
+ Bumped minimum GNU Make version requirement to 3.81 (from 3.78).
If there is no negative feedback I'll clean some TOFIXes
which no longer apply, plus start cleanup on the make sources
to use more ideal 'else if' syntax.
+ Added commented 'cp' tool check on os2.
* config/global.mk
* config/instsh.mk
+ Reenabled CMDPREF logic.
* Changed os2 shell rules to use '$(CMDPREF)' instead of
hardwired '$(COMSPEC) /C'. Please don't undo it.
* bin/hb-mkdyn.sh
! Updated a default Harbour version number.
* config/os2/gcc.mk
+ Added .dll creation for os2/gcc.
As the initial attempt I'm using the mingw method to pass object
list to gcc. Please test.
* config/globsh.mk
* Changed $(MD) in os2 to use os2-mkdir. (this macro isn't
used yet)
+ Added os2-cp slash requirement information. Although that was
a different build than the one uploaded.
! Minor typo in comment.
* config/rules.mk
* config/dyn.mk
! Fixed to handle dynamic lib creation gracefully for targets
where this isn't supported. Now a message will be shown.
+ config/os2-cp.exe
* config/readme.txt
+ Added os2 cp tool. For testing.
* source/pp/Makefile
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
* Minor rename.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
! Don't quote filenames in DY_RULE commands to make them work
on all shells (sh in particular). This means that we lost
some level of 'space in filename' support, but it's acceptable
since it's unlikely to have space in internal paths anyway.