Generic_Window_Manager/machine.h

140 lines
3.7 KiB
C

/* Copyright 1989 GROUPE BULL -- See license conditions in file COPYRIGHT
* Copyright 1989 Massachusetts Institute of Technology
*/
/*******************************\
* *
* Machine - dependent patches *
* *
\*******************************/
/*****************************************************************************\
* OS Description *
\*****************************************************************************/
/* To describe your OS, you can #define those flags:
*
* NO_GETPAGESIZE if you dont have getpagesize()
* SYSV_TIME if you cannot use BSD ftime function
* SYSV_STRINGS if you include <string.h> instead of <strings.h>
* SYSV_UTSNAME if you don't have gethostname()
* SYSV_SIGNALS if you dont have wait3()
* NO_BCOPY if you dont have bcopy and friends
* HAS_STRCHR if strchr already exists
* NO_MALLOC_DECLARE if your includes already declares char *malloc()
*/
#if defined(SYSV) || defined(SVR4) /* Generic SYSV */
#define NO_GETPAGESIZE
#define SYSV_TIME
#define SYSV_STRINGS
#define SYSV_UTSNAME
#define SYSV_SIGNALS
#ifndef VOID_MALLOC
#define VOID_MALLOC
#endif
#ifndef VOID_SIGNALS
#define VOID_SIGNALS
#endif
#define NO_BCOPY
#define HAS_STRCHR
#endif /* defined(SYSV) || defined(SVR4) */
#ifdef BOSF /* BULL OSF Unix. Mix of BSD and SYSV*/
#define SYSV_TIME
#define NO_MALLOC_DECLARE
#define HAS_STRCHR
#endif /* BOSF */
#ifdef __USLC__ /* UnixWare 1.1.2 (SVR4.2) C compiler */
#define DO_NOT_REDEFINE_MALLOC
#endif
/* BSD means no flags (normal) */
/*****************************************************************************\
* automatic customizations *
\*****************************************************************************/
#ifdef sparc
#define NO_BCOPY /* bzero buggy on sun4 */
#endif
#ifdef apollo /* no struct field acces on apollo */
#define NO_STRUCTURE_OFFSETS
#endif
#ifdef linux
#ifndef LINUX /* linux ==> LINUX */
#define LINUX
#endif
#endif
#ifdef LINUX
#ifndef _BSD_SOURCE
#define SYSV
#endif
#define VOID_SIGNALS
#define VOID_MALLOC
#define DO_NOT_REDEFINE_MALLOC
#endif /* LINUX */
#ifdef __FreeBSD__
#define SYSV_TIME
#define VOID_SIGNALS
#define VOID_MALLOC
#define DO_NOT_REDEFINE_MALLOC
#endif
#ifdef _AIX
#ifndef NEED_SELECT_H
#define NEED_SELECT_H
#endif /* !NEED_SELECT_H */
#endif /* _AIX */
/*****************************************************************************\
* bcopy *
\*****************************************************************************/
#ifdef NO_BCOPY
#define bcopy(source, dest, count) memcpy(dest, source, count)
#define bzero(dest, count) memset(dest, 0, count)
#define bcmp(source, dest, count) memcmp(source, dest, count)
#endif /* NO_BCOPY */
/*****************************************************************************\
* strchr implemented as index *
\*****************************************************************************/
#ifdef HAS_STRCHR
#ifdef DO_NOT_DECLARE_STRCHR
#define DECLARE_strchr
#define DECLARE_strrchr
#else
#define DECLARE_strchr extern char *strchr()
#define DECLARE_strrchr extern char *strrchr()
#endif
#else /* HAS_STRCHR */
#define DECLARE_strchr extern char *index()
#define DECLARE_strrchr extern char *rindex()
#define strchr(string, char) index(string, char)
#define strrchr(string, char) rindex(string, char)
#endif /* HAS_STRCHR */
#ifdef __GNUC__
#define Abs(x) __builtin_abs(x)
#endif
#ifdef __HIGHC__
#define Abs(x) _abs(x)
#endif
#ifdef USE_STANDARD_MALLOC
#ifdef DO_NOT_REDEFINE_MALLOC
#undef DO_NOT_REDEFINE_MALLOC
#endif
#endif