The R Project SVN R

Rev

Rev 5168 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

#ifndef PLATFORM_H_
#define PLATFORM_H_

#define Unix

/* AIX at least. */
#ifndef _ALL_SOURCE
#undef _ALL_SOURCE
#endif

/* alloca */
#undef C_ALLOCA
#undef HAVE_ALLOCA
#undef HAVE_ALLOCA_H

/* Define to empty if the keyword does not work.  */
#undef const

/* Define if you have the ANSI C header files.  */
#undef STDC_HEADERS

/* (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

/* Process ID */
#undef pid_t
/* Object size */
#undef size_t

/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
#undef HAVE_SYS_WAIT_H

/* 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_TIME_H
#undef HAVE_SYS_TIMES_H
#undef TIME_WITH_SYS_TIME

/* 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 NEED___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 */
#undef HAVE_GETCWD
#if defined(HAVE_GETCWD)
#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"

#endif