sourcepawn/compiler/sclinux.h
author David Anderson <dvander@alliedmods.net>
Sun Aug 30 00:21:42 2009 -0700 (2009-08-30)
changeset 2783 5f333027ef04
parent 2471 194be299b700
child 3885 bb6de8c6c2d5
permissions -rw-r--r--
Imported support for new build system.
dvander@353
     1
/*
dvander@353
     2
 * Things needed to compile under linux.
dvander@353
     3
 *
dvander@353
     4
 * Should be reworked totally to use GNU's 'configure'
dvander@353
     5
 */
dvander@353
     6
#ifndef SCLINUX_H
dvander@353
     7
#define SCLINUX_H
dvander@353
     8
dvander@353
     9
/* getchar() is not a 'cool' replacement for MSDOS getch: Linux/unix depends on the features activated or not about the
dvander@353
    10
 * controlling terminal's tty. This means that ioctl(2) calls must be performed, for instance to have the controlling 
dvander@353
    11
 * terminal tty's in 'raw' mode, if we want to be able to fetch a single character. This also means that everything must 
dvander@353
    12
 * be put back correctly when the function ends. See GETCH.C for an implementation.
dvander@353
    13
 *
dvander@353
    14
 * For interactive use of SRUN/SDBG if would be much better to use GNU's readline package: the user would be able to 
dvander@353
    15
 * have a complete emacs/vi like line editing system.
dvander@353
    16
 */
dvander@353
    17
#include "getch.h"
dvander@353
    18
dvander@353
    19
#define	strnicmp(a,b,c) strncasecmp(a,b,c)
dvander@353
    20
dvander@353
    21
/*
dvander@353
    22
 * WinWorld wants '\'. Unices do not.
dvander@353
    23
 */
dvander@353
    24
#define	DIRECTORY_SEP_CHAR      '/'
dvander@353
    25
#define	DIRECTORY_SEP_STR       "/"
dvander@353
    26
dvander@353
    27
/*
dvander@353
    28
 * SC assumes that a computer is Little Endian unless told otherwise. It uses
dvander@353
    29
 * (and defines) the macros BYTE_ORDER and BIG_ENDIAN.
dvander@353
    30
 * For Linux, we must overrule these settings with those defined in glibc.
dvander@353
    31
 */
dvander@353
    32
#if !defined __BYTE_ORDER
dvander@353
    33
# include <stdlib.h>
dvander@353
    34
#endif
dvander@353
    35
dvander@2471
    36
#if defined __OpenBSD__ || defined __FreeBSD__ || defined __APPLE__
dvander@353
    37
# define __BYTE_ORDER    BYTE_ORDER
dvander@353
    38
# define __LITTLE_ENDIAN LITTLE_ENDIAN
dvander@353
    39
# define __BIG_ENDIAN    BIG_ENDIAN
dvander@353
    40
#endif
dvander@353
    41
dvander@353
    42
#if !defined __BYTE_ORDER
dvander@353
    43
# error	"Can't figure computer byte order (__BYTE_ORDER macro not found)"
dvander@353
    44
#endif
dvander@353
    45
dvander@353
    46
#endif /* SCLINUX_H */