diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 16b6ab7721..b771fcb6dd 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,24 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-21 02:57 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * utils/hbmk2/hbmk2.prg + * Improvement in msvc/wce support to support multiple WinCE + CPUs. + ! Fixed to add '/manifest:no' only for 8.00 or upper msvcarm + compilers. + + * config/wce/msvcarm.mk + * Minor improvements. + + Added preliminary support for MIPS/SH/x86 WinCE build settings. + + * source/vm/maindllp.c + + Added MIPS and SH .dll names. + + * include/hbsetup.h + * source/common/hbver.c + * HB_CPU_SUPERH -> HB_CPU_SH + 2009-08-21 02:39 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + config/darwin/icc.mk * INSTALL diff --git a/harbour/config/wce/msvcarm.mk b/harbour/config/wce/msvcarm.mk index 5c55b71add..e06fa97d0b 100644 --- a/harbour/config/wce/msvcarm.mk +++ b/harbour/config/wce/msvcarm.mk @@ -2,24 +2,39 @@ # $Id$ # -# Work in progress. Please test. - OBJ_EXT := .obj LIB_PREF := LIB_EXT := .lib HB_DYN_COPT := -DHB_DYNLIB -ifeq ($(HB_VISUALC_VER_PRE80),) - CC := cl.exe -else - CC := clarm.exe +CC := cl.exe +ifeq ($(HB_COMPILER),msvcarm) + ifneq ($(HB_VISUALC_VER_PRE80),) + CC := clarm.exe + endif endif CC_IN := -c CC_OUT := -Fo CPPFLAGS := -I. -I$(HB_INC_COMPILE) -CFLAGS := -nologo -D_WIN32_WCE=0x501 -DCE_ARCH -DWINCE -D_WINCE -D_WINDOWS -DARM -D_ARM_ -DARMV4 -D_M_ARM -D_ARMV4I_ -Darmv4i -D__arm__ -D_UNICODE -D_UWIN -DUNDER_CE +CFLAGS := -nologo -D_WIN32_WCE=0x501 -DCE_ARCH -DWINCE -D_WINCE -D_WINDOWS -D_UNICODE -D_UWIN -DUNDER_CE + +ifeq ($(HB_COMPILER),msvcarm) + CFLAGS += -DARM -D_ARM_ -DARMV4 -D_M_ARM -D_ARMV4I_ -Darmv4i -D__arm__ +else + ifeq ($(HB_COMPILER),msvcsh) + CFLAGS += -D_M_SH -DSHx -D_SHX_ + else + ifeq ($(HB_COMPILER),msvcmips) + CFLAGS += -D_M_MRX000=4000 -DMIPS -D_MIPS_ -DMIPS_HAS_FPU + else + ifeq ($(HB_COMPILER),msvc) + CFLAGS += -D_X86_ -D_M_IX86 + endif + endif + endif +endif LDFLAGS := @@ -46,11 +61,7 @@ ifeq ($(HB_BUILD_DEBUG),yes) CFLAGS += -Zi endif -ifeq ($(HB_VISUALC_VER_PRE80),) - LD := cl.exe -else - LD := clarm.exe -endif +LD := $(CC) LD_OUT := -Fe SYSLIBS += corelibc diff --git a/harbour/include/hbsetup.h b/harbour/include/hbsetup.h index 98020cfcbd..fa6b6d08df 100644 --- a/harbour/include/hbsetup.h +++ b/harbour/include/hbsetup.h @@ -448,7 +448,7 @@ defined( __sh4__ ) || \ defined( __SH4__ ) || \ defined( _M_SH ) - #define HB_CPU_SUPERH + #define HB_CPU_SH #elif defined( __370__ ) || \ defined( __THW_370__ ) diff --git a/harbour/source/common/hbver.c b/harbour/source/common/hbver.c index 9991a76822..2ad1f97f13 100644 --- a/harbour/source/common/hbver.c +++ b/harbour/source/common/hbver.c @@ -116,7 +116,7 @@ const char * hb_verCPU( void ) return "ARM"; #elif defined( HB_CPU_MIPS ) return "MIPS"; -#elif defined( HB_CPU_SUPERH ) +#elif defined( HB_CPU_SH ) return "SuperH"; #elif defined( HB_CPU_ZARCH ) return "z/Architecture"; diff --git a/harbour/source/vm/maindllp.c b/harbour/source/vm/maindllp.c index 639c38beb2..35dbc513e2 100644 --- a/harbour/source/vm/maindllp.c +++ b/harbour/source/vm/maindllp.c @@ -73,6 +73,12 @@ #if defined( HB_OS_WIN_CE ) && defined( HB_CPU_ARM ) #define HB_DLL_NAME2 TEXT( HB_DLL_PREF HB_DLL_VER "-wce-arm" HB_DLL_EXT ) #define HB_DLL_NAMEMT2 TEXT( HB_DLL_PREF_MT HB_DLL_VER "-wce-arm" HB_DLL_EXT ) +#if defined( HB_OS_WIN_CE ) && defined( HB_CPU_MIPS ) + #define HB_DLL_NAME2 TEXT( HB_DLL_PREF HB_DLL_VER "-wce-mips" HB_DLL_EXT ) + #define HB_DLL_NAMEMT2 TEXT( HB_DLL_PREF_MT HB_DLL_VER "-wce-mips" HB_DLL_EXT ) +#if defined( HB_OS_WIN_CE ) && defined( HB_CPU_SH ) + #define HB_DLL_NAME2 TEXT( HB_DLL_PREF HB_DLL_VER "-wce-sh" HB_DLL_EXT ) + #define HB_DLL_NAMEMT2 TEXT( HB_DLL_PREF_MT HB_DLL_VER "-wce-sh" HB_DLL_EXT ) #elif defined( HB_OS_WIN_CE ) #define HB_DLL_NAME2 TEXT( HB_DLL_PREF HB_DLL_VER "-wce" HB_DLL_EXT ) #define HB_DLL_NAMEMT2 TEXT( HB_DLL_PREF_MT HB_DLL_VER "-wce" HB_DLL_EXT ) diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 4f491349cd..20d3f17e06 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -2610,7 +2610,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) cOpt_Dyn := "{FD} /dll /out:{OD} {DL} {LO} {LL} {LB} {LS}" cOpt_CompC := "-nologo -c -Gs" IF hbmk[ _HBMK_lOPTIM ] - IF hbmk[ _HBMK_cCOMP ] == "msvcarm" + IF hbmk[ _HBMK_cARCH ] == "wce" IF nCCompVer >= 800 cOpt_CompC += " -Od -Os -Gy -GS- -Gm -Zi -GR-" ELSE @@ -2633,12 +2633,18 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) AAdd( hbmk[ _HBMK_aOPTL ], "/map" ) AAdd( hbmk[ _HBMK_aOPTD ], "/map" ) ENDIF - IF hbmk[ _HBMK_cCOMP ] == "msvcarm" - AAdd( hbmk[ _HBMK_aOPTC ], "-D_WIN32_WCE=0x501 -DCE_ARCH -DWINCE -D_WINCE -D_WINDOWS -DARM -D_ARM_ -DARMV4 -D_M_ARM -D_ARMV4I_ -Darmv4i -D__arm__ -D_UNICODE -D_UWIN -DUNDER_CE" ) + IF hbmk[ _HBMK_cARCH ] == "wce" + AAdd( hbmk[ _HBMK_aOPTC ], "-D_WIN32_WCE=0x501 -DCE_ARCH -DWINCE -D_WINCE -D_WINDOWS -D_UNICODE -D_UWIN -DUNDER_CE" ) + DO CASE + CASE hbmk[ _HBMK_cCOMP ] == "msvcarm" + AAdd( hbmk[ _HBMK_aOPTC ], "-DARM -D_ARM_ -DARMV4 -D_M_ARM -D_ARMV4I_ -Darmv4i -D__arm__" ) + ENDCASE AAdd( hbmk[ _HBMK_aOPTL ], "/subsystem:windowsce" ) AAdd( hbmk[ _HBMK_aOPTL ], "/nodefaultlib:oldnames.lib" ) AAdd( hbmk[ _HBMK_aOPTL ], "/nodefaultlib:kernel32.lib" ) - AAdd( hbmk[ _HBMK_aOPTL ], "/manifest:no" ) + IF nCCompVer >= 800 + AAdd( hbmk[ _HBMK_aOPTL ], "/manifest:no" ) + ENDIF ENDIF IF hbmk[ _HBMK_lINC ] IF ! Empty( cWorkDir )