The R Project SVN R

Rev

Rev 4770 | Blame | Last modification | View Log | Download | RSS feed

#ifndef PLATFORM_H_
#define PLATFORM_H_

#define Unix

/* (Long) Integers */

#undef SIZEOF_LONG

/* Floating Point Arithmetic */
#undef HAVE_MATHERR     /* System V */
#undef HAVE_ISNAN       /* IEEE Arith indicator */
#undef HAVE_FINITE

#undef HAVE_IEEEFP_H        /* "-Wall" */
#undef HAVE_IEEE754_H       /* Linux */

#ifdef HAVE_ISNAN
#ifdef HAVE_FINITE
#define IEEE_754
#endif
#endif

/* Signal Handler Type */
#define RETSIGTYPE int

/* Dynamic Linking */
#undef HAVE_DL_H        /* hpux */
#undef HAVE_DLFCN_H     /* Everything else */

/* ELF Binary Format */
#undef HAVE_ELF_H

/* Process Timing */
#undef HAVE_TIMES
#undef HAVE_TIMES_H
#undef HAVE_SYS_TIMES_H

/* XDR Library Available */
#undef HAVE_RPC_XDR_H

/* HDF5 Library Available */
#undef HAVE_HDF5_H

/* General String Comparison */
#undef HAVE_STRCOLL

/* Inverse Hyperbolics */
#undef HAVE_ASINH
#undef HAVE_ACOSH
#undef HAVE_ATANH

/* Unix commands through a subshell */
#undef HAVE_SYSTEM

/* IEEE Rounding */
#undef HAVE_RINT

/* HPUX rint is broken */
#undef USE_BUILTIN_RINT

/* POSIX Regular Expressions Available */
#undef HAVE_REGCOMP

/* Compatibility for "memmove" on older BSD platforms */
#undef HAVE_MEMMOVE
#undef HAVE_MEMCPY
#undef HAVE_BCOPY

/* Compatibility for setjmp / longjmp */
#undef HAVE_SIGLONGJMP

#ifdef HAVE_SIGLONGJMP
#define JMP_BUF sigjmp_buf
#define SETJMP(x) sigsetjmp(x,1)
#define LONGJMP(x,i) siglongjmp(x,i)
#else
#define JMP_BUF jmp_buf
#define SETJMP(x) setjmp(x)
#define LONGJMP(x,i) longjmp(x,i)
#endif


/* Some Linux systems may need this */
#undef HAVE___SETFPUCW

/* Fortran and C Links */
#undef HAVE_F77_UNDERSCORE

#ifdef HAVE_F77_UNDERSCORE
#define F77_SYMBOL(x)   x ## _
#define F77_QSYMBOL(x)  #x ## "_"
#else
#define F77_SYMBOL(x)   x
#define F77_QSYMBOL(x)  #x
#endif

/* GNU Readline Library */
#undef HAVE_LIBREADLINE
#undef HAVE_READLINE_HISTORY_H

#undef HAVE_LOCALE_H
#undef HAVE_UNISTD_H

/* Bug Workarounds */
#undef HAVE_OSF_SPRINTF_BUG
#undef LOG_BROKEN

/* Some platforms other than ELF drop the leading _ */
#undef HAVE_NO_SYMBOL_UNDERSCORE
#ifndef HAVE_NO_SYMBOL_UNDERSCORE
#ifdef HAVE_ELF_H
#define HAVE_NO_SYMBOL_UNDERSCORE
#endif
#endif

/* SunOS 4 is famous for broken header files */
#undef SunOS4
#ifdef SunOS4
# ifndef NULL
#  define   NULL        0
# endif
# ifndef RAND_MAX
#  define   RAND_MAX    32767
# endif
#endif /* SunOS4 */

/* Printing Command */
#define R_PRINTCMD  ""

/* Getting the working directory */
#if defined(HAVE_UNISTD_H)
#define R_GETCWD(x, y) getcwd(x, y)
#elif defined(Win32)
#define R_GETCWD(x, y) GetCurrentDirectory(y, x)
#else
#undef R_GETCWD
#endif

/* Maximal length of an entire file name */
#undef HAVE_LIMITS_H
#undef HAVE_SYS_PARAM_H

#if defined(HAVE_LIMITS_H)
#  include <limits.h>
#endif
#if !defined(PATH_MAX)
#  if defined(HAVE_SYS_PARAM_H)
#    include <sys/param.h>
#  endif
#  if defined(MAXPATHLEN) && !defined(PATH_MAX)
#    define PATH_MAX MAXPATHLEN
#  elif defined(Win32)
#    define PATH_MAX 260
#  else
#    define PATH_MAX 255
#  endif
#endif

/* for platform.c to put in .Platform */
#ifdef Unix
#define OSTYPE      "Unix"
#define FILESEP     "/"
#define SHLIBEXT    ""
#define DYNLOADEXT  "." ## SHLIBEXT
#endif

#ifdef Macintosh
#define OSTYPE      "Macintosh"
#define FILESEP     ":"
#define DYNLOADEXT  ".dll"
#endif

#ifdef Win32
#define OSTYPE      "Windows"
#define FILESEP     "/"
#define DYNLOADEXT  ".dll"
#endif

#define R_PLATFORM  "UNKNOWN"
#define R_CPU       "UNKNOWN"
#define R_VENDOR    "UNKNOWN"
#define R_OS        "UNKNOWN"
#define R_MAJOR     "UNKNOWN"
#define R_MINOR     "UNKNOWN"
#define R_STATUS    "UNKNOWN"
#define R_STATUS_REV    "UNKNOWN"
#define R_DAY       "UNKNOWN"
#define R_MONTH     "UNKNOWN"
#define R_YEAR      "UNKNOWN"

#endif