2009-03-21 10:17 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

* tests/bnchmark/bnch_win.bat
    + Added option to override benchmark program name, so now
      it can be used with customized speedtst versions or other
      benchmark apps.
    + Added HB_CMP_FLAGS envvar to define common compilation flags.
    + Now echoing all benchmark settings to output.

  * config/win/icc.cf
    + Added -nologo.
    * Changed -W4 to -W3, as -W3 is really verbose in this compiler.

  * INSTALL
  * bin/hb-mkdyn.bat
  * utils/hbmk2/hbmk2.prg
  + config/win/iccia64.cf
    + Added Intel(R) C++ Compiler IA64 support.
      All Harbour libs (including contribs) compiled successfully,
      but I couldn't try linking any executables.
    ; TODO: Add processor information to appropriate places into
            Harbour. Currently we have only bit width and endianness,
            but no actual CPU family info. CPU instruction families
            Harbour can currently be built on out of the box:
            x86, amd64, IA64, PPC, PPC64, ARM.
This commit is contained in:
Viktor Szakats
2009-03-21 09:23:32 +00:00
parent 31b813cd7e
commit b8451d6e7c
7 changed files with 89 additions and 43 deletions

View File

@@ -8,6 +8,31 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-03-21 10:17 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* tests/bnchmark/bnch_win.bat
+ Added option to override benchmark program name, so now
it can be used with customized speedtst versions or other
benchmark apps.
+ Added HB_CMP_FLAGS envvar to define common compilation flags.
+ Now echoing all benchmark settings to output.
* config/win/icc.cf
+ Added -nologo.
* Changed -W4 to -W3, as -W3 is really verbose in this compiler.
* INSTALL
* bin/hb-mkdyn.bat
* utils/hbmk2/hbmk2.prg
+ config/win/iccia64.cf
+ Added Intel(R) C++ Compiler IA64 support.
All Harbour libs (including contribs) compiled successfully,
but I couldn't try linking any executables.
; TODO: Add processor information to appropriate places into
Harbour. Currently we have only bit width and endianness,
but no actual CPU family info. CPU instruction families
Harbour can currently be built on out of the box:
x86, amd64, IA64, PPC, PPC64, ARM.
2009-03-20 17:33 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* tests/bnchmark
+ tests/bnchmark/bnch_win.bat

View File

@@ -192,6 +192,7 @@ SUPPORTED C COMPILERS UNDER DIFFERENT PLATFORMS
xcc - Pelles C for xhb
owatcom - Open Watcom C++
icc - Intel(R) C/C++
iccia64 - Intel(R) C/C++ IA64
bcc - Borland/CodeGear C++ 4.x and above
cygwin - Cygwin GNU C

View File

@@ -23,6 +23,7 @@ set HB_DLL_LIBS_ST=hbvm
set HB_DLL_LIBS_MT=hbvmmt
if "%HB_COMPILER%" == "icc" goto DO_MSVC
if "%HB_COMPILER%" == "iccia64" goto DO_MSVC
if "%HB_COMPILER%" == "msvc" goto DO_MSVC
if "%HB_COMPILER%" == "msvc64" goto DO_MSVC
if "%HB_COMPILER%" == "msvcia64" goto DO_MSVC
@@ -40,10 +41,12 @@ echo Making .dlls for %HB_COMPILER%...
md _dll
cd _dll
if "%HB_COMPILER%" == "icc" set _BIN_LIB=xilib
if not "%HB_COMPILER%" == "icc" set _BIN_LIB=lib
if "%HB_COMPILER%" == "icc" set _BIN_LINK=xilink
if not "%HB_COMPILER%" == "icc" set _BIN_LINK=link
set _BIN_LIB=lib
set _BIN_LINK=link
if "%HB_COMPILER%" == "icc" set _BIN_LIB=xilib
if "%HB_COMPILER%" == "icc" set _BIN_LINK=xilink
if "%HB_COMPILER%" == "iccia64" set _BIN_LIB=xilib
if "%HB_COMPILER%" == "iccia64" set _BIN_LINK=xilink
rem ; Extract neutral objects
echo.> _hboneut.txt
@@ -103,6 +106,8 @@ cd ..
if "%HB_COMPILER%" == "icc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "icc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "iccia64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-ia64
if "%HB_COMPILER%" == "iccia64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-ia64
if "%HB_COMPILER%" == "msvc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "msvc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_COMPILER%" == "msvc64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-x64

