2009-04-11 13:25 UTC+0200 Viktor Szakats (harbour.01 syenar hu)

* include/hbapi.h
  * include/hbver.ch
  * source/common/hbver.c
  * source/rtl/version.c
    + Added target CPU detection.
      c: hb_verCPU() -> "x86"
      prg: hb_version( HB_VERSION_CPU ) -> "x86"
    ; TODO: Host CPU detection.
  
  * contrib/rddsql/sddfb/Makefile
    + Enabled for msvc64
This commit is contained in:
Viktor Szakats
2009-04-11 11:34:06 +00:00
parent d7af0eb431
commit 84d6d15bd6
6 changed files with 145 additions and 5 deletions

View File

@@ -8,6 +8,19 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-04-11 13:25 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbapi.h
* include/hbver.ch
* source/common/hbver.c
* source/rtl/version.c
+ Added target CPU detection.
c: hb_verCPU() -> "x86"
prg: hb_version( HB_VERSION_CPU ) -> "x86"
; TODO: Host CPU detection.
* contrib/rddsql/sddfb/Makefile
+ Enabled for msvc64
2009-04-11 13:04 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
* harbour/source/vm/macro.c

View File

@@ -7,7 +7,6 @@ ROOT = ../../../
LIBNAME=sddfb
ifneq ($(HB_COMPILER),pocc64)
ifneq ($(HB_COMPILER),msvc64)
ifeq ($(HB_INC_FIREBIRD),)
ifeq ($(HB_XBUILD),)
@@ -31,6 +30,3 @@ endif
else
include $(TOP)$(ROOT)config/none.cf
endif
else
include $(TOP)$(ROOT)config/none.cf
endif

View File

@@ -1063,6 +1063,7 @@ extern void * hb_i18n_alloc( void * cargo );
extern HB_EXPORT void hb_vmSetLinkedMain( const char * szMain );
/* misc */
extern HB_EXPORT const char * hb_verCPU( void ); /* retrieves a constant string with CPU architecture */
extern HB_EXPORT char * hb_verPlatform( void ); /* retrieves a newly allocated buffer containing platform version */
extern HB_EXPORT char * hb_verCompiler( void ); /* retrieves a newly allocated buffer containing compiler version */
extern HB_EXPORT char * hb_verHarbour( void ); /* retrieves a newly allocated buffer containing harbour version */

View File

@@ -71,7 +71,7 @@
#define HB_VERSION_BUILD_DATE 12
#define HB_VERSION_BUILD_TIME 13
#define HB_VERSION_BUILD_ARCH 22
#define HB_VERSION_BUILD_COMP 23 /* Last. Please continue from here. */
#define HB_VERSION_BUILD_COMP 23
#define HB_VERSION_FLAG_PRG 14
#define HB_VERSION_FLAG_C 15
#define HB_VERSION_FLAG_LINKER 16
@@ -80,6 +80,7 @@
#define HB_VERSION_MT 19
#define HB_VERSION_UNIX_COMPAT 20
#define HB_VERSION_PLATFORM 21
#define HB_VERSION_CPU 24 /* Last. Please continue from here. */
/* hb_version( HB_VERSION_ENDIANNESS ) return values. */
#define HB_VERSION_ENDIAN_LITTLE 1

View File

@@ -62,6 +62,7 @@
* hb_verCompiler() (support for determining some compiler version/revision)
*
* Copyright 2000-2009 Viktor Szakats <viktor.szakats@syenar.hu>
* hb_verCPU()
* hb_verPlatform() (support for detecting Windows NT on DOS)
* hb_verPlatform() (rearrangment and cleanup)
* hb_verPlatform() (Wine detection and some more)
@@ -93,6 +94,130 @@
#endif
/* Partially based on:
http://predef.sourceforge.net/prearch.html
http://poshlib.hookatooka.com/poshlib/trac.cgi/browser/posh.h
*/
#if defined(__alpha__) || \
defined(__alpha) || \
defined(alpha) || \
defined(_M_ALPHA)
#define HB_CPU_STR "Alpha"
#elif defined(__amd64__) || \
defined(__amd64) || \
defined(__x86_64__) || \
defined(__x86_64) || \
defined(_M_AMD64) || \
defined(_M_X64) || \
defined(__MINGW64__)
#define HB_CPU_STR "x86-64"
#elif defined(__arm__) || \
defined(ARM) || \
defined(_ARM) || \
defined(_M_ARM)
#define HB_CPU_STR "ARM"
#elif defined(__hppa__) || \
defined(__hppa) || \
defined(hppa)
#define HB_CPU_STR "PA-RISC"
#elif defined(i386) || \
defined(__i386__) || \
defined(__i386) || \
defined(_M_IX86) || \
defined(__X86__) || \
defined(_X86_) || \
defined(__I86__) || \
defined(__THW_INTEL__) || \
defined(__INTEL__)
#define HB_CPU_STR "x86"
#elif defined(__ia64__) || \
defined(__ia64) || \
defined(_IA64) || \
defined(__IA64__) || \
defined(_M_IA64)
#define HB_CPU_STR "IA-64"
#elif defined(__m68k__) || \
defined(M68000)
#define HB_CPU_STR "m68k"
#elif defined(__mips__) || \
defined(__mips) || \
defined(__MIPS__) || \
defined(mips) || \
defined(_MIPS) || \
defined(__MIPS__) || \
defined(_M_MRX000) || \
defined(_M_MIPS)
#define HB_CPU_STR "MIPS"
#elif defined(__powerpc64__)
#define HB_CPU_STR "PPC64"
#elif defined(__powerpc__) || \
defined(__powerpc) || \
defined(__POWERPC__) || \
defined(__ppc__) || \
defined(__PPC__) || \
defined(_ARCH_PPC) || \
defined(_M_MPPC) || \
defined(_M_PPC)
#define HB_CPU_STR "PPC"
#elif defined(__THW_RS6000) || \
defined(_IBMR2) || \
defined(_POWER) || \
defined(_ARCH_PWR) || \
defined(_ARCH_PWR2)
#define HB_CPU_STR "POWER"
#elif defined(__sparc__) || \
defined(__sparc)
#if defined(__arch64__) || \
defined(__sparcv9) || \
defined(__sparc_v9__)
#define HB_CPU_STR "Sparc/64"
#else
#define HB_CPU_STR "Sparc/32"
#endif
#elif defined(__sh__) || \
defined(_SH3) || \
defined(__sh4__) || \
defined(__SH4__) || \
defined(_M_SH)
#define HB_CPU_STR "SuperH"
#elif defined(__370__) || \
defined(__THW_370__)
#define HB_CPU_STR "System/370"
#elif defined(__s390__) || \
defined(__s390x__)
#define HB_CPU_STR "System/390"
#elif defined(__SYSC_ZARCH__)
#define HB_CPU_STR "z/Architecture"
#endif
#ifndef HB_CPU_STR
#define HB_CPU_STR "(unknown)"
#endif
const char * hb_verCPU( void )
{
HB_TRACE(HB_TR_DEBUG, ("hb_verCPU()"));
return HB_CPU_STR;
}
/* NOTE: OS() function, as a primary goal will detect the version number
of the target platform. As an extra it may also detect the host OS.
The latter is mainly an issue in DOS, where the host OS can be OS/2

View File

@@ -160,6 +160,10 @@ HB_FUNC( HB_VERSION )
#endif
break;
case HB_VERSION_CPU:
hb_retc_const( hb_verCPU() );
break;
case HB_VERSION_ENDIANNESS:
#if defined( HB_LITTLE_ENDIAN )
hb_retni( HB_VERSION_ENDIAN_LITTLE );