mirror of
https://github.com/UberGames/rpgxEF.git
synced 2024-11-10 15:21:34 +00:00
a39565b783
... not quite content with where the project files lie but it is ok for now. ... compiling works fine so far (only tested mingw32 right now)
473 lines
12 KiB
C
473 lines
12 KiB
C
/*
|
|
** $Id: luaconf.h,v 1.151 2010/11/12 15:48:30 roberto Exp $
|
|
** Configuration file for Lua
|
|
** See Copyright Notice in lua.h
|
|
*/
|
|
|
|
|
|
#ifndef lconfig_h
|
|
#define lconfig_h
|
|
|
|
#include <limits.h>
|
|
#include <stddef.h>
|
|
|
|
|
|
/*
|
|
** ==================================================================
|
|
** Search for "@@" to find all configurable definitions.
|
|
** ===================================================================
|
|
*/
|
|
|
|
|
|
/*
|
|
@@ LUA_ANSI controls the use of non-ansi features.
|
|
** CHANGE it (define it) if you want Lua to avoid the use of any
|
|
** non-ansi feature or library.
|
|
*/
|
|
#if !defined(LUA_ANSI) && defined(__STRICT_ANSI__)
|
|
#define LUA_ANSI
|
|
#endif
|
|
|
|
|
|
#if !defined(LUA_ANSI) && defined(_WIN32)
|
|
#define LUA_WIN
|
|
#endif
|
|
|
|
#if defined(LUA_WIN)
|
|
#define LUA_DL_DLL
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(LUA_USE_LINUX)
|
|
#define LUA_USE_POSIX
|
|
#define LUA_USE_DLOPEN /* needs an extra library: -ldl */
|
|
#define LUA_USE_READLINE /* needs some extra libraries */
|
|
#endif
|
|
|
|
#if defined(LUA_USE_MACOSX)
|
|
#define LUA_USE_POSIX
|
|
#define LUA_USE_DLOPEN /* does not need -ldl */
|
|
#define LUA_USE_READLINE /* needs an extra library: -lreadline */
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
@@ LUA_USE_POSIX includes all functionality listed as X/Open System
|
|
@* Interfaces Extension (XSI).
|
|
** CHANGE it (define it) if your system is XSI compatible.
|
|
*/
|
|
#if defined(LUA_USE_POSIX)
|
|
#define LUA_USE_MKSTEMP
|
|
#define LUA_USE_ISATTY
|
|
#define LUA_USE_POPEN
|
|
#define LUA_USE_ULONGJMP
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
|
|
@* Lua libraries.
|
|
@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
|
|
@* C libraries.
|
|
** CHANGE them if your machine has a non-conventional directory
|
|
** hierarchy or if you want to install your libraries in
|
|
** non-conventional directories.
|
|
*/
|
|
#if defined(_WIN32) /* { */
|
|
/*
|
|
** In Windows, any exclamation mark ('!') in the path is replaced by the
|
|
** path of the directory of the executable file of the current process.
|
|
*/
|
|
#define LUA_LDIR "!\\lua\\"
|
|
#define LUA_CDIR "!\\"
|
|
#define LUA_PATH_DEFAULT \
|
|
LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \
|
|
LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" ".\\?.lua"
|
|
#define LUA_CPATH_DEFAULT \
|
|
LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll;" ".\\?.dll"
|
|
|
|
#else /* }{ */
|
|
|
|
#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/"
|
|
#define LUA_ROOT "/usr/local/"
|
|
#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR
|
|
#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR
|
|
#define LUA_PATH_DEFAULT \
|
|
LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \
|
|
LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" "./?.lua"
|
|
#define LUA_CPATH_DEFAULT \
|
|
LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so"
|
|
#endif /* } */
|
|
|
|
|
|
/*
|
|
@@ LUA_DIRSEP is the directory separator (for submodules).
|
|
** CHANGE it if your machine does not use "/" as the directory separator
|
|
** and is not Windows. (On Windows Lua automatically uses "\".)
|
|
*/
|
|
#if defined(_WIN32)
|
|
#define LUA_DIRSEP "\\"
|
|
#else
|
|
#define LUA_DIRSEP "/"
|
|
#endif
|
|
|
|
|
|
/*
|
|
@@ LUA_ENV is the name of the variable that holds the current
|
|
@@ environment, used to access global names.
|
|
** CHANGE it if you do not like this name.
|
|
*/
|
|
#define LUA_ENV "_ENV"
|
|
|
|
|
|
/*
|
|
@@ LUA_API is a mark for all core API functions.
|
|
@@ LUALIB_API is a mark for all auxiliary library functions.
|
|
@@ LUAMOD_API is a mark for all standard library opening functions.
|
|
** CHANGE them if you need to define those functions in some special way.
|
|
** For instance, if you want to create one Windows DLL with the core and
|
|
** the libraries, you may want to use the following definition (define
|
|
** LUA_BUILD_AS_DLL to get it).
|
|
*/
|
|
#if defined(LUA_BUILD_AS_DLL) /* { */
|
|
|
|
#if defined(LUA_CORE) || defined(LUA_LIB) /* { */
|
|
#define LUA_API __declspec(dllexport)
|
|
#else /* }{ */
|
|
#define LUA_API __declspec(dllimport)
|
|
#endif /* } */
|
|
|
|
#else /* }{ */
|
|
|
|
#define LUA_API extern
|
|
|
|
#endif /* } */
|
|
|
|
|
|
/* more often than not the libs go together with the core */
|
|
#define LUALIB_API LUA_API
|
|
#define LUAMOD_API LUALIB_API
|
|
|
|
|
|
/*
|
|
@@ LUAI_FUNC is a mark for all extern functions that are not to be
|
|
@* exported to outside modules.
|
|
@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables
|
|
@* that are not to be exported to outside modules (LUAI_DDEF for
|
|
@* definitions and LUAI_DDEC for declarations).
|
|
** CHANGE them if you need to mark them in some special way. Elf/gcc
|
|
** (versions 3.2 and later) mark them as "hidden" to optimize access
|
|
** when Lua is compiled as a shared library. Not all elf targets support
|
|
** this attribute. Unfortunately, gcc does not offer a way to check
|
|
** whether the target offers that support, and those without support
|
|
** give a warning about it. To avoid these warnings, change to the
|
|
** default definition.
|
|
*/
|
|
#if defined(luaall_c) /* { */
|
|
#define LUAI_FUNC static
|
|
#define LUAI_DDEC static
|
|
#define LUAI_DDEF static
|
|
|
|
#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
|
|
defined(__ELF__)
|
|
#define LUAI_FUNC __attribute__((visibility("hidden"))) extern
|
|
#define LUAI_DDEC LUAI_FUNC
|
|
#define LUAI_DDEF /* empty */
|
|
|
|
#else /* }{ */
|
|
#define LUAI_FUNC extern
|
|
#define LUAI_DDEC extern
|
|
#define LUAI_DDEF /* empty */
|
|
#endif /* } */
|
|
|
|
|
|
|
|
/*
|
|
@@ LUA_QL describes how error messages quote program elements.
|
|
** CHANGE it if you want a different appearance.
|
|
*/
|
|
#define LUA_QL(x) "'" x "'"
|
|
#define LUA_QS LUA_QL("%s")
|
|
|
|
|
|
/*
|
|
@@ LUA_IDSIZE gives the maximum size for the description of the source
|
|
@* of a function in debug information.
|
|
** CHANGE it if you want a different size.
|
|
*/
|
|
#define LUA_IDSIZE 60
|
|
|
|
|
|
/*
|
|
@@ luai_writestring defines how 'print' prints its results.
|
|
*/
|
|
#include <stdio.h>
|
|
#define luai_writestring(s,l) fwrite((s), sizeof(char), (l), stdout)
|
|
|
|
/*
|
|
@@ luai_writestringerror defines how to print error messages.
|
|
** (A format string with one argument is enough for Lua...)
|
|
*/
|
|
#define luai_writestringerror(s,p) \
|
|
(fprintf(stderr, (s), (p)), fflush(stderr))
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
** {==================================================================
|
|
** Compatibility with previous versions
|
|
** ===================================================================
|
|
*/
|
|
|
|
/*
|
|
@@ LUA_COMPAT_ALL controls all compatibility options.
|
|
** You can define it to get all options, or change specific options
|
|
** to fit your specific needs.
|
|
*/
|
|
#if defined(LUA_COMPAT_ALL) /* { */
|
|
|
|
/*
|
|
@@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'.
|
|
** You can replace it with 'table.unpack'.
|
|
*/
|
|
#define LUA_COMPAT_UNPACK
|
|
|
|
/*
|
|
@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall.
|
|
** You can call your C function directly (with light C functions).
|
|
*/
|
|
#define lua_cpcall(L,f,u) \
|
|
(lua_pushcfunction(L, (f)), \
|
|
lua_pushlightuserdata(L,(u)), \
|
|
lua_pcall(L,1,0,0))
|
|
|
|
|
|
/*
|
|
@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library.
|
|
** You can rewrite 'log10(x)' as 'log(x, 10)'.
|
|
*/
|
|
#define LUA_COMPAT_LOG10
|
|
|
|
/*
|
|
@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library.
|
|
*/
|
|
#define LUA_COMPAT_MAXN
|
|
|
|
/*
|
|
@@ The following macros supply trivial compatibility for some
|
|
** changes in the API. The macros themselves document how to
|
|
** change your code to avoid using them.
|
|
*/
|
|
#define lua_strlen(L,i) lua_rawlen(L, (i))
|
|
|
|
#define lua_objlen(L,i) lua_rawlen(L, (i))
|
|
|
|
#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ)
|
|
#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT)
|
|
|
|
/*
|
|
@@ LUA_COMPAT_MODULE controls compatibility with previous
|
|
** module functions 'module' (Lua) and 'luaL_register' (C).
|
|
*/
|
|
#define LUA_COMPAT_MODULE
|
|
|
|
#endif /* } */
|
|
|
|
/* }================================================================== */
|
|
|
|
|
|
|
|
/*
|
|
@@ LUAI_BITSINT defines the number of bits in an int.
|
|
** CHANGE here if Lua cannot automatically detect the number of bits of
|
|
** your machine. Probably you do not need to change this.
|
|
*/
|
|
/* avoid overflows in comparison */
|
|
#if INT_MAX-20 < 32760 /* { */
|
|
#define LUAI_BITSINT 16
|
|
#elif INT_MAX > 2147483640L /* }{ */
|
|
/* int has at least 32 bits */
|
|
#define LUAI_BITSINT 32
|
|
#else /* }{ */
|
|
#error "you must define LUA_BITSINT with number of bits in an integer"
|
|
#endif /* } */
|
|
|
|
|
|
/*
|
|
@@ LUA_INT32 is an signed integer with exactly 32 bits.
|
|
@@ LUAI_UMEM is an unsigned integer big enough to count the total
|
|
@* memory used by Lua.
|
|
@@ LUAI_MEM is a signed integer big enough to count the total memory
|
|
@* used by Lua.
|
|
** CHANGE here if for some weird reason the default definitions are not
|
|
** good enough for your machine. Probably you do not need to change
|
|
** this.
|
|
*/
|
|
#if LUAI_BITSINT >= 32 /* { */
|
|
#define LUA_INT32 int
|
|
#define LUAI_UMEM size_t
|
|
#define LUAI_MEM ptrdiff_t
|
|
#else /* }{ */
|
|
/* 16-bit ints */
|
|
#define LUA_INT32 long
|
|
#define LUAI_UMEM unsigned long
|
|
#define LUAI_MEM long
|
|
#endif /* } */
|
|
|
|
|
|
/*
|
|
@@ LUAI_MAXSTACK limits the size of the Lua stack.
|
|
** CHANGE it if you need a different limit. This limit is arbitrary;
|
|
** its only purpose is to stop Lua to consume unlimited stack
|
|
** space (and to reserve some numbers for pseudo-indices).
|
|
*/
|
|
#if LUAI_BITSINT >= 32
|
|
#define LUAI_MAXSTACK 1000000
|
|
#else
|
|
#define LUAI_MAXSTACK 15000
|
|
#endif
|
|
|
|
/* reserve some space for error handling */
|
|
#define LUAI_FIRSTPSEUDOIDX (-LUAI_MAXSTACK - 1000)
|
|
|
|
|
|
|
|
|
|
/*
|
|
@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
|
|
** CHANGE it if it uses too much C-stack space.
|
|
*/
|
|
#define LUAL_BUFFERSIZE BUFSIZ
|
|
|
|
|
|
|
|
|
|
/*
|
|
** {==================================================================
|
|
@@ LUA_NUMBER is the type of numbers in Lua.
|
|
** CHANGE the following definitions only if you want to build Lua
|
|
** with a number type different from double. You may also need to
|
|
** change lua_number2int & lua_number2integer.
|
|
** ===================================================================
|
|
*/
|
|
|
|
#define LUA_NUMBER_DOUBLE
|
|
#define LUA_NUMBER double
|
|
|
|
/*
|
|
@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
|
|
@* over a number.
|
|
*/
|
|
#define LUAI_UACNUMBER double
|
|
|
|
|
|
/*
|
|
@@ LUA_NUMBER_SCAN is the format for reading numbers.
|
|
@@ LUA_NUMBER_FMT is the format for writing numbers.
|
|
@@ lua_number2str converts a number to a string.
|
|
@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
|
|
@@ lua_str2number converts a string to a number.
|
|
*/
|
|
#define LUA_NUMBER_SCAN "%lf"
|
|
#define LUA_NUMBER_FMT "%.14g"
|
|
#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n))
|
|
#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */
|
|
#define lua_str2number(s,p) strtod((s), (p))
|
|
|
|
|
|
/*
|
|
@@ The luai_num* macros define the primitive operations over numbers.
|
|
*/
|
|
|
|
/* the following operations need the math library */
|
|
#if defined(lobject_c) || defined(lvm_c) || defined(luaall_c)
|
|
#include <math.h>
|
|
#define luai_nummod(L,a,b) ((a) - floor((a)/(b))*(b))
|
|
#define luai_numpow(L,a,b) (pow(a,b))
|
|
#endif
|
|
|
|
/* these are quite standard operations */
|
|
#if defined(LUA_CORE)
|
|
#define luai_numadd(L,a,b) ((a)+(b))
|
|
#define luai_numsub(L,a,b) ((a)-(b))
|
|
#define luai_nummul(L,a,b) ((a)*(b))
|
|
#define luai_numdiv(L,a,b) ((a)/(b))
|
|
#define luai_numunm(L,a) (-(a))
|
|
#define luai_numeq(a,b) ((a)==(b))
|
|
#define luai_numlt(L,a,b) ((a)<(b))
|
|
#define luai_numle(L,a,b) ((a)<=(b))
|
|
#define luai_numisnan(L,a) (!luai_numeq((a), (a)))
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
|
|
** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
|
|
** machines, ptrdiff_t gives a good choice between int or long.)
|
|
*/
|
|
#define LUA_INTEGER ptrdiff_t
|
|
|
|
/*
|
|
@@ LUA_UNSIGNED is the integral type used by lua_pushunsigned/lua_tounsigned.
|
|
** It must have at least 32 bits.
|
|
*/
|
|
#define LUA_UNSIGNED unsigned LUA_INT32
|
|
|
|
|
|
#if defined(LUA_CORE) /* { */
|
|
|
|
#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) /* { */
|
|
|
|
/* On a Microsoft compiler on a Pentium, use assembler to avoid clashes
|
|
with a DirectX idiosyncrasy */
|
|
#if defined(_MSC_VER) && defined(M_IX86) /* { */
|
|
|
|
#define MS_ASMTRICK
|
|
|
|
#else /* }{ */
|
|
/* the next definition uses a trick that should work on any machine
|
|
using IEEE754 with a 32-bit integer type */
|
|
|
|
#define LUA_IEEE754TRICK
|
|
|
|
/*
|
|
@@ LUA_IEEEENDIAN is the endianness of doubles in your machine
|
|
@@ (0 for little endian, 1 for big endian); if not defined, Lua will
|
|
@@ check it dynamically.
|
|
*/
|
|
/* check for known architectures */
|
|
#if defined(__i386__) || defined(__i386) || defined(i386) || \
|
|
defined (__x86_64)
|
|
#define LUA_IEEEENDIAN 0
|
|
#elif defined(__POWERPC__) || defined(__ppc__)
|
|
#define LUA_IEEEENDIAN 1
|
|
#endif
|
|
|
|
#endif /* } */
|
|
|
|
#endif /* } */
|
|
|
|
#endif /* } */
|
|
|
|
/* }================================================================== */
|
|
|
|
|
|
|
|
|
|
/* =================================================================== */
|
|
|
|
/*
|
|
** Local configuration. You can use this space to add your redefinitions
|
|
** without modifying the main part of the file.
|
|
*/
|
|
|
|
|
|
|
|
#endif
|
|
|