2009-08-20 09:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
* config/global.mk
+ Added autodetection for old MSVC for WinCE versions (clarm.exe based ones).
+ Added autodetection for HB_VISUALC_VER_PRE80 value for msvcarm targets.
* INSTALL
+ Added cross-build matrix. Tweaked cross-build information.
+ Added MSVC 2005 for WinCE/ARM example.
; TODO: Create separate example section for native and cross-builds.
This commit is contained in:
@@ -17,6 +17,17 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-08-20 09:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
* config/global.mk
|
||||
+ Added autodetection for old MSVC for WinCE versions (clarm.exe based ones).
|
||||
+ Added autodetection for HB_VISUALC_VER_PRE80 value for msvcarm targets.
|
||||
|
||||
* INSTALL
|
||||
+ Added cross-build matrix. Tweaked cross-build information.
|
||||
+ Added MSVC 2005 for WinCE/ARM example.
|
||||
; TODO: Create separate example section for native and cross-builds.
|
||||
|
||||
2009-08-20 08:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* contrib/hbwin/legacy.prg
|
||||
* contrib/hbwin/legacyco.c
|
||||
|
||||
@@ -342,17 +342,52 @@ OPTIONS AVAILABLE WHEN BUILDING HARBOUR
|
||||
Cross building
|
||||
--------------
|
||||
|
||||
Point this envvar to the directory where native Harbour executables for
|
||||
your host platform can be found:
|
||||
You can build Harbour for target platforms different than host
|
||||
platform. F.e. you can create Windows build on *nix systems, Linux
|
||||
builds on Windows systems, etc. It's also possible to build targets
|
||||
for different than host CPU architectures. F.e. you can create
|
||||
Windows 64-bit build on 32-bit Windows platform, or Linux x86_64
|
||||
build on x86 hosts, or Linux MIPS build on x86 host.
|
||||
|
||||
Currently possible cross-platform scenarios, sorted by host platform:
|
||||
|
||||
on Windows hosts:
|
||||
-> wce/mingwarm
|
||||
-> wce/poccarm
|
||||
-> wce/msvcarm
|
||||
-> dos/djgpp (using DOS GNU make)
|
||||
-> dos/watcom
|
||||
-> os2/watcom
|
||||
-> linux/watcom
|
||||
on MS-DOS hosts:
|
||||
-> win/watcom (*)
|
||||
-> os2/watcom (*)
|
||||
-> linux/watcom (*)
|
||||
on OS/2 hosts:
|
||||
-> win/watcom
|
||||
-> dos/watcom (*)
|
||||
-> linux/watcom (*)
|
||||
on Linux hosts:
|
||||
-> wce/mingwarm
|
||||
-> win/mingw
|
||||
-> win/watcom
|
||||
-> dos/watcom
|
||||
-> os2/watcom
|
||||
On other *nix hosts:
|
||||
-> wce/mingwarm
|
||||
-> win/mingw
|
||||
|
||||
(*): Theoretically possible, but not heard of such build yet.
|
||||
|
||||
Point this envvar to the directory where native Harbour executables
|
||||
for your host platform can be found:
|
||||
HB_BIN_COMPILE=<HARBOUR_NATIVE_BUILD_DIR>\bin
|
||||
|
||||
You need these when building for a platform different than host
|
||||
(f.e. to create Windows builds on Linux, to create a Windows x64
|
||||
build on 32-bit Windows or to create Windows CE/ARM build on any
|
||||
operating systems). For this to work, you will need to point
|
||||
above environment variables to a native Harbour build available on
|
||||
your system. You don't need a full native build, harbour, hbpp and
|
||||
hbmk2 executables are enough for the process to succeed.
|
||||
If you leave this value empty, the make system will try to autodetect it,
|
||||
so in practice all you have to do is to create native build first, then
|
||||
create the cross-build. If you set this value manually, it may be useful
|
||||
to know that only harbour, hbpp and hbmk2 executables are required for
|
||||
a cross-build process to succeed.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
@@ -401,6 +436,14 @@ EXAMPLES
|
||||
mingw32-make %1 %2 > log.txt 2>&1
|
||||
---
|
||||
|
||||
--- MSVC 2005 WinCE/ARM (requires preceding build for native target)
|
||||
set INCLUDE=%ProgramFiles%\Microsoft Visual Studio 8\VC\ce\include;%ProgramFiles%\Windows Mobile 5.0 SDK R2\PocketPC\Include\Armv4i
|
||||
set LIB=%ProgramFiles%\Microsoft Visual Studio 8\VC\ce\lib\armv4i;%ProgramFiles%\Windows Mobile 5.0 SDK R2\PocketPC\Lib\ARMV4I
|
||||
set PATH=%ProgramFiles%\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE;%PATH%
|
||||
rem
|
||||
mingw32-make %1 %2 > log.txt 2>&1
|
||||
---
|
||||
|
||||
--- MSVC .NET 2003 (untested)
|
||||
call "%ProgramFiles%\Microsoft Visual Studio .NET 2003\VC7\vcvarsall.bat"
|
||||
rem
|
||||
|
||||
@@ -596,31 +596,37 @@ ifeq ($(HB_COMPILER),)
|
||||
ifneq ($(call find_in_path,wpp386),)
|
||||
HB_COMPILER := watcom
|
||||
else
|
||||
ifneq ($(call find_in_path,armasm),)
|
||||
ifneq ($(call find_in_path,clarm),)
|
||||
HB_COMPILER := msvcarm
|
||||
HB_ARCHITECTURE := wce
|
||||
export HB_VISUALC_VER_PRE80 := yes
|
||||
else
|
||||
ifneq ($(call find_in_path,ml64),)
|
||||
HB_COMPILER := msvc64
|
||||
ifneq ($(call find_in_path,armasm),)
|
||||
HB_COMPILER := msvcarm
|
||||
HB_ARCHITECTURE := wce
|
||||
else
|
||||
ifneq ($(call find_in_path,icl),)
|
||||
HB_COMPILER := icc
|
||||
ifneq ($(call find_in_path,ml64),)
|
||||
HB_COMPILER := msvc64
|
||||
else
|
||||
ifneq ($(call find_in_path,cl),)
|
||||
HB_COMPILER := msvc
|
||||
ifneq ($(call find_in_path,icl),)
|
||||
HB_COMPILER := icc
|
||||
else
|
||||
ifneq ($(call find_in_path,bcc32),)
|
||||
HB_COMPILER := bcc
|
||||
ifneq ($(call find_in_path,cl),)
|
||||
HB_COMPILER := msvc
|
||||
else
|
||||
ifneq ($(call find_in_path,pocc),)
|
||||
HB_COMPILER := pocc
|
||||
ifneq ($(call find_in_path,bcc32),)
|
||||
HB_COMPILER := bcc
|
||||
else
|
||||
ifneq ($(call find_in_path,xcc),)
|
||||
HB_COMPILER := xcc
|
||||
ifneq ($(call find_in_path,pocc),)
|
||||
HB_COMPILER := pocc
|
||||
else
|
||||
ifneq ($(call find_in_path,x86_64-w64-mingw32-gcc),)
|
||||
HB_COMPILER := mingw64
|
||||
HB_CCPREFIX := x86_64-w64-mingw32-
|
||||
ifneq ($(call find_in_path,xcc),)
|
||||
HB_COMPILER := xcc
|
||||
else
|
||||
ifneq ($(call find_in_path,x86_64-w64-mingw32-gcc),)
|
||||
HB_COMPILER := mingw64
|
||||
HB_CCPREFIX := x86_64-w64-mingw32-
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -899,6 +899,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
{ {|| iif( ! Empty( GetEnv( "WATCOM" ) ),;
|
||||
FindInPath( "wpp386" ),;
|
||||
NIL ) }, "watcom" },;
|
||||
{ {|| FindInPath( "clarm" ) }, "msvcarm" },;
|
||||
{ {|| FindInPath( "armasm" ) }, "msvcarm" },;
|
||||
{ {|| FindInPath( "ml64" ) }, "msvc64" },;
|
||||
{ {|| iif( FindInPath( "wpp386" ) == NIL,;
|
||||
@@ -924,7 +925,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
l_aLIBSYSMISC := { "winspool", "comctl32", "comdlg32", "shell32", "uuid", "ole32", "oleaut32", "mpr", "winmm", "mapi32", "imm32", "msimg32", "wininet" }
|
||||
CASE hbmk[ _HBMK_cARCH ] == "wce"
|
||||
aCOMPDET := { { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" ) }, "mingwarm" },;
|
||||
{ {|| FindInPath( "cl" ) }, "msvcarm" },;
|
||||
{ {|| FindInPath( "clarm" ) }, "msvcarm" },;
|
||||
{ {|| FindInPath( "armasm" ) }, "msvcarm" },;
|
||||
{ {|| FindInPath( "pocc" ) }, "poccarm" },;
|
||||
{ {|| FindInPath( "arm-mingw32ce-gcc" ) }, "mingwarm", "arm-mingw32ce-" } ,;
|
||||
{ {|| FindInPath( "arm-wince-mingw32ce-gcc" ) }, "mingwarm", "arm-wince-mingw32ce-" } }
|
||||
@@ -2558,7 +2560,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
|
||||
IF Empty( nCCompVer )
|
||||
/* Compatibility with Harbour GNU Make system */
|
||||
IF Empty( GetEnv( "HB_VISUALC_VER_PRE80" ) )
|
||||
IF Empty( GetEnv( "HB_VISUALC_VER_PRE80" ) ) .AND. !( hbmk[ _HBMK_cCOMP ] == "msvcarm" .AND. FindInPath( "clarm" ) )
|
||||
nCCompVer := 800 /* Visual Studio 2005 */
|
||||
ELSE
|
||||
nCCompVer := 710 /* Visual Studio .NET 2003 */
|
||||
|
||||
Reference in New Issue
Block a user