View File

@@ -15,8 +15,8 @@ LIB_EXT = .lib
CC = icl.exe
CC_IN = -c
CC_OUT = -Fo
CPPFLAGS = -I. -I$(HB_INC_COMPILE)
CFLAGS = -W4 -Gs
CPPFLAGS = -nologo -I. -I$(HB_INC_COMPILE)
CFLAGS = -W3 -Gs
ifneq ($(HB_BUILD_OPTIM),no)
# maximum optimizations

View File

@@ -0,0 +1,5 @@
#
# $Id$
#
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/icc.cf

View File

@@ -13,10 +13,12 @@
@rem - Harbour binary build
@rem - Harbour binary build \bin dir as current dir
@rem - This batch copied into current dir
@rem - speedtst.prg copied into current dir
@rem - envvars HB_CMP_FLAGS_[1-8] set to speedtst build flags
@rem - envvars HB_RUN_FLAGS_[1-8] set to speedtst run flags (optional)
@rem - envvar HB_RUN_FLAGS set to common speedtst run flags (optional)
@rem - envvar HB_BENCH_PRG set to benchmark program (default: speedtst)
@rem - benchmark program copied into current dir
@rem - envvars HB_CMP_FLAGS_[1-8] set to benchmark program build flags
@rem - envvar HB_CMP_FLAGS set to common benchmark program build flags (optional)
@rem - envvars HB_RUN_FLAGS_[1-8] set to benchmark program run flags (optional)
@rem - envvar HB_RUN_FLAGS set to common benchmark program run flags (optional)
@rem - envvar HB_BENCH_RUNS set to number of times tests are run (default: 3)
@rem - C compiler configured (just like you'd do for hbmk2)
@rem - Running it using this command:
@@ -25,6 +27,18 @@
@if not "%OS%" == "Windows_NT" goto END
@rem ; Default settings
@if "%HB_BENCH_PRG%" == "" @set HB_BENCH_PRG=speedtst
@if "%HB_BENCH_RUNS%" == "" @set HB_BENCH_RUNS=3
@if "%HB_CMP_FLAGS_1%" == "" @set HB_CMP_FLAGS_1=-st
@if "%HB_CMP_FLAGS_2%" == "" @set HB_CMP_FLAGS_2=-mt
@rem ; Benchmark information
@set HB_BENCH_PRG
@set HB_BENCH_RUNS
@set HB_CMP_FLAGS
@set HB_RUN_FLAGS
@echo off
echo.>_hbhwinfo.js
@@ -67,30 +81,25 @@ cscript //nologo //E:javascript _hbhwinfo.js
harbour /build
@rem ; Pre-make cleanup
if exist speedtst_*.exe del speedtst_*.exe
if exist %HB_BENCH_PRG%_*.exe del %HB_BENCH_PRG%_*.exe
@rem ; Default test flags
if "%HB_CMP_FLAGS_1%" == "" set HB_CMP_FLAGS_1=-st
if "%HB_CMP_FLAGS_2%" == "" set HB_CMP_FLAGS_2=-mt
if "%HB_BENCH_RUNS%" == "" set HB_BENCH_RUNS=3
@rem ; Creating benchmark executables
if not "%HB_CMP_FLAGS_1%" == "" hbmk2 %HB_BENCH_PRG%.prg -q0 -trace -o%HB_BENCH_PRG%_1.exe %HB_CMP_FLAGS% %HB_CMP_FLAGS_1%
if not "%HB_CMP_FLAGS_2%" == "" hbmk2 %HB_BENCH_PRG%.prg -q0 -trace -o%HB_BENCH_PRG%_2.exe %HB_CMP_FLAGS% %HB_CMP_FLAGS_2%
if not "%HB_CMP_FLAGS_3%" == "" hbmk2 %HB_BENCH_PRG%.prg -q0 -trace -o%HB_BENCH_PRG%_3.exe %HB_CMP_FLAGS% %HB_CMP_FLAGS_3%
if not "%HB_CMP_FLAGS_4%" == "" hbmk2 %HB_BENCH_PRG%.prg -q0 -trace -o%HB_BENCH_PRG%_4.exe %HB_CMP_FLAGS% %HB_CMP_FLAGS_4%
if not "%HB_CMP_FLAGS_5%" == "" hbmk2 %HB_BENCH_PRG%.prg -q0 -trace -o%HB_BENCH_PRG%_5.exe %HB_CMP_FLAGS% %HB_CMP_FLAGS_5%
if not "%HB_CMP_FLAGS_6%" == "" hbmk2 %HB_BENCH_PRG%.prg -q0 -trace -o%HB_BENCH_PRG%_6.exe %HB_CMP_FLAGS% %HB_CMP_FLAGS_6%
if not "%HB_CMP_FLAGS_7%" == "" hbmk2 %HB_BENCH_PRG%.prg -q0 -trace -o%HB_BENCH_PRG%_7.exe %HB_CMP_FLAGS% %HB_CMP_FLAGS_7%
if not "%HB_CMP_FLAGS_8%" == "" hbmk2 %HB_BENCH_PRG%.prg -q0 -trace -o%HB_BENCH_PRG%_8.exe %HB_CMP_FLAGS% %HB_CMP_FLAGS_8%
@rem ; Creating speedtst executables
if not "%HB_CMP_FLAGS_1%" == "" hbmk2 speedtst.prg -q0 -trace -ospeedtst_1.exe %HB_CMP_FLAGS_1%
if not "%HB_CMP_FLAGS_2%" == "" hbmk2 speedtst.prg -q0 -trace -ospeedtst_2.exe %HB_CMP_FLAGS_2%
if not "%HB_CMP_FLAGS_3%" == "" hbmk2 speedtst.prg -q0 -trace -ospeedtst_3.exe %HB_CMP_FLAGS_3%
if not "%HB_CMP_FLAGS_4%" == "" hbmk2 speedtst.prg -q0 -trace -ospeedtst_4.exe %HB_CMP_FLAGS_4%
if not "%HB_CMP_FLAGS_5%" == "" hbmk2 speedtst.prg -q0 -trace -ospeedtst_5.exe %HB_CMP_FLAGS_5%
if not "%HB_CMP_FLAGS_6%" == "" hbmk2 speedtst.prg -q0 -trace -ospeedtst_6.exe %HB_CMP_FLAGS_6%
if not "%HB_CMP_FLAGS_7%" == "" hbmk2 speedtst.prg -q0 -trace -ospeedtst_7.exe %HB_CMP_FLAGS_7%
if not "%HB_CMP_FLAGS_8%" == "" hbmk2 speedtst.prg -q0 -trace -ospeedtst_8.exe %HB_CMP_FLAGS_8%
@rem ; speedtst executable information
dir speedtst_*.exe speedtst.prg
@rem ; benchmark executable information
dir %HB_BENCH_PRG%_*.exe %HB_BENCH_PRG%.prg
@rem ; pre-OS state information
tasklist
@rem ; Running speedtst executables in multiple runs
@rem ; Running benchmark executables in multiple runs
@for /l %%r in (1,1,%HB_BENCH_RUNS%) do @call :RUN_ALL %%r
@rem ; post-OS state information
@@ -102,14 +111,14 @@ tasklist
@echo.
@echo Run #%1
if exist speedtst_1.exe speedtst_1.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_1%
if exist speedtst_2.exe speedtst_2.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_2%
if exist speedtst_3.exe speedtst_3.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_3%
if exist speedtst_4.exe speedtst_4.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_4%
if exist speedtst_5.exe speedtst_5.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_5%
if exist speedtst_6.exe speedtst_6.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_6%
if exist speedtst_7.exe speedtst_7.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_7%
if exist speedtst_8.exe speedtst_8.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_8%
if exist %HB_BENCH_PRG%_1.exe %HB_BENCH_PRG%_1.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_1%
if exist %HB_BENCH_PRG%_2.exe %HB_BENCH_PRG%_2.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_2%
if exist %HB_BENCH_PRG%_3.exe %HB_BENCH_PRG%_3.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_3%
if exist %HB_BENCH_PRG%_4.exe %HB_BENCH_PRG%_4.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_4%
if exist %HB_BENCH_PRG%_5.exe %HB_BENCH_PRG%_5.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_5%
if exist %HB_BENCH_PRG%_6.exe %HB_BENCH_PRG%_6.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_6%
if exist %HB_BENCH_PRG%_7.exe %HB_BENCH_PRG%_7.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_7%
if exist %HB_BENCH_PRG%_8.exe %HB_BENCH_PRG%_8.exe %HB_RUN_FLAGS% %HB_RUN_FLAGS_8%
@goto END
:END

View File

@@ -496,11 +496,12 @@ FUNCTION Main( ... )
{ {|| FindInPath( "bcc32" ) != NIL }, "bcc" },;
{ {|| FindInPath( "porc64" ) != NIL }, "pocc64" },;
{ {|| FindInPath( "pocc" ) != NIL }, "pocc" },;
{ {|| ( tmp := FindInPath( "icl" ) ) != NIL .AND. "itanium" $ Lower( tmp ) }, "iccia64" },;
{ {|| FindInPath( "icl" ) != NIL }, "icc" },;
{ {|| FindInPath( "cygstart" ) != NIL }, "cygwin" },;
{ {|| FindInPath( "xcc" ) != NIL }, "xcc" } }
aCOMPSUP := { "mingw", "msvc", "bcc", "owatcom", "icc", "pocc", "xcc", "cygwin",;
"msvc64", "msvcia64", "pocc64",;
"msvc64", "msvcia64", "iccia64", "pocc64",;
"mingwce", "msvcce", "poccce" }
cBin_CompPRG := "harbour.exe"
s_aLIBHBGT := { "gtwin", "gtwvt", "gtgui" }
@@ -1605,7 +1606,7 @@ FUNCTION Main( ... )
AAdd( s_aLIBFM, iif( s_lMT, "hbfmmt", "hbfm" ) )
ENDIF
CASE t_cARCH == "win" .AND. t_cCOMP $ "msvc|msvc64|msvcia64|icc"
CASE t_cARCH == "win" .AND. t_cCOMP $ "msvc|msvc64|msvcia64|icc|iccia64"
IF s_lDEBUG
AAdd( s_aOPTC, "-MTd -Zi" )
ENDIF
@@ -1618,7 +1619,7 @@ FUNCTION Main( ... )
cLibExt := ".lib"
cObjExt := ".obj"
cLibLibExt := cLibExt
IF t_cCOMP == "icc"
IF t_cCOMP $ "icc|iccia64"
cBin_Lib := "xilib.exe"
cBin_CompC := "icl.exe"
cBin_Dyn := "xilink.exe"
@@ -1661,14 +1662,14 @@ FUNCTION Main( ... )
"harbour-" + cDL_Version_Alter + "-x64" ),;
"hbmainstd",;
"hbmainwin" }
CASE t_cCOMP == "msvcia64"
CASE t_cCOMP $ "msvcia64|iccia64"
s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter + "-ia64",;
"harbour-" + cDL_Version_Alter + "-ia64" ),;
"hbmainstd",;
"hbmainwin" }
ENDCASE
IF !( t_cCOMP == "icc" )
IF !( t_cCOMP $ "icc|iccia64" )
cBin_Res := "rc.exe"
cOpt_Res := "/r {LR}"
cResExt := ".res"
@@ -1781,7 +1782,7 @@ FUNCTION Main( ... )
DO CASE
CASE ! s_lSHARED .OR. ;
!( t_cARCH == "win" ) .OR. ;
t_cCOMP $ "msvc|msvc64|msvcia64|icc"
t_cCOMP $ "msvc|msvc64|msvcia64|icc|iccia64"
/* NOTE: MSVC gives the warning:
"LNK4217: locally defined symbol ... imported in function ..."
@@ -3227,7 +3228,7 @@ STATIC PROCEDURE ShowHelp( lLong )
" linux : gcc, gpp, owatcom, icc, mingw, mingwce" ,;
" darwin : gcc" ,;
" win : mingw, msvc, bcc, owatcom, icc, pocc, cygwin," ,;
" mingwce, msvc64, msvcia64, msvcce, pocc64, poccce, xcc" ,;
" mingwce, msvc64, msvcia64, msvcce, iccia64, pocc64, poccce, xcc" ,;
" os2 : gcc, owatcom" ,;
" dos : djgpp, owatcom" ,;
" bsd, hpux, sunos: gcc" }