2010-07-15 20:24 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* utils/hbmk2/hbmk2.prg
    + Added experimental -cpu option. (not at the level
      of comp/plat internally, as there won't be separate
      subdir open for different cpu builds created in parallel)
    + Added some untested support for vxworks/gcc/arm.

  * utils/hbmk2/hbmk2.hbp
    + Synced with Makefile.

  * config/global.mk
    ! Fixed to default HB_CPU value to x86 for vxworks.
    + Exports HB_CPU.

  * config/vxworks/libs.mk
  * config/vxworks/gcc.mk
    + Added experimental support to select arm target by
      using HB_CPU=arm.

  * config/wce/msvcarm.mk
    ! Missed re-xmastree changed done now. (for pre GNU Make 3.81 compatibility)
This commit is contained in:
Viktor Szakats
2010-07-15 18:24:46 +00:00
parent da9890f57e
commit c0217a93ef
7 changed files with 101 additions and 21 deletions

View File

@@ -16,6 +16,28 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-07-15 20:24 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ Added experimental -cpu option. (not at the level
of comp/plat internally, as there won't be separate
subdir open for different cpu builds created in parallel)
+ Added some untested support for vxworks/gcc/arm.
* utils/hbmk2/hbmk2.hbp
+ Synced with Makefile.
* config/global.mk
! Fixed to default HB_CPU value to x86 for vxworks.
+ Exports HB_CPU.
* config/vxworks/libs.mk
* config/vxworks/gcc.mk
+ Added experimental support to select arm target by
using HB_CPU=arm.
* config/wce/msvcarm.mk
! Missed re-xmastree changed done now. (for pre GNU Make 3.81 compatibility)
2010-07-15 19:20 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbthread.h
! Hacked around collision between vxWorks headers.
@@ -51,6 +73,7 @@
- Unrecoverable error 9998: Harbour terminal (GT) initialization failure
when running hbtest.
- GPF when running hbmk2 and hbrun. (hbformat, hbi18 startup fine)
It's related to MT mode.
2010-07-15 17:34 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* external/zlib/zlib.dif

View File

@@ -547,6 +547,9 @@ ifeq ($(HB_PLATFORM),)
endif
ifneq ($(findstring vxworks,$(WIND_PLATFORM)),)
HB_PLATFORM := vxworks
ifeq ($(HB_CPU),)
HB_CPU := x86
endif
endif
ifneq ($(HB_PLATFORM),)
HB_PLAT_AUTO := (autodetected)
@@ -1211,6 +1214,8 @@ ifeq ($(HB_INIT_DONE),)
$(info ! HB_COMPILER: $(HB_COMPILER)$(HB_COMP_VER) $(HB_COMP_AUTO))
endif
export HB_CPU
ifeq ($(HB_HOST_PKGM),)
ifeq ($(HB_PLATFORM),darwin)
ifneq ($(wildcard /sw/bin/fink),)

View File

@@ -16,6 +16,20 @@ LIB_EXT := .a
HB_DYN_COPT := -DHB_DYNLIB -fpic
ifeq ($(HB_CPU),x86)
CFLAGS += -D_VX_CPU=_VX_SIMPENTIUM
ifeq ($(HB_CCPOSTFIX),)
export HB_CCPOSTFIX := pentium
endif
else
ifeq ($(HB_CPU),arm)
CFLAGS += -DARMEL -D_VX_ARMARCH7
ifeq ($(HB_CCPOSTFIX),)
export HB_CCPOSTFIX := arm
endif
endif
endif
CC := $(HB_CCACHE) $(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX)
CC_IN := -c
CC_OUT := -o
@@ -28,9 +42,7 @@ CFLAGS += -I. -I$(HB_INC_COMPILE)
CFLAGS += -I$(WIND_USR)/h -I$(WIND_USR)/h/wrn/coreip
CFLAGS += -fno-strict-aliasing
CFLAGS += -D_C99 -D_HAS_C9X
# ?
CFLAGS += -D_VX_TOOL_FAMILY=gnu -D_VX_TOOL=gnu
CFLAGS += -D_VX_CPU=_VX_SIMPENTIUM
ifneq ($(HB_BUILD_WARN),no)
CFLAGS += -W -Wall

View File

