2192f73b11
- Lots of indenting changes - VC++ is strict with variadic macros - VC++ does not accept unistd.h - new interface for walltime - VC++ does not seem to have support for integer overflow. - VC++ defines YENV_REG? - no access flags, x permissions ignored. - new FindGMP supporting MPIR - make horus optional (c++ is hard).
159 lines
2.7 KiB
C
159 lines
2.7 KiB
C
// @{
|
|
|
|
/**
|
|
@addtogroup YAPOS
|
|
*/
|
|
|
|
/*
|
|
* In this routine we shall try to include the inevitably machine dependant
|
|
* routines. These include, for the moment : Time, A rudimentary form of
|
|
* signal handling, OS calls,
|
|
*
|
|
* Vitor Santos Costa, February 1987
|
|
*
|
|
*/
|
|
|
|
#if _WIN32 || defined(__MINGW32__)
|
|
#if !defined(MINGW_HAS_SECURE_API)
|
|
#define MINGW_HAS_SECURE_API 1
|
|
#endif
|
|
//#undef _POSIX_
|
|
#endif
|
|
#include "Yap.h"
|
|
#include "Yatom.h"
|
|
#include "YapHeap.h"
|
|
#include "yapio.h"
|
|
#include "eval.h"
|
|
#if _WIN32 || defined(__MINGW32__)
|
|
#include <winsock2.h>
|
|
/* Windows */
|
|
#include <io.h>
|
|
#include <windows.h>
|
|
#include <direct.h>
|
|
#include "Shlwapi.h"
|
|
#endif
|
|
#ifdef HAVE_UNISTD_H
|
|
#include <unistd.h>
|
|
#endif
|
|
#if HAVE_STDARG_H
|
|
#include <stdarg.h>
|
|
#endif
|
|
#include <stdlib.h>
|
|
|
|
#if HAVE_SYS_PARAM_H
|
|
#include <sys/param.h>
|
|
#endif
|
|
|
|
|
|
#ifdef FENV_H
|
|
#include <fenv.h>
|
|
#endif
|
|
#define S_ISDIR(x) (((x)&_S_IFDIR)==_S_IFDIR)
|
|
#if HAVE_STDARG_H
|
|
#include <stdarg.h>
|
|
#endif
|
|
#if HAVE_CTYPE_H
|
|
#include <ctype.h>
|
|
#endif
|
|
#if HAVE_SYS_PARAMS_H
|
|
#include <sys/params.h>
|
|
#endif
|
|
#if HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_STAT_H
|
|
#include <sys/stat.h>
|
|
#endif
|
|
#if HAVE_SYS_SELECT_H && !_MSC_VER && !defined(__MINGW32__)
|
|
#include <sys/select.h>
|
|
#endif
|
|
#if HAVE_STRING_H
|
|
#include <string.h>
|
|
#endif
|
|
#if HAVE_LIBGEN_H
|
|
#include <libgen.h>
|
|
#endif
|
|
#if HAVE_WCTYPE_H
|
|
#include <wctype.h>
|
|
#endif
|
|
#if HAVE_LIMITS_H
|
|
#include <limits.h>
|
|
#endif
|
|
#if HAVE_ERRNO_H
|
|
#include <errno.h>
|
|
#endif
|
|
#if HAVE_FCNTL_H
|
|
#include <fcntl.h>
|
|
#endif
|
|
#if !HAVE_STRNCAT
|
|
#define strncat(X,Y,Z) strcat(X,Y)
|
|
#endif
|
|
#if !HAVE_STRNCPY
|
|
#define strncpy(X,Y,Z) strcpy(X,Y)
|
|
#endif
|
|
#include "iopreds.h"
|
|
|
|
#if HAVE_SIGNAL_H
|
|
|
|
#include <signal.h>
|
|
|
|
#endif
|
|
#ifdef MPW
|
|
#define signal sigset
|
|
#endif
|
|
|
|
/* windows.h does not like absmi.h, this
|
|
should fix it for now */
|
|
#include <math.h>
|
|
#if HAVE_SYS_TIME_H && !_MSC_VER
|
|
#include <sys/time.h>
|
|
#endif
|
|
#if HAVE_UNISTD_H
|
|
#include <unistd.h>
|
|
#endif
|
|
#if HAVE_SYS_WAIT_H && !defined(__MINGW32__) && !_MSC_VER
|
|
#include <sys/wait.h>
|
|
#endif
|
|
#if HAVE_STRING_H
|
|
#include <string.h>
|
|
#endif
|
|
#if HAVE_GETPWNAM
|
|
#include <pwd.h>
|
|
#endif
|
|
#include <ctype.h>
|
|
#if HAVE_SYS_STAT_H
|
|
#include <sys/stat.h>
|
|
#endif
|
|
#if HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#if HAVE_FCNTL_H
|
|
#include <fcntl.h>
|
|
#endif
|
|
#if _MSC_VER || defined(__MINGW32__)
|
|
#endif
|
|
/* CYGWIN seems to include this automatically */
|
|
#if HAVE_FENV_H && !defined(__CYGWIN__)
|
|
#include <fenv.h>
|
|
#endif
|
|
#if HAVE_WORDEXP_H
|
|
#include <wordexp.h>
|
|
#endif
|
|
#if HAVE_GLOB_H
|
|
#include <glob.h>
|
|
#endif
|
|
#if HAVE_LIBGEN_H
|
|
#include <libgen.h>
|
|
#endif
|
|
#if defined(HAVE_READLINE_READLINE_H)
|
|
#include <readline/readline.h>
|
|
#endif
|
|
|
|
void Yap_InitRandom (void);
|
|
void Yap_InitTime (int wid);
|
|
void Yap_InitOSSignals (int wid);
|
|
void Yap_InitWTime(void);
|
|
|
|
|
|
|