Second try of cross build using OpenWatcom 1.8
Host: Windows 32
Target: OS/2 - eCS
Harbour source code
* $Id: ChangeLog 11949 2009-07-31 11:21:30Z druzus $
2009-07-31 13:21 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
config\win\watcom.cf
config\os2\watcom.cf
Originals
environment
----------------------
@ECHO OFF
SET WATCOM=D:\WATCOM
Rem: Host
SET PATH=%WATCOM%\BINNT;%WATCOM%\BINW;%PATH%
Rem: Target
SET INCLUDE=%WATCOM%\H\OS2;%WATCOM%\H
SET EDPATH=%WATCOM%\EDDAT
Rem: Target
set HB_ARCHITECTURE=os2
set HB_COMPILER=watcom
Rem eliminate libraries which scans for local host header files
set HB_XBUILD=yes
----------------------
bin\os2\watcom
All executable files are created
Executing bin\os2\watcom\harbour.exe on Windows XPPro SP2 it show:
"This is an OS/2 32-bit executable"
bin\os2\watcom
All executable files run fine under eCS, except hbrun.exe
Example:
[D:\harbour907e\harbour\bin\os2\watcom]harbour /build
Harbour 2.0.0beta2 (Rev. 11949)
Copyright (c) 1999-2009, http://www.harbour-project.org/
Harbour Build Info
---------------------------
Version: Harbour 2.0.0beta2 (Rev. 11949)
Compiler: Open Watcom C++ 12.80.8 (32-bit)
Platform: OS/2 4.50
PCode version: 0.2
ChangeLog last entry: 2009-07-31 13:21 UTC+0200 Przemyslaw Czerpak
(druzus/at/pr
iv.onet.pl)
ChangeLog ID: ChangeLog 11949 2009-07-31 11:21:30Z druzus
Built on: Aug 8 2009 07:01:07
Build options: (C++ mode)
Language options: (Clipper 5.3) (Clipper 5.x undoc) (Xbase++) (Flagship)
---------------------------
BUT hbrun.exe fail in cross-build AND native OS/2 with message:
--------------------------------
SYS1811: The process has stopped. The software diagnostic code
(trap number) is FFFF.
--------------------------------
so is not problem of cross build
hbrun.exe build with gcc335 run fine
lib\os2\watcom\ contain 45 libraries created
So cross build Windows --> OS/2 are sucessful
David Macias
Notes:
Cross build tests
OS/2 --> Windows
Windows --> OS/2
revealed a great problem: incompatibility between make381 of Windows and
OS/2
Testing OS/2-->Windows
forced to use Przemek changes for make381-os2 in config\win\watcom.cf
and config\os2\watcom.cf
Testing Windows-->OS/2
forced to use exclude Przemek changes for make381-os2 and use
originals config\win\watcom.cf and config\os2\watcom.cf
Using Prezemk changes in config\os2\watcom.cf show incompatibility:
( translated message: unexpected i in this moment )
--------------------------------
wpp386 -zq -bt=OS2 -w3 -5r -fp5 -onaehtr -s -ei -zp4 -zt0 -oi+ -i.
-i../../../..
/../include ../../../strwild.c -fo=strwild.obj
for %i in ( *.obj ) do @echo -+%i >> __lib__.tmp
No se esperaba i en este momento.
mingw32-make[3]: *** [hbcommon.lib] Error 255
mingw32-make[3]: Leaving directory
`D:/harbour907e/harbour/source/common/obj/os2
/watcom'
mingw32-make[2]: *** [descend] Error 2
mingw32-make[2]: Leaving directory `D:/harbour907e/harbour/source/common'
mingw32-make[1]: *** [common] Error 2
mingw32-make[1]: Leaving directory `D:/harbour907e/harbour/source'
mingw32-make: *** [source] Error 2
Harbour GNU Make returned: 2
--------------------------------
and we can not have one group of watcom.cf files for native builds and
other for cross build
Przemek, Viktor, Maurilio:
As make381-os2 show problems (limits) and incompatibility with
make381-windows (and perhaps Linux), there are some way to use ANOTHER
make system in OS/2 ?
Reading docs of Watcom I found wmake.exe, based in GNU make but with
some differences specified in docs
I tried to use it to build Harbour and raised errors not described in
differences
As I remember, it fail in first Makefile because does not support
expressions like this due comma:
ifeq ($(HB_HOST_BUILD),yes)
ifeq ($(HB_HOST_BUILD),lib)
ifeq ($(HB_POSTINST),)
ifneq ($(HB_ROOTPOSTINST),)
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour