|
@@ -8,7 +8,6 @@
|
|
|
|
|
|
#include "lua.h"
|
|
|
|
|
|
-
|
|
|
/* Target endianess. */
|
|
|
#define LUAJIT_LE 0
|
|
|
#define LUAJIT_BE 1
|
|
@@ -23,6 +22,13 @@
|
|
|
#define LUAJIT_ARCH_PPCSPE 4
|
|
|
#define LUAJIT_ARCH_ppcspe 4
|
|
|
|
|
|
+/* Target OS. */
|
|
|
+#define LUAJIT_OS_OTHER 0
|
|
|
+#define LUAJIT_OS_WINDOWS 1
|
|
|
+#define LUAJIT_OS_LINUX 2
|
|
|
+#define LUAJIT_OS_OSX 3
|
|
|
+#define LUAJIT_OS_BSD 4
|
|
|
+#define LUAJIT_OS_POSIX 5
|
|
|
|
|
|
/* Select native target if no target defined. */
|
|
|
#ifndef LUAJIT_TARGET
|
|
@@ -43,15 +49,58 @@
|
|
|
|
|
|
#endif
|
|
|
|
|
|
-/* Set target properties. */
|
|
|
+/* Select native OS if no target OS defined. */
|
|
|
+#ifndef LUAJIT_OS
|
|
|
+
|
|
|
+#if defined(_WIN32)
|
|
|
+#define LUAJIT_OS LUAJIT_OS_WINDOWS
|
|
|
+#elif defined(__linux__)
|
|
|
+#define LUAJIT_OS LUAJIT_OS_LINUX
|
|
|
+#elif defined(__MACH__) && defined(__APPLE__)
|
|
|
+#define LUAJIT_OS LUAJIT_OS_OSX
|
|
|
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
|
|
|
+ defined(__NetBSD__) || defined(__OpenBSD__)
|
|
|
+#define LUAJIT_OS LUAJIT_OS_BSD
|
|
|
+#elif defined(__solaris__) || defined(__CYGWIN__)
|
|
|
+#define LUAJIT_OS LUAJIT_OS_POSIX
|
|
|
+#else
|
|
|
+#define LUAJIT_OS LUAJIT_OS_OTHER
|
|
|
+#endif
|
|
|
+
|
|
|
+#endif
|
|
|
+
|
|
|
+/* Set target OS properties. */
|
|
|
+#if LUAJIT_OS == LUAJIT_OS_WINDOWS
|
|
|
+#define LJ_OS_NAME "Windows"
|
|
|
+#elif LUAJIT_OS == LUAJIT_OS_LINUX
|
|
|
+#define LJ_OS_NAME "Linux"
|
|
|
+#elif LUAJIT_OS == LUAJIT_OS_OSX
|
|
|
+#define LJ_OS_NAME "OSX"
|
|
|
+#elif LUAJIT_OS == LUAJIT_OS_BSD
|
|
|
+#define LJ_OS_NAME "BSD"
|
|
|
+#elif LUAJIT_OS == LUAJIT_OS_POSIX
|
|
|
+#define LJ_OS_NAME "Posix"
|
|
|
+#else
|
|
|
+#define LJ_OS_NAME "Other"
|
|
|
+#endif
|
|
|
+
|
|
|
+#define LJ_TARGET_WINDOWS (LUAJIT_OS == LUAJIT_OS_WINDOWS)
|
|
|
+#define LJ_TARGET_LINUX (LUAJIT_OS == LUAJIT_OS_LINUX)
|
|
|
+#define LJ_TARGET_OSX (LUAJIT_OS == LUAJIT_OS_OSX)
|
|
|
+#define LJ_TARGET_POSIX (LUAJIT_OS > LUAJIT_OS_WINDOWS)
|
|
|
+#define LJ_TARGET_DLOPEN LJ_TARGET_POSIX
|
|
|
+
|
|
|
+/* Set target architecture properties. */
|
|
|
#if LUAJIT_TARGET == LUAJIT_ARCH_X86
|
|
|
|
|
|
#define LJ_ARCH_NAME "x86"
|
|
|
#define LJ_ARCH_BITS 32
|
|
|
#define LJ_ARCH_ENDIAN LUAJIT_LE
|
|
|
+#define LJ_ARCH_BITENDIAN LUAJIT_LE
|
|
|
+#define LJ_ARCH_HASFPU 1
|
|
|
+#define LJ_ABI_WIN LJ_TARGET_WINDOWS
|
|
|
#define LJ_TARGET_X86 1
|
|
|
#define LJ_TARGET_X86ORX64 1
|
|
|
-#define LJ_PAGESIZE 4096
|
|
|
#define LJ_TARGET_EHRETREG 0
|
|
|
#define LJ_TARGET_MASKSHIFT 1
|
|
|
#define LJ_TARGET_MASKROT 1
|
|
@@ -61,9 +110,11 @@
|
|
|
#define LJ_ARCH_NAME "x64"
|
|
|
#define LJ_ARCH_BITS 64
|
|
|
#define LJ_ARCH_ENDIAN LUAJIT_LE
|
|
|
+#define LJ_ARCH_BITENDIAN LUAJIT_LE
|
|
|
+#define LJ_ARCH_HASFPU 1
|
|
|
+#define LJ_ABI_WIN LJ_TARGET_WINDOWS
|
|
|
#define LJ_TARGET_X64 1
|
|
|
#define LJ_TARGET_X86ORX64 1
|
|
|
-#define LJ_PAGESIZE 4096
|
|
|
#define LJ_TARGET_EHRETREG 0
|
|
|
#define LJ_TARGET_MASKSHIFT 1
|
|
|
#define LJ_TARGET_MASKROT 1
|
|
@@ -77,9 +128,12 @@
|
|
|
#define LJ_ARCH_NAME "ppcspe"
|
|
|
#define LJ_ARCH_BITS 32
|
|
|
#define LJ_ARCH_ENDIAN LUAJIT_BE
|
|
|
+#define LJ_ARCH_BITENDIAN LUAJIT_BE
|
|
|
+#define LJ_ARCH_HASFPU 1
|
|
|
+#define LJ_ABI_SOFTFP 1
|
|
|
+#define LJ_ABI_EABI 1
|
|
|
#define LJ_TARGET_PPC 1
|
|
|
#define LJ_TARGET_PPCSPE 1
|
|
|
-#define LJ_PAGESIZE 4096
|
|
|
#define LJ_TARGET_EHRETREG 3
|
|
|
#define LJ_TARGET_MASKSHIFT 0
|
|
|
#define LJ_TARGET_MASKROT 1
|
|
@@ -89,6 +143,10 @@
|
|
|
#error "No target architecture defined"
|
|
|
#endif
|
|
|
|
|
|
+#ifndef LJ_PAGESIZE
|
|
|
+#define LJ_PAGESIZE 4096
|
|
|
+#endif
|
|
|
+
|
|
|
/* Check for minimum required compiler versions. */
|
|
|
#if defined(__GNUC__)
|
|
|
#if LJ_TARGET_X64
|