@@ -4,5 +4,12 @@
SYSLIBPATHS :=
SYSLIBPATHS_BIN := $(WIND_BASE)/target/lib/usr/lib/simpentium/SIMPENTIUM/common
SYSLIBPATHS_DYN := $(WIND_BASE)/target/lib/usr/lib/simpentium/SIMPENTIUM/common/PIC
ifeq ($(HB_CPU),x86)
SYSLIBPATHS_BIN := $(WIND_BASE)/target/lib/usr/lib/simpentium/SIMPENTIUM/common
SYSLIBPATHS_DYN := $(WIND_BASE)/target/lib/usr/lib/simpentium/SIMPENTIUM/common/PIC
else
ifeq ($(HB_CPU),arm)
SYSLIBPATHS_BIN := $(WIND_BASE)/target/lib/usr/lib/arm/ARMARCH7/common
SYSLIBPATHS_DYN := $(WIND_BASE)/target/lib/usr/lib/arm/ARMARCH7/common/PIC
endif
endif

View File

@@ -23,13 +23,19 @@ CFLAGS += -nologo
ifeq ($(HB_COMPILER),msvcarm)
CFLAGS += -D_M_ARM -DARM -D_ARM_
else ifeq ($(HB_COMPILER),msvcsh)
else
ifeq ($(HB_COMPILER),msvcsh)
CFLAGS += -D_M_SH -DSHx
else ifeq ($(HB_COMPILER),msvcmips)
else
ifeq ($(HB_COMPILER),msvcmips)
CFLAGS += -D_M_MRX000=4000 -DMIPS -D_MIPS_
else ifeq ($(HB_COMPILER),msvc)
else
ifeq ($(HB_COMPILER),msvc)
CFLAGS += -D_M_IX86 -D_X86_
endif
endif
endif
endif
# MSVS 2005 SP1 also supports it, but we only enable it for 2008 and upper.
ifeq ($(filter $(HB_COMPILER_VER),1200 1300 1310 1400),)

View File

@@ -8,6 +8,9 @@
-ldflag={allmsvc}-dynamicbase
-ldflag={allmsvc}-fixed:no
{HB_HAS_GPM}-prgflag=-DHB_HAS_GPM
{HB_HAS_WATT}-prgflag=-DHB_HAS_WATT
-nulrdd
-mt
hbmk2.prg

View File

