* 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.
* config/bsd/gcc.mk
* config/hpux/gcc.mk
* config/darwin/gcc.mk
* config/linux/gcc.mk
* config/os2/gcc.mk
* config/sunos/gcc.mk
+ Added HB_CCACHE, HB_CCPREFIX, HB_CCPOSTFIX to all places where
it was missing from.
bsd/hpux/os2/sunos - pre/post to cc/ld, pre to ar
darwin - ccache to ld (I'm not sure about this one)
linux - post to cc/ld
; Not it's about consistent and in sync with hbmk2.
Please review me.
* utils/hbmk2/hbmk2.prg
+ Added support for HB_CCPREFIX/HB_CCPOSTFIX for os2/gcc targets.
* contrib/hbwin/axcore.c
+ My previous change reapplied after it has been overwritten/lost
by previous commit.
Pritpal, pls verify your workflow, this was a very small change
but it's just out of luck I noticed it has been undone and it
could be something important in another case. Please 'svn update'
before committing and edit files directly in your sandbox. I'm
writing this because such lost committed modification happened
already a few times in the past. Thank you.
* config/global.mk
+ Including optional config/conf.mk file.
Such file may be created by configure session.
* contrib/gtwvg/wvgax.prg
* contrib/gtwvg/wvgsink.c
! Code parts used fron axcore.c, deleted from these files.
* contrib/hbwin/axcore.c
+ __AXDOVERB(), a very important function for in-process active-x controls
* config/common/watcom.mk
* config/win/bcc.mk
% Yet another experiment, maybe it won't have any bad side
effects: For compilers where $(AR) command supports differential
command (bcc and watcom), we're only passing the list
of changed objects instead of all of them. Should be
much more efficient for incremental builds.
* config/globsh.mk
* config/instsh.mk
! Reset nt shell dirbase and clean rules to previous state
(using 'if [not] exist' instead of $(wildcard)).
New solution had several side effects. Some of them easy
understandable, some others outright mysterious, so more
research will be needed here. Some experiences:
- the whole rule is evaluated before starting to execute the resulting commands.
- multiple rules with the same target are merged before evaluating them
- $(wildcard) is tricky with dirs, especially ones with spaces
- if we use conditional lines ($if()) and all lines are ruled out,
- the rule will become empty, igniting a confusing GNU Make message.
- strange behavior when using 'CLEAN INSTALL'
- $(RM) stayed at default value in one /source/pp/Makefile rule.
; TOFIX: dos/os2 rules are still slightly wrong because of similar problems,
and there 'if [not] exist' isn't a working option either, so
we will need to think about something, like splitting clean
rules to two levels internally, or more make function tricks.
* config/readme.txt
+ config/os2-make.exe
* INSTALL
+ Added os2 GNU Make binary (3.81 static build). Just to be in
sync with other non-*nix platforms. Maybe it will be removed or
renamed.
* config/globsh.mk
+ Minor wording change.
* contrib/hbwin/axcore.c
* Very minor formatting.
- make_gnu_xmingw.sh
- make_gnu_xmingwce.sh
% Deleted two cross-build starter scripts. Their functionality
has been largely moved into our GNU Make system.
Please use these commands for equivalent functionality:
[g]make HB_ARCHITECTURE=[win|wce]
; NOTE: Comments are still welcome regarding experiences
especially from original authors of these scripts.
Maybe I missed something. $(TARGET) var support.
Please comment.
* config/linux/gcc.mk
+ Added experimental dynamic lib creation.
; Please review this. If okay we can probably move this logic
to all other *nix platforms and compilers.
Maybe even os2/gcc.
* source/vm/maindllh.c
* source/vm/Makefile
+ Added support for os2 .dll. Please review.
* config/os2/watcom.mk
+ Added os2 .dll generation for watcom.
Now it generates OK.
* source/Makefile
* config/lib.mk
+ Added support for os2 and some level of *nix support.
* INSTALL
* Minor update to a few option description.
* utils/hbmk2/hbmk2.prg
+ Added preliminary/experimental/untested OS/2 -shared (.dll)
support for watcom targets.