* harbour/source/pp/Makefile
* removed old HB_PP_RULES used for precomputed pptables
* added protection against setting possible actions executed without
HB_ARCHITECTURE and HB_COMPILER
* config/globsh.cf
+ Attempt to fix dos shell clean rules. Please test.
+ Attempt to fix os2 shell clean rules. Obviously blind attempt.
* RDP -> RD for os2 since it cannot remove full paths in OS/2 (AFAIK).
+ Added '@' to all os2 dirbase and clean commands.
* harbour/source/pp/Makefile
! set EXE_FILE - it's workaround to force bin/<arch>/<cmp> directory
creation in current make files and then cleaning it if possible
* harbour/config/rules.cf
* removed old hardcoded clean rules which deleted files not created
by build process
* harbour/config/instsh.cf
* pacified install command echo
* harbour/config/globsh.cf
! fixed new sh clean rules: [ ! -f $(LIB_DIR)/* ] causes syntax
error when more then one file exists in $(LIB_DIR) directory
* source/pp/Makefile
! Fixed to delete hbpp.tds.
* config/globsh.cf
+ Attempt to fix nt shell clean rules. Please test.
! Fixed to create bin dir even when lib targets are being
created. This hack is needed to support existing hack
inside source/pp/Makefile. If there is any possibility
to solve current hbpp lib+bin rules in some cleaner ways
IMO we should do it, but so far I couldn't figure out
how current method works.
* config/globsh.cf
! Minor fix dir creation to rules. (only create bin/lib target
dir when bin/lib target is actually specified)
% Minor cleanup to clean rules.
* make_gnu.sh
! Changed to use gmake on all sunos systems.
* utils/hbmk2/hbmk2.prg
* config/sunos/gcc.cf
! Added space after -o CC option. Required by some sunos systems.
; Thanks for valuable input and testing to Tamas Tevesz.
* config/instsh.cf
* shell/nt rule $(MD) -> $(MDP). (just for clarity)
* config/globsh.cf
* dos shell fixed again. Now I had to delete '.exe' extension
from tools to stay withing cmdline limit (for single file
copy commands)
* make_gnu.sh
* config/global.cf
+ Readded HB_GPM_MOUSE detection to starter script.
; TOFIX: This logic should be moved to GNU Make global.cf.
+ Readded HB_COMMERCE logic but now to global.cf, to
deal with Harbour-wide settings, currently this is only
HB_GPM_MOUSE. lib-specific HB_COMMERCE issues should be
handled in local Makefiles.
* config/global.cf
* Minor formatting.
* TODO added (host CPU detection on non-win platforms).
* config/hpux/gcc.cf
* config/darwin/gcc.cf
* config/global.cf
* config/sunos/gcc.cf
* config/bsd/gcc.cf
- GPM isn't available on these platforms so it's not necessary
to handle it in these make files.
* utils/hbmk2/Makefile
* utils/hbrun/Makefile
! Changed ordering of hbcpl/hbpp/hbcommon libs to this:
hbcplr, hbpp, hbcommon
(from this: hbpp, hbcplr, hbcommon
and this: hbcommon, hbpp, hbcplr)
This syncs it with existing .hbp lib order and hopefully
fixes link problems on sunos/sparc, reported by a user.
Please retest & report results.
* tests/rddtest/make_c53.bat
* Minor formatting.
- tests/run.bat
- tests/run_all.bat
- Deleted. We need some portable concept here, but my guess is
that it's been a very long time since anyonw tried to run all
test program in a row.
* harbour/source/rtl/gtcrs/Makefile
* test for HB_COMPILER=djgpp instead of HB_ARCHITECTURE=dos to
activate trick used to detect PDCURSES in DJGPP builds when
* config/globsh.cf
+ Reworked 'clean' rules. Now whole bin/obj/lib dirs should
disappear with any .tds files in them.
OS/2 shell is the only black sheep here, I've updated it,
but since I cannot try it, it may not work.
% Deleted MV variable. Not used in Harbour.
+ Added MDP variable for nt.
* bin/postinst.bat
! Fixed for MS-DOS. Again.
Here ChangeLog again causes some problems.
* config/globsh.cf
% Removed some redundancy regarding tool path forming.
+ config/dj-mkdir.exe
+ config/dj-cp.exe
+ config/dj-rm.exe
* config/instsh.cf
* config/globsh.cf
+ Solved the MS-DOS dir creation and neverending copy problem by
uploading MS-DOS versions of well working GNU tools. Also added
'rm' tool to facilitate 'clean'.
Maybe this is the ultimate solution for all these build difficulties,
we could do the same for win and OS/2, for OS/2 it's probably safe
to do as the platform isn't evolving anymore.
(placement and naming of these tools may change in future commits)
+ Added DJGPP 2.04 GNU Tools.
* Changed dos shell rules to use DOS GNU Tools.
% Deleted dos/watcom specific COMSPEC shell hack (and with it
the QUESTION).
* make_gnu.bat
- config/djg-make.exe
+ config/dj-make.exe
* Renamed to have common prefix with newly added tools.
(and fit into 8.3)
* harbour/config/dir.cf
! fixed typo in include path
* disabled parallel processing in DOS hosts - it does not work
correctly and it looks like a problem with nested directory
change in DJGPP port of GNU make.
* config/global.cf
* config/instsh.cf
* config/dirsh.cf
* config/globsh.cf
* Restored compatibility with pre-3.81 GNU Make versions.
(some user feedback features are now disabled for older versions)
* source/pp/Makefile
* config/rules.cf
* config/global.cf
+ Added new internal variable HB_HOST_BIN_DIR to avoid touching
original HB_BIN_COMPILE and in turn mess up __PLATFORM__ macro
definitions in recursive runs to GNU Make.
* config/global.cf
* config/instsh.cf
! Fixed to only set __PLATFORM__ flags if there is really a cross
build situation. This is to avoid redefinition warnings with dos
on win builds.
; QUESTION: BTW, could we modify harbour compiler to not throw
these redef warnings for internally defined macros? This problem is
still present if user is manually configuring HB_BIN_COMPILE to
a platform native executable.
! Hack added to dos shell install rule to create HB_INSTALL_PREFIX
first. Of course there is no guarantee that this envvar is set,
or that it's one level up to HB_*_INSTALL dir, or that its parent
exist, but anyway I don't know any better.
* config/instsh.cf
* config/globsh.cf
! Fixed to use plain copy command in DOS. Previous xcopy solution
returned with the dumb 'is it a file or dir?' message.
'copy' seems to overwrite existing target so no need to mess with
/Y switch, but it may be that I'm overlooking something.
* OS/2 $(CP) command changed to contain CMDPREF. This causes a little
change in .c to .yyc rule, at the same time it syncs this shell with
others. I hope it's harmless.
; TOFIX: install dir creation doesn't work for dos shells.
Anyone knows a trick to create a multilevel dir in plain DOS? (aka mkdir -p)
; TOFIX: dos/watcom does this: (should we force native harbour compiler?)
../../../../../bin/dos/watcom/harbour.exe ../../../achoice.prg -n1 -gc3 -undef:__PLATFORM__WINDOWS -D__PLATFORM__DOS
run-time error R6009
- not enough space for environment
* config/global.cf
! Switched to use HB_FLAGSEXTRA for __PLATFORM__ macros instead
of cumulating HB_USER_PRGFLAGS. It didn't work in linux/watcom
builds from win hosts. This way also HB_HOST_FLAG_ isn't needed.
* config/wce/global.cf
- Deleted commented HB_FLAGSEXTRA line.
* source/hbpcre/_hbconf.h
* Minor formatting.
* harbour/config/global.cf
! yet another fix for exporting relative paths in HB_BIN_COMPILE
* harbour/config/wce/global.cf
! disabled HB_FLAGSEXTRA=-D__PLATFORM__WINCE
-D__PLATFORM__WINCE is already added in global.ch
* harbour/config/global.cf
! fixed HB_BIN_COMPILE exporting - it should be done only for
cross builds when it's fixed location
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/make_gnu_xmingw.sh
* harbour/make_gnu_xmingwce.sh
* updated for recent modifications
* harbour/config/win/watcom.cf
* added SYS NT to link options - it's default in Windows builds but
is necessary in cross builds
* harbour/config/global.cf
* small modification in platform checking order to reduce possible
interactions with some extended host information
+ added automatic HB_BIN_COMPILE setting based on binaries located
in PATH.
! export some variables to avoid repeated setting in recursive calls
what causes some bad side effects, i.e. multiple __PLATFORM__*
macro settings in cross builds what was breaking cross compilation
and also slow down the whole build process.
* config/instsh.cf
* config/dirsh.cf
* config/globsh.cf
% Grouped non-bash (batch) initializations to reduce redundancy.
* Changed 'md' command to 'mkdir' in OS/2 and DOS, just to be
in sync, mkdir is available in all shells.
+ Added links to good multiplatform batch docs.
* utils/hbmk2/hbmk2.prg
+ Added ability to start -gui targets on OS/2.
* include/hbextern.ch
* source/lang/Makefile
+ source/lang/msguados.c
+ Added Ukrainian language module for cp1125.
(borrowed from xhb, work of Pavel Tsarenko.)
I've made a few corrections compared to xhb:
- Using the same internal name as filename for
consistency with other language modules
(UADOS instead of UA1125).
- Fixed date format which must only contain YYYY, MM, DD
regardless of the CP/language used, since it's a picture mask.
- Formatting (semicolon, spaces, deleted embedded $Id$ not
needed with SVN)
- Added to hbextern.ch.
* source/lang/msguakoi.c
* source/lang/msgua866.c
* Two corrections to internal name.
(borrowed from xhb, work of Pavel Tsarenko.)
; QUESTION: I wonder why the texts are very much different in
Harbour and xhb. Someone familiar with Ukrainian
language and encodings should check this, only one
of them can be right and all CPs should be synced
with each other the only thing being different is
the encoding.
* source/codepage/msguakoi.c
! Fixed one letter.
* source/codepage/cpuawin.c
* source/codepage/cpua1125.c
* source/codepage/cpua866.c
* source/codepage/cpuakoi.c
* Added "CYRILLIC LETTER GHE WITH UPTURN" letter.
(borrowed from xhb, work of Pavel Tsarenko.)
* make_gnu_os2.cmd
* make_gnu.bat
* make_gnu.sh
% Deleted install dir creation. Now done from GNU Make.
* make_gnu_os2.cmd
* Installs libs in lib/<arch>/<comp> by default just like
win/dos builds.
* config/instsh.cf
! Fixed missing semicolon.
* config/rules.cf
* Minor in comments.
* include/hbsetup.h
* source/common/hbprintf.c
- Removed temporary enabler logic, here testing is over.
* config/instsh.cf
+ Implemented automatic creation of install dir for all shells.
(only nt and dos were tested, os2 should be okay since it's the
same as dos.)
+ Implemented to ignore empty install dir. This can be useful in
practice although make_gnu.* starter scripts mask this feature yet.
(bash gave an error so far on empty install dirs, this is now
changed)
* doc/en-EN/Makefile
- Deleted ending slash from DOC_SUBDIR.
- 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.
* harbour/harbour.spec
! fixed RPM building after recent modification in Makefiles
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* updated for new binary files directory and HB_BIN_COMPILE meaning
* harbour/source/pp/Makefile
* harbour/config/rules.cf
! fixed binary extension used to execute hbpp and harbour,
AFAIK in current version it should be HB_HOST_BIN_EXT not EXE_EXT
* harbour/config/global.cf
! fixed host architecture autodetection:
@uname = $(shell uname -a)
does not execute command silently but creates envvar '@uname'
% added function for host detection and extended host detection
rules to work with some envvars
% test some known OS envvars before calling uname
! use 'uname -s' instead of 'uname -a' which may cause wrong host
detection when host name contains some string we are looking for
! set .exe in HB_HOST_BIN_EXT for win_amd64
* include/Makefile
+ include/hbextcdp.ch
* include/hbextern.ch
* utils/hbmk2/hbmk2.prg
+ Separated EXTERNAL HB_CODEPAGE_* lines to hbextcdp.ch.
These are commonly needed by apps.
* Using hbextcdp.ch in hbmk2.
; TODO: hbextern app needs to be updated to filter out
CODEPAGE symbols.
* source/pp/Makefile
* source/pp/hbpp.c
+ hbpp is now accepting directory for -c parameter and in this
case it will check ChangLog names in specified dir.
+ Modified make file to pass dir to hbpp so now it configures
itself automatically no matter where we move the object directory.
; Please review me.