@@ -145,6 +145,7 @@ REQUEST hbmk_KEYW
#define _TARG_PLAT 1
#define _TARG_COMP 2
#define _TARG_CPU 3
#define _PAR_cParam 1
#define _PAR_cFileName 2
@@ -904,6 +905,9 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
IF ! Empty( GetEnv( "HB_COMPILER" ) )
cEnv += " -compiler=" + GetEnv( "HB_COMPILER" )
ENDIF
IF ! Empty( GetEnv( "HB_CPU" ) )
cEnv += " -cpu=" + GetEnv( "HB_CPU" )
ENDIF
cEnv := AllTrim( cEnv )
IF ! Empty( cEnv )
@@ -921,11 +925,12 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
DO CASE
CASE cParamL == "-quiet" ; hbmk[ _HBMK_lQuiet ] := .T. ; hbmk[ _HBMK_lInfo ] := .F.
CASE cParamL == "-quiet-" ; hbmk[ _HBMK_lQuiet ] := .F.
CASE Left( cParamL, 6 ) == "-comp=" ; ParseCOMPPLAT( hbmk, SubStr( cParam, 7 ), _TARG_COMP )
CASE Left( cParamL, 10 ) == "-compiler=" ; ParseCOMPPLAT( hbmk, SubStr( cParam, 11 ), _TARG_COMP )
CASE Left( cParamL, 6 ) == "-plat=" ; ParseCOMPPLAT( hbmk, SubStr( cParam, 7 ), _TARG_PLAT )
CASE Left( cParamL, 10 ) == "-platform=" ; ParseCOMPPLAT( hbmk, SubStr( cParam, 11 ), _TARG_PLAT )
CASE Left( cParamL, 6 ) == "-arch=" ; ParseCOMPPLAT( hbmk, SubStr( cParam, 7 ), _TARG_PLAT ) /* Compatibility */
CASE Left( cParamL, 6 ) == "-comp=" ; ParseCOMPPLATCPU( hbmk, SubStr( cParam, 7 ), _TARG_COMP )
CASE Left( cParamL, 10 ) == "-compiler=" ; ParseCOMPPLATCPU( hbmk, SubStr( cParam, 11 ), _TARG_COMP )
CASE Left( cParamL, 6 ) == "-plat=" ; ParseCOMPPLATCPU( hbmk, SubStr( cParam, 7 ), _TARG_PLAT )
CASE Left( cParamL, 10 ) == "-platform=" ; ParseCOMPPLATCPU( hbmk, SubStr( cParam, 11 ), _TARG_PLAT )
CASE Left( cParamL, 6 ) == "-arch=" ; ParseCOMPPLATCPU( hbmk, SubStr( cParam, 7 ), _TARG_PLAT ) /* Compatibility */
CASE Left( cParamL, 5 ) == "-cpu=" ; ParseCOMPPLATCPU( hbmk, SubStr( cParam, 6 ), _TARG_CPU )
CASE Left( cParamL, 7 ) == "-build=" ; hbmk[ _HBMK_cBUILD ] := SubStr( cParam, 8 )
CASE Left( cParamL, 6 ) == "-build" ; hbmk[ _HBMK_lStopAfterHarbour ] := .T.
CASE Left( cParamL, 6 ) == "-lang=" ; hbmk[ _HBMK_cUILNG ] := SubStr( cParam, 7 ) ; SetUILang( hbmk )
@@ -1494,6 +1499,10 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
hbmk[ _HBMK_aINCPATH ] := {}
hbmk[ _HBMK_aLIBPATH ] := {}
IF Empty( hbmk[ _HBMK_cCPU ] )
hbmk[ _HBMK_cCPU ] := hbmk_CPU( hbmk )
ENDIF
/* Tweaks to compiler environments */
DO CASE
@@ -1693,6 +1702,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
Left( cParamL, 6 ) == "-plat=" .OR. ;
Left( cParamL, 10 ) == "-platform=" .OR. ;
Left( cParamL, 6 ) == "-arch=" .OR. ; /* Compatibility */
Left( cParamL, 5 ) == "-cpu=" .OR. ;
Left( cParamL, 7 ) == "-build=" .OR. ;
Left( cParamL, 6 ) == "-lang=" .OR. ;
Left( cParamL, 7 ) == "-width=" .OR. ;
@@ -2745,10 +2755,21 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
AAdd( hbmk[ _HBMK_aOPTC ], "-D_HAS_C9X" )
AAdd( hbmk[ _HBMK_aINCPATH ], PathSepToSelf( GetEnv( "WIND_USR" ) + "/h" ) )
AAdd( hbmk[ _HBMK_aINCPATH ], PathSepToSelf( GetEnv( "WIND_USR" ) + "/h/wrn/coreip" ) )
IF hbmk[ _HBMK_lCreateDyn ]
AAdd( hbmk[ _HBMK_aLIBPATH ], PathSepToSelf( GetEnv( "WIND_BASE" ) + "/target/lib/usr/lib/simpentium/SIMPENTIUM/common/PIC" ) )
ELSE
AAdd( hbmk[ _HBMK_aLIBPATH ], PathSepToSelf( GetEnv( "WIND_BASE" ) + "/target/lib/usr/lib/simpentium/SIMPENTIUM/common" ) )
IF hbmk[ _HBMK_cCPU ] == "arm"
AAdd( hbmk[ _HBMK_aOPTC ], "-DARMEL" )
ENDIF
SWITCH hbmk[ _HBMK_cCPU ]
CASE "x86" ; tmp := "simpentium/SIMPENTIUM" ; EXIT
CASE "arm" ; tmp := "arm/ARMARCH7" ; EXIT
OTHERWISE
tmp := NIL
ENDSWITCH
IF tmp != NIL
IF hbmk[ _HBMK_lCreateDyn ]
AAdd( hbmk[ _HBMK_aLIBPATH ], PathSepToSelf( GetEnv( "WIND_BASE" ) + "/target/lib/usr/lib/" + tmp + "/common/PIC" ) )
ELSE
AAdd( hbmk[ _HBMK_aLIBPATH ], PathSepToSelf( GetEnv( "WIND_BASE" ) + "/target/lib/usr/lib/" + tmp + "/common" ) )
ENDIF
ENDIF
ENDIF
cOpt_CompC += " {FC}"
@@ -8521,7 +8542,7 @@ STATIC FUNCTION MacroProc( hbmk, cString, cFileName, cMacroPrefix )
CASE "HB_BUILD"
cMacro := hbmk[ _HBMK_cBUILD ] ; EXIT
CASE "HB_CPU"
cMacro := hbmk_CPU( hbmk ) ; EXIT
cMacro := hbmk[ _HBMK_cCPU ] ; EXIT
CASE "HB_WORK"
cMacro := _WORKDIR_BASE_ ; EXIT
CASE "HB_WORKDYNSUB"
@@ -9725,7 +9746,7 @@ STATIC FUNCTION hbmk_CPU( hbmk )
hbmk[ _HBMK_cCOMP ] $ "mingw|cygwin|msvc|pocc|watcom|bcc|xcc" .OR. ;
( hbmk[ _HBMK_cPLAT ] == "win" .AND. hbmk[ _HBMK_cCOMP ] == "icc" )
RETURN "x86"
CASE hbmk[ _HBMK_cCOMP ] $ "gcc|icc|clang|sunpro"
CASE hbmk[ _HBMK_cCOMP ] $ "gcc|icc|clang|sunpro|diab"
/* TOFIX: This isn't necessarily correct, since these inherit the
default CPU architecture from OS default, by and large,
and targets can be overridden using user options. */
@@ -9795,7 +9816,7 @@ FUNCTION hbmk_KEYW( hbmk, cKeyword, cValue )
"|mingw|mingw64|mingwarm|cygwin|bcc|watcom" + ;
"|gcc|gccomf|djgpp" + ;
"|hblib|hbdyn|hbdynvm|hbimplib|hbexe" + ;
"|icc|iccia64|clang|open64|sunpro" + ;
"|icc|iccia64|clang|open64|sunpro|diab" + ;
"|x86|x86_64|ia64|arm|mips|sh" )
tmp := GetEnv( cKeyword )
IF cValue != NIL
@@ -9811,7 +9832,7 @@ FUNCTION hbmk_KEYW( hbmk, cKeyword, cValue )
RETURN .F.
STATIC PROCEDURE ParseCOMPPLAT( hbmk, cString, nMainTarget )
STATIC PROCEDURE ParseCOMPPLATCPU( hbmk, cString, nMainTarget )
LOCAL aToken := hb_ATokens( Lower( cString ), "/", .T., .T. )
LOCAL cToken
@@ -9820,6 +9841,7 @@ STATIC PROCEDURE ParseCOMPPLAT( hbmk, cString, nMainTarget )
SWITCH nMainTarget
CASE _TARG_PLAT ; hbmk[ _HBMK_cPLAT ] := AllTrim( cString ) ; EXIT
CASE _TARG_COMP ; hbmk[ _HBMK_cCOMP ] := AllTrim( cString ) ; EXIT
CASE _TARG_CPU ; hbmk[ _HBMK_cCPU ] := AllTrim( cString ) ; EXIT
ENDSWITCH
ENDIF
ELSE
@@ -9828,8 +9850,9 @@ STATIC PROCEDURE ParseCOMPPLAT( hbmk, cString, nMainTarget )
SWITCH cToken:__enumIndex()
CASE 1 ; hbmk[ _HBMK_cPLAT ] := AllTrim( cToken ) ; EXIT
CASE 2 ; hbmk[ _HBMK_cCOMP ] := AllTrim( cToken ) ; EXIT
CASE 3 ; hbmk[ _HBMK_cCPU ] := AllTrim( cToken ) ; EXIT
ENDSWITCH
IF cToken:__enumIndex() > 2
IF cToken:__enumIndex() > 3
EXIT
ENDIF
ENDIF
@@ -10479,6 +10502,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong )
NIL,;
{ "-plat[form]=<plat>" , I_( "select target platform." ) },;
{ "-comp[iler]=<comp>" , I_( "select C compiler.\nSpecial value:\n - bld: use original build settings (default on *nix)" ) },;
{ "-cpu=<cpu>" , I_( "select target CPU. (experimental)" ) },;
{ "-build=<name>" , I_( "use a specific build name" ) },;
{ "-lang=<lang>" , I_( "override default language. Similar to HB_LANG envvar." ) },;
{ "-width=<n>" , I_( "set output width to <n> characters (0=unlimited)." ) },;