* config/common/watcom.mk
! Upped -p linker option (from 64 to 72) to not choke on hbrtl
in some certain build situations.
Thanks to Tamas Tevesz for report/testing.
* config/rules.mk
* config/dos/djgpp.mk
* config/common/watcom.mk
* config/os2/gcc.mk
+ Finished support for HB_LDFLAGS variable (to hold Makefile
local extra linker options). We don't use this feature yet.
* config/sunos/sunpro.mk
+ Setting CXX for sunos/sunpro.mk to make it build .cpp files
without forcing cpp mode explicitly. (suncc seems to do nothing
with .cpp input files.)
* config/bsd/libs.mk
* config/hpux/libs.mk
* config/darwin/libs.mk
* config/sunos/libs.mk
- Deleted commented /usr/X11R6/lib64 lib dir. It's a Linux
distro specific thing.
* config/linux/libs.mk
+ Added comment for /usr/X11R6/lib64
* bin/postinst.bat
+ Reworked to work better in cross-build/cross-shell scenarios.
* config/common/watcom.mk
! Use envvars to pass parameter either if shell is dos or target.
This fixes dos/watcom builds under non-dos shells.
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
* config/none.mk
! Fixed the way these dynamic lib targets are skipped.
* package/mpkg_win.nsi
* Changed to also work on trees using short names.
(only 'ChangeLog' is a problem here).
Maybe it's time to rename to CHANGES. It causing too much
headache.
* bin/postinst.cmd
* Sync with .bat.
* config/global.mk
+ Exporting HB_SHELL for postinst scripts.
! Fixed HB_PKGNAME assembly for dos targets.
! Typo in comment.
* config/win/bcc.mk
! Deleted dbl quotes from tlib commands as it totally confused it
under msys shell.
* doc/bintools.txt
* config/dosecho.exe
! Restored previous version. (new one gave error on some watcom lines f.e.)
+ Added binary+source links.
* INSTALL
+ Some minor clarifications.
* 'NT system required' changed 'XP system recommended' for win hosts.
+ Added shell requirement for HB_BUILD_PKG.
% Simplified os2/watcom on linux example.
* bin/postinst.cmd
+ Some cleanup/sync with postinst.bat.
* source/Makefile
! Possible fix: Emptying DYNDIRLIST_BASE on dos targets
to save envvar space.
* source/Makefile
* config/lib.mk
+ Added gtcrs and gtsln to dynlib obj list for *nix targets.
* config/global.mk
+ Added Harbour version number to log header.
! Fixed to use short pkg name based on target platform
no host platform (=dos).
* config/bsd/gcc.mk
* config/hpux/gcc.mk
* config/darwin/icc.mk
* config/linux/icc.mk
* config/linux/sunpro.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
+ Added dynamic library generation to rest of targets.
; Please review, especially sunos/sunpro as it had some
.sh tricks which I couldn't replicate.
* config/bsd/global.mk
* config/hpux/global.mk
* config/darwin/global.mk
* config/linux/global.mk
* config/sunos/global.mk
! Setting DYN_PREF to 'lib'.
* config/wce/mingwarm.mk
* config/win/mingw.mk
- Disabled import libs. [They aren't necessary with mingw.]
* config/darwin/icc.mk
* Changed to use libtool instead of xiar.
(blind sync with darwin/gcc)
* config/dos/djgpp.mk
* config/common/watcom.mk
* config/win/bcc.mk
* config/os2/gcc.mk
! Fixed to use $(ECHOQUOTE) in all $(ECHO) calls.
* config/win/bcc.mk
! Fixed use fixed backslashes regardless of shell in scripts.
* config/dyn.mk
! Fixed to use $(LIB_PREF) as implib name prefix.
% Minor opt in IMP_NAME forming.
* config/rules.mk
% Readded $(HB_INC_COMPILE) to be always on cmdline, to
better balance between cmdline and envvar space. (dos)
* config/instsh.mk
% Don't display useless '! Nothing to install' message
when there was no file to install. (could happen with
mingw dynamic lib install where implib is empty because
we don't generate one).
* 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.
* 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/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/common/watcom.mk
* sh AR rule made the default.
% Now nt shell uses the default AR rule (instead of dos one)
with watcom.
% Deleted no longer necessary FILE = %f vs %ff hack.
Now this rule is only active for os2 shells never nt.
* external/libhpdf/Makefile
* contrib/hbhpdf/Makefile
! Fixed to skip them when using dos hosts (due to long filenames
in libhpdf lib sources/headers)
* external/libhpdf/Makefile
+ Enabled for watcom/dos and watcom/linux targets.
* config/common/watcom.mk
* config/rules.mk
+ Added CC_FLAGS variable similar to HB_FLAGS to aid
moving flags to envvars and to reduce redundancy in rules.
* The CC_RULE hack was a little bit modified accordingly
for c-mode non-linux watcom. We're now a bit closer to
be able to drop CC_RULE override.
! Adapted above change for watcom where now all (non-user)
flags are moved to envvar when using dos shells.
* config/dos/watcom.mk
* config/common/watcom.mk
* config/win/watcom.mk
* config/linux/watcom.mk
* config/os2/watcom.mk
! Fix to prev. (missed to deleted platform specific rules from nt/dos ones)
* Moved LDLIBS formation back to platform spefific watcom.mk files.
(the only reason is SYSLIBS present only on win)
* config/common/watcom.mk
+ Readded dos/nt shell specific logic. (they were the same so
far in Harbour, but maybe it'd be now possible to create real
optimize out dos specific hacks for nt shells - unless there
is a chance to break the 8192 bytes nt cmdline length limit.)
* ChangeLog
+ Marked pending items in prev entry.
* config/dos/watcom.mk
* config/win/watcom.mk
* config/linux/watcom.mk
* config/os2/watcom.mk
% Deleted watcom doc links. It's enough to have them in common file.
* utils/hbmk2/hbmk2.prg
* config/global.mk
! Fixed to -undef:__PLATFORM__UNIX even for Windows host platforms.
This is required because Cygwin builds have this envvar set.
I'm not sure that setting __PLATFORM__UNIX for Cygwin is right
behavior though.
* config/dos/watcom.mk
* config/win/watcom.mk
* config/linux/watcom.mk
* config/os2/watcom.mk
+ config/common/watcom.mk
% Moved common watcom compiler specific make logic to one file.
I've choosen OS/2 rules in this global makefile, as they will
work on all platforms, albeit in the known slighly hacky way.
It's easy to reintroduce shell specific rules for more advanced
shells. There was one common rule set for nt/dos shells, plus
a very clean one for sh. I may do this in a next commit.
After this change it's possible to create all possible watcom
cross-builds. Pls shout if I missed something or the concept
seems to have some potential flaws.
; QUESTION: Does 'wlib' support '-p=64' option on Linux watcom builds?
; NOTE: Still most of the not yet merged logic could be merged,
since there is only a few minor difference between them.
; TODO: Add shell optimized watcom rules for nt/dos/sh shells.
; TODO: Try to do a similar stunt for gcc.mk files.
* source/pp/ppcore.c
* #ifdef -> #if defined()