* config/globsh.mk
! make the clean target also remove the newly-created libharbour* symlinks [Tamas]
* utils/hbmk2/hbmk2.prg
+ Added TODO to eventually delete lib grouping.
* config/linux/watcom.mk
- Disabled dynlib creation on linux/watcom, because watcom support
is broken yet.
* src/rtl/gtwin/gtwin.c
! Fixed for pocc after: 2010-03-05 19:26 UTC+0100 Viktor Szakats
(looks like pocc isn't very actively used in Harbour)
* config/globsh.mk
+ Added two TODOs to FALSE definitions.
* config/globsh.mk
+ 'FALSE' variable set for 'nt' shells.
* 'FALSE' variable set to a dummy value ($(TRUE)) for 'dos' and 'os2' shells.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
! Fixed to fail after deleting the library on 'ar' failure.
* config/global.mk
% Minor optimization for Windows platform
! At the same time fix for CreateProcess( 'uname' ) error on Win9x.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
! Fix to previous: In multi-command cmdlines, f.e.: '(cmd1 && cmd2)'
$(RM) command _must_ be used as a workaround so that GNU Make
converts it to a batch file. Unfortunately with this, an 'ar'
failure will be masked by a successful $(RM), so the make won't
stop.
* config/globsh.mk
+ Added new command macro $(FALSE) preparing for general solution
to force failure.
* config/beos/gcc.mk
* config/qnx/gcc.mk
* config/bsd/gcc.mk
* config/bsd/clang.mk
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/hpux/gcc.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/clang.mk
* config/linux/sunpro.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
* config/instsh.mk
* 'false' -> '$(FALSE)' for shell independence.
* contrib/hbwin/wce_smsc.c
! Fixed to skip content for msvc 2003 in C mode.
* config/globsh.mk
+ Now also deleting .pch (MSVC precompiled header) files on
clean, in case someone enables them.
; NOTE: I turned out all my tests using "msvc 2003" compiler
was in fact a 12.20.9615 (_MSV_VER=1201, clarm.exe)
version compiler, which equals to VC++ 6.0.
Just for the record, since I can't oversee what WinCE
compilers were released between this and MSVC2005 (8.0/1400),
so until then I have to assume that everything
below 8.0 are "old" msvcarm versions (7.1/1310 or lower).
* utils/hbmk2/hbmk2.prg
! Added -debug linker option when building .dll for msvc and compatible targets.
! Fixed minor regression in embedded CRLFs of hbmk2 texts.
* config/win/msvc.mk
* utils/hbmk2/hbmk2.prg
+ Added -MT/-MTd for win/msvc compatible targets when verison is 7.1 (.NET 2003)
or older. On these versions this will assure that multithreading C RTL is
being used (at the same time forcing static C RTL).
* config/wce/msvcarm.mk
* config/win/msvc.mk
+ Added -debug linker option for executables.
; TODO: Add it for .dlls too.
* config/globsh.mk
+ Deleting (MSVC) .pdb and .ilk files for executables and dynlibs on 'make clean'.
* harbour/config/globsh.mk
+ Added command $(TRUE) as dummy one for all shells. Pls check.
The goal is to have a command which does nothing just returns success.
* INSTALL
* Pelles C support version numbers adjusted.
6.0 DOESN'T work with Harbour due to multiple bugs in this compilers.
Don't report such problems to the list.
* package/winuni/HARBOUR_README_MINGWARM
* Updated for latest cegcc binary release.
* utils/hbmk2/hbmk2.prg
! Typo in BSD macro redefinition.
* config/global.mk
+ Extended platform macro redefinition for all supported platforms.
+ Extended arch bit macro redefinition (didn't test it though)
* config/globsh.mk
! Fixed implib not being deleted when using POSIX shells.
! Fixed dynlib and implib not being deleted when using OS/2 or MS-DOS shells.
* config/global.mk
+ Added dos/djgpp autodetection for *nix platforms.
* contrib/hbfbird/Makefile
+ Extended autodetection and feedback. Experimenting.
* config/globsh.mk
+ Added web links to DJGPP FAQ instead of binary FAQ package.
* contrib/hbqt/Makefile
* contrib/hbfbird/Makefile
* contrib/gtqtc/Makefile
* source/Makefile
* config/global.mk
* HB_OS_UNIX GNU Make var renamed to HB_PLATFORM_UNIX.
Content is now non-empty or empty (was yes or no).
* config/sunos/sunpro.mk
+ Changes made to config/linux/sunpro.mk applied here also.
* INSTALL
+ Mentioning dosemu.
* bin/postinst.bat
+ dos shell flavour zip creation.
* config/global.mk
+ Added make platform detection.
+ Changed 'dos shell on win platform' warning to be based on make
platform.
+ Not showing 'dos make on win platform' warning when doing DJGPP
build because this is the right (and only) way in case of this
compiler.
* config/globsh.mk
+ Added command line length limit details for dos shell.
+ Added command line length limit for OS/2. Copied from other .mk file.
* config/dirsh.mk
* config/instsh.mk
- Deleted comments 'We have to use script to overcome the DOS limit of max 128 characters'
from all places.
* config/dos/djgpp.mk
+ Will now error if trying to use other than DJGPP make
to built with this compiler.
* 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.)
* 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/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/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.
* source/dynlib/mt/Makefile
* source/dynlib/Makefile
+ Added 'install' logic for dynamic lib implibs.
* config/global.mk
+ Added useful GNU Make link.
! Added HB_HOST_CPU "detection" for os2 and dos to avoid
situation where cross-build is detected due to different
to HB_CPU value. (HB_CPU autodetection for os2 dos was
added yesterday). It's quite theoretical, as os2 dos
has CPU type set to constant 'x86'.
+ Added IMP_DIR value. This hold where to store implibs
for dynamic libs. Empty if platform don't need implibs
(huge relief BTW). For *nix this value is set empty, for
non-*nix it's set to LIB_DIR.
+ Added initialization for DYN_PREF (to empty).
* config/dyn.mk
+ Added handling of IMP_DIR, IMP_FILE.
! Dyn lib build rule guarded with HB_BUILD_DLL and DY_RULE
checks.
* config/globsh.mk
+ Added dirbase and clean rules for implibs.
! Fixed using OS version of dirs in $(wildcard) for nt
clean rules for OBJ_DIR and PKG_DIR.
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/icc.mk
* config/win/cygwin.mk
* config/win/msvc.mk
+ Dynamic lib rules extended to generate implib in IMP_DIR.
This goes smoothly with all compiler except bcc, which requires
a copy and a delete to move the implib to lib dir. 'move'
doesn't work (says 'command not found' or equivalent and
requires '$(COMSPEC) /C' with GNU Make + nt shell), so I
didn't use it finally. Anyhow bcc implib is small.
* config/globsh.mk
- Deleted $(MV) variable with move command.
(problematic under nt shells)
- config/dj-mv.exe
* config/readme.txt
- Deleted DJGPP mv tool.
; NOTE: dynamic library handling seems to be about feature complete.
* source/pp/Makefile
- Deleted just added global.mk. It's not needed.
* config/globsh.mk
+ Added $(MV) variable with move command.
+ Added $(LN) variable with *nix link command.
! Fixed $(RM) in os2 shell rules to use os2-rm.exe
instead of shell provided del. Latter show errors
if filename doesn't exist, and we're now using
clean rules copied from dos shell, which doesn't
make extra existance checks. Well, to put it
shortly I've synced $(RM) with dos shell solution.
+ config/dj-mv.exe
* config/readme.txt
+ Added DJGPP mv tool.
* bin/hb-func.sh
! Fixed typo in syslib lone in a recent commit.
* config/globsh.mk
! Restored backslashes for GNU rm command for os2 shell.
It turns out rm needs backslashes in filenames (on contrary
to mkdir which needs forward slashes.) Not terribly consistent.
BTW they came from same packages.
Thanks to Maurilio Longo for the information.
* source/pp/Makefile
! Readded empty line after pptable rule.
I couldn't find the reason why this was needed, anyhow
without it the dynamic hbpp obj deletion didn't work.
Which GNU Make syntax rules am I forgetting? Any hints?
; TOFIX: Another issue has shown its ugly head, here clean
in hbpp shows error message from 'del' command on
nt shell deleting the .exe (and .tds), despite the
file is there and we're doing wildcard check too.
Ideas are welcome. This worked a few days ago.
* config/globsh.mk
% Replaced 'if not exist' nt and os2 shell cmds with $(wildcard).
% Using plain (non OS converted) variables in $(wildcard) calls
in dos clean rules.
% Deleted 'if not exist' os2 shell cmds from dirbase rules.
Since we're using GNU tools this isn't necessary, errors will
not be shown if the dir already exists. This makes these rules
similar to dos ones.
! Fixed to not use OS converted parameters with $(RDP) calls with
os2 shell. I can't test, but last information from OS/2 users
was that OS/2 GNU Tools expect *nix style path seps.
* Synced os2 shell clean rules with DOS ones, except using
*nix style parameters in GNU cmds.
* config/instsh.mk
% Replaced 'if not exist' nt and os2 shell cmds with $(wildcard).
In nt I've added a trick to make it work with dirs containing
spaces.
; After these changes no more 'if [not] exist' shell specific
commands are used in Harbour GNU Make system.
; TOFIX: Except sh shell. Probably the rules there can be synced now
with other shells and special bash logic dropped.
* source/dynlib/Makefile
* source/Makefile
+ Moved dynamic lib generation initialization logic to source
root Makefile. This ensures that all subdirs are built before
creating the dynamic libraries.
* config/globsh.mk
+ Added rules to delete .def files.
* harbour/contrib/hbodbc/odbc.c
* harbour/contrib/rddsql/sddodbc/odbcdd.c
* synced workarounds for missing in some header files SQL* definitions
* harbour/config/globsh.mk
* harbour/config/instsh.mk
! eliminated COMMAND.COM commands used for DOS shell - I've just tested
that they do not work with pure MS-DOS 6.2 without using $(CMDPREF)
though they works with FreeDOS. Anyhow we can safely eliminate them
using dj-*.exe tools directly without any if ... command.com testing.
It also resolve the problem with IF EXIST <DIR>\NUL which is always
true in some environment, i.e. Novel-NetWare drives.