* config/instsh.cf
! Fixed '-' prefix usage in non-*nix shells, so now make
process won't fail because of install rule error.
(this was a problem introduced in recent days)
Maybe it will be needed to tweak that because an install
failure might signal a real problem as soon as package
creation gets implemented inside/under GNU Make.
* config/global.cf
+ Added autofill of HB_INSTALL_PREFIX if not specified.
(work in progress, might change in the future)
+ Added support for "macro" values in HB_INSTALL_PREFIX:
{HB_ARCH}, {HB_COMP}, {HB_CPU}. They will be replaced
by corresponding value. This is a small steps towards
moving to GNU Make bases autodetection an moving away
from starter script (make_gnu.*) usage.
* config/bsd/global.cf
* config/wce/global.cf
* config/darwin/global.cf
* config/hpux/global.cf
* config/dos/global.cf
* config/win/global.cf
* config/linux/global.cf
* config/os2/global.cf
* config/sunos/global.cf
+ Added DYN_EXT and DYN_PRE variables as a small step
towards integrating dynlib creation in the GNU Make
process.
* config/darwin/gcc.cf
% Using custom LD_OUT instead of overriding while LD_RULE.
* config/bsd/gcc.cf
* config/wce/msvcarm.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
* config/darwin/gcc.cf
* config/hpux/gcc.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/cygwin.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/mingw.cf
* config/win/pocc.cf
* config/win/bcc.cf
* config/linux/watcom.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/sunos/sunpro.cf
* Cleaned LDFLAGS usage:
% Using := instead of =
! Always initialize LDFLAGS to empty to prevent spillage of random values.
* Moved lib specs included in LDFLAGS to LDLIBS.
* Cleaned "DEBUG ALL" addition in watcom compilers.
; GNU Make .cf cleanup is about over. There could probably be done
some additional optimizations, but it's already much cleaner, simpler
and more efficient than it was until a few weeks ago.
Still could be done: CFLAGS vs. CPPFLAGS usage accross compilers.
*_RULE variables, revise redefinition needs, maybe change the central
default, etc.
* ChangeLog
! Typos in prev entry.
* config/bsd/gcc.cf
* config/wce/msvcarm.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
* config/hpux/gcc.cf
* config/darwin/gcc.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/cygwin.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/mingw.cf
* config/win/pocc.cf
* config/win/bcc.cf
* config/linux/watcom.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/sunos/sunpro.cf
% CFLAGS and CPPFLAGS initialized using := operator.
! Fixed not initializing CFLAGS/CPPFLAGS at all for some compilers.
This may cause spilling of unwanted switches into our make system.
(watcom.cf)
* Few remaining indentations left from previous round (sunpro.cf).
* Some other minor cleanups along the way (xcc.cf).
* config/bsd/gcc.cf
% Started using := for CFLAGS/CPPFLAGS.
* config/darwin/gcc.cf
* Minor cleanups. Sync with bsd/gcc.cf, using vars with std names,
deleted unused lines.
* config/dos/watcom.cf
* config/win/watcom.cf
* config/linux/watcom.cf
* config/os2/watcom.cf
! Using $(HB_INC_COMPILE) instead of $(TOP)$(ROOT)include
like every other compilers.
* config/bsd/gcc.cf
* config/wce/msvcarm.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
* config/darwin/gcc.cf
* config/hpux/gcc.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/cygwin.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/mingw.cf
* config/win/pocc.cf
* config/win/bcc.cf
* config/linux/watcom.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro.cf
* config/instsh.cf
* config/dirsh.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/sunos/sunpro.cf
% Removed spaces before $(foreach) parameters. A space is
automatically added by GNU Make, so it's not needed. May
save a little bytes here and there and command look more
tidy (source looks a little bit clumsier though).
* config/bin.cf
* Minor formatting to liblist template.
* config/bsd/gcc.cf
* config/darwin/gcc.cf
* config/hpux/gcc.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro.cf
* config/sunos/gcc.cf
* config/sunos/sunpro.cf
% Using LIBS var to check for libs rather than HB_GT_LIBS.
* config/bin.cf
+ Harbour binary core liblists are now formed centrally.
Four variations are generated:
HB_LIBS_ST_RDD
HB_LIBS_MT_RDD
HB_LIBS_ST_NORDD
HB_LIBS_MT_NORDD
Binaries can choose by using: 'LIBS = $(HB_LIBS_*)'.
Important to use '='.
This step also fixes potential problems with former liblists,
where it was easy to make a local mistakes and some libs which
needed more complicated logic, or which were just rarely used
simply weren't added. Now all liblists are guaranteed to have
proper order and content.
HB_GT_LIBS and HB_DB_DRIVERS are automatically added centrally,
so no need to add them manually in each compiler specific .cf.
* tests/Makefile
* tests/hbpptest/Makefile
* tests/multifnc/Makefile
* utils/hbformat/Makefile
* utils/hbmk2/Makefile
* utils/hbtest/Makefile
* utils/hbi18n/Makefile
* utils/hbrun/Makefile
% Using above HB_LIBS_* macros.
; The only few places which I didn't thouch is non-Harbour
executables (harbour exe and hbpp exe).
* config/bsd/gcc.cf
* config/wce/msvcarm.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
* config/hpux/gcc.cf
* config/darwin/gcc.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/cygwin.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/mingw.cf
* config/win/pocc.cf
* config/win/bcc.cf
* config/linux/watcom.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/sunos/sunpro.cf
% Deleted local logic to merge HB_GT_LIBS and HB_DB_DRIVERS
into LIBS.
* utils/hbmk2/hbmk2.hbp
* utils/hbrun/hbrun.hbp
! Extra libspecs are still needed for some compilers.
I've readded them until better solution is found.
- bin/hbmk.bat
- Deleted. Probably no one uses it.
* contrib/hbtip/sendmail.prg
+ Added pop3s support for lPopAuth option.
* contrib/hbtip/client.prg
% TIPCLIENT() now uses INIT instead of manual initialization of
class vars.
* TIPCLIENT():NEW(): Protocol check made more robust.
* source/vm/dynlibhb.c
+ Enabled HB_HAS_DLFCN on darwin. Support is there, tested on
latest 10.5 Leopard.
* config/global.cf
* Minor.
* config/linux/sunpro.cf
* config/sunos/sunpro.cf
+ Using 'suncc|sunCC' compiler executables. This makes HB_CCPATH
unnecessary. Thanks Przemek.
* config/globsh.cf
* config/bsd/gcc.cf
* config/wce/msvcarm.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
* config/darwin/gcc.cf
* config/hpux/gcc.cf
* config/dos/djgpp.cf
* config/win/cygwin.cf
* config/win/mingw.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/sunos/sunpro.cf
% Using ':=' instead of '=' where possible.
(incomplete. pass two)
The rest is really the core and need deeper examination
of ordering and variable dependency. There is probably more
room for improvement.
* utils/hbmk2/hbmk2.prg
! Fixed to ignore filtered -gt switches (like -gtxwc{unix})
without warning message.
+ Some small steps towards adding sunpro[64] support to hbmk2.
% Merged watcom compiler support code for different platforms.
(option casing also synced)
! Added "{LS}" (resources) to os2/watcom compiler cmdline.
! Added -bt=os2/nt to resource compiler cmdline for watcom.
+ Added '-p=64' option to win|os2|dos/watcom lib cmdline.
+ Added '-q' option to watcom wlib/wrc cmdlines.
! Fixed debug linker option for watcom.
* config/dos/watcom.cf
* config/win/watcom.cf
* config/linux/watcom.cf
* config/os2/watcom.cf
+ Added doc link to wlib tool.
* Synced link option casing with each other and hbmk2.
% Deleted 'export DOS4G=quiet' for win and os2.
* config/global.cf
+ Minor cosmetic.
* bin/postinst.sh
* make_gnu.sh
+ config/linux/sunpro64.cf
* config/linux/sunpro.cf
* config/sunos/sunpro64.cf
* config/sunos/sunpro.cf
; Applyied patch by Tamas Tevesz.
! Fixes for Sun Pro so generation.
+ Added sunpro64.cf for linux.
+ Added HB_ISAOPT variable to hold ISA selection switches.
+ Added $(HB_CCPATH)$(HB_CCPREFIX) to sunos/sunpro.cf to CC/LD.
! Typo in make_gcc.sh (== -> =)
* source/vm/dynlibhb.c
! Fixed to not use dl*() functions on linux/sunpro.
* config/linux/sunpro.cf
! Fixed to include gpm lib.
; TOFIX: linux/sunpro linking dies on:
../../../../../lib/linux/sunpro/libhbpcre.a(pcrecomp.o): In function `check_auto_possessive':
pcrecomp.c:(.text+0x2952): undefined reference to `.CG4A.3263'
pcrecomp.c:(.text+0x2959): undefined reference to `.CG4A.3263'
pcrecomp.c:(.text+0x2b29): undefined reference to `.CG40.3253'
pcrecomp.c:(.text+0x2b30): undefined reference to `.CG40.3253'
* contrib/hbqt/hbqt_slots.cpp
! Deleted windows.h.
* include/hbsetup.h
+ PPC CPU detection made better.
* include/hbatomic.h
* source/vm/maindllp.c
* source/rtl/gttone.c
+ Using HB_CPU_* macros to detect CPU instead of compiler
specific solutions.
Przemek, please review me.
* source/vm/maindllp.c
% Using hbver.h constants to form the version number
included in the .dll name. So it's now maintainence
free.
% Reduced redundancy when forming .dll names.
* source/vm/maindllp.c
* utils/hbmk2/hbmk2.prg
* Renamed wce .dll to harbour[mt]-20-wce-arm.dll
* Renamed non-ARM wce .dlls to harbour[mt]-20-wce.dll
* INSTALL
+ config/linux/sunpro.cf
+ Added Sun Studio compiler support for Linux platforms.
Thanks Tamas Tevesz for the tip that this port exists.
It has various problems to fix, but it's a start.
* config/sunos/sunpro.cf
! Typo in prev commit.
- config/hpux/dir.cf
* config/hpux/global.cf
- config/hpux/install.cf
- config/darwin/dir.cf
* config/darwin/global.cf
- config/darwin/install.cf
- config/dos/dir.cf
* config/dos/global.cf
- config/dos/install.cf
* config/win/global.cf
- config/win/install.cf
- config/win/dir.cf
- config/linux/dir.cf
* config/linux/global.cf
- config/linux/install.cf
- config/os2/dir.cf
* config/os2/global.cf
- config/os2/install.cf
- config/sunos/dir.cf
* config/sunos/global.cf
- config/sunos/install.cf
- config/bsd/dir.cf
* config/bsd/global.cf
- config/bsd/install.cf
- config/wce/dir.cf
* config/wce/global.cf
- config/wce/install.cf
* Minor change in dos specific dirbase:: checks. Should be
equivalent.
* darwin/gcc was running RANLIB on install. I've removed
this for now and if ranlib is required on Darwin, it
should be readded to gcc.cf.
* config/os2/gcc.cf
* Changed to not rely on LIB_FILE_OS.
* config/dir.cf
+ config/dirsh.cf
* config/global.cf
+ config/globsh.cf
* config/install.cf
+ config/instsh.cf
! Fixed NT vs dos shell detection. (hopefully)
+ Shell dependent logic merged and moved into new *_sh.cf
files. The filename is ugly, but couldn't yet find a better one.
This means a great deal of redundancy is now removed, plus
now cross-platform combinations aren't limited by missing
shell support. New shells can now be added with much less work.
; Please test, it's possible that I made some mistakes along the way,
and haven't tested bash yet. Nor OS/2 obviously.
* config/global.cf
* config/win/global.cf
* config/linux/global.cf
* config/os2/global.cf
* config/wce/global.cf
+ Changed host CPU detection.
+ Added automatic __PLATFORM__* macro configuration in cross-build
situations.
+ Enhanced target/host CPU detection and decisions based on them.
+ Added automatic HB_BIN_COMPILE setup if not specified by user.
In such case Harbour build will automatically look for the first
available native build and use that.
+ Protected detection related screen messages with HB_BUILD_VERBOSE=yes.
* Minor sync in shell command definition order.
* INSTALL
% User set __PLATFORM__* macro tweaks not needed anymore.
* bin/postinst.cmd
* bin/postinst.bat
* bin/hb-func.sh
* addins -> addons
(hm, which is better?)
* config/dos/global.cf
* config/global.cf
* config/win/global.cf
* config/linux/global.cf
* config/os2/global.cf
* config/wce/global.cf
+ COMSPEC detection centralized. Added command.com defaulting in DOS shells.
* Some 'MK:=' changed to 'MK='. (maybe ':=' is the correct one, I just
syncing yet)
+ Added IA64 detection.
+ Not giving warning on missing HB_BIN_COMPILE on some host-target
combinations which don't require it (win32 on win64 and dos on win32).
* config/dos/global.cf
% Simplified an if construct. QUESTION added.
* config/dos/global.cf
* config/global.cf
* config/linux/global.cf
* config/os2/gcc.cf
* config/os2/global.cf
* Finished internal support for obj base dir. In next step
I'll enable it.
* config/hpux/install.cf
* config/darwin/install.cf
* config/dos/install.cf
* config/win/install.cf
* config/install.cf
* config/linux/install.cf
* config/os2/install.cf
* config/sunos/install.cf
* config/bsd/install.cf
* config/wce/install.cf
! Restored previous install rule setup, to fix hbpp combined
lib/bin install case.
; QUESTION: How to use multiple commands in a non-bash (= batch)
INSTALL_RULE variable? This would be needed to support
automatic addition of install dirs with non-bash shells.
* source/pp/Makefile
* config/rules.cf
* config/darwin/gcc.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/global.cf
* config/lib.cf
* config/win/watcom.cf
* config/bin.cf
* config/linux/watcom.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
+ Now all binaries will be created inside bin/<arch>/<comp>,
instead of the work/obj dir.
; Please test. (I didn't test cross-compilation yet, but maybe
now it's a better time to cleanup the HB_PPGEN_PATH, HB_BIN_COMPILE
settings and drop the former.
! Reverted prev cleanup.
; TOFIX: install rule for hbpp lib doesn't work after recent
change.
; TODO: Delete HB_PPGEN_PATH
* config/darwin/install.cf
* config/hpux/install.cf
* config/dos/install.cf
* config/install.cf
* config/win/install.cf
* config/linux/install.cf
* config/os2/install.cf
* config/sunos/install.cf
* config/bsd/install.cf
* config/wce/install.cf
* Little tweak to install rules to allow multiline rules
on non-bash shells.
Maybe there is another way, but couldn't find it.
; This is a step towards moving install dir creation to
GNU Make level.
* config/darwin/global.cf
* config/hpux/global.cf
* config/dos/global.cf
* config/win/global.cf
* config/linux/global.cf
* config/os2/global.cf
* config/sunos/global.cf
* config/bsd/global.cf
* config/wce/global.cf
+ Added dir creation for executables.
This is a preparation step towards generating executables
inside bin/<ARCH>/<COMP>.
* Dir creation on OS/2 shells changed a bit, I hope it works,
and I'm not sure if it was intentional to use a different
solution than DOS/NT shells, since there is only GNU Make
logic involved. Anyhow, please test.
* config/dos/global.cf
% Deleted (unused) RANLIB reference.