Lunatic: fix build and linking. DONT_BUILD.

- t{sector,wall}type are simply typedef'd to the non-t versions
- make FORCE_INLINE unconditional of DISABLE_INLINING (otherwise there are
  multiple definitions of these functions)
- update lunatic/doc/lpeg-lunatic.patch to apply against the LPeg 0.12 I just
  downloaded


git-svn-id: https://svn.eduke32.com/eduke32@4937 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2015-01-19 00:11:25 +00:00
parent 621b52aec5
commit 038a9f8eb6
6 changed files with 38 additions and 22 deletions

View file

@ -308,15 +308,19 @@ enum {
SPR_ALIGN_MASK = 32+16, SPR_ALIGN_MASK = 32+16,
}; };
#if !defined NEW_MAP_FORMAT
#include "buildtypes.h" #include "buildtypes.h"
#define UNTRACKED_STRUCTS #define UNTRACKED_STRUCTS
#undef buildtypes_h__ #undef buildtypes_h__
#include "buildtypes.h" #include "buildtypes.h"
#undef UNTRACKED_STRUCTS #undef UNTRACKED_STRUCTS
#endif
#ifdef NEW_MAP_FORMAT #ifdef NEW_MAP_FORMAT
//////////////////// Lunatic new-generation map format //////////////////// //////////////////// Lunatic new-generation map format ////////////////////
#include "buildtypes.h"
// 44 bytes // 44 bytes
typedef struct typedef struct
{ {
@ -505,6 +509,10 @@ static inline void inplace_vx_tweak_wall(walltypevx *vxwal, int32_t yaxp)
typedef sectortypevx sectortype; typedef sectortypevx sectortype;
typedef walltypevx walltype; typedef walltypevx walltype;
typedef sectortype tsectortype;
typedef walltype twalltype;
typedef spritetype tspritetype;
//////////////////// END Lunatic new-generation map format //////////////// //////////////////// END Lunatic new-generation map format ////////////////
#else #else
typedef sectortypev7 sectortype; typedef sectortypev7 sectortype;

View file

@ -6,6 +6,7 @@
#undef SPRITETYPE #undef SPRITETYPE
#ifdef UNTRACKED_STRUCTS #ifdef UNTRACKED_STRUCTS
#pragma push_macro("Tracker") #pragma push_macro("Tracker")
#undef Tracker #undef Tracker
#define Tracker(tracker, type) type #define Tracker(tracker, type) type
@ -128,4 +129,5 @@ typedef struct
#ifdef UNTRACKED_STRUCTS #ifdef UNTRACKED_STRUCTS
#pragma pop_macro("Tracker") #pragma pop_macro("Tracker")
#endif #endif
#endif // buildtypes_h__ #endif // buildtypes_h__

View file

@ -209,21 +209,21 @@
#ifndef DISABLE_INLINING #ifndef DISABLE_INLINING
# define EXTERN_INLINE static inline # define EXTERN_INLINE static inline
# define EXTERN_INLINE_HEADER static inline # define EXTERN_INLINE_HEADER static inline
# ifndef FORCE_INLINE
# ifdef _MSC_VER // Visual Studio
# define FORCE_INLINE static __forceinline
# else
# ifdef __GNUC__
# define FORCE_INLINE static inline __attribute__((always_inline))
# else
# define FORCE_INLINE static inline
# endif
# endif
# endif
#else #else
# define EXTERN_INLINE __fastcall # define EXTERN_INLINE __fastcall
# define EXTERN_INLINE_HEADER extern __fastcall # define EXTERN_INLINE_HEADER extern __fastcall
# define FORCE_INLINE #endif
#ifndef FORCE_INLINE
# ifdef _MSC_VER // Visual Studio
# define FORCE_INLINE static __forceinline
# else
# ifdef __GNUC__
# define FORCE_INLINE static inline __attribute__((always_inline))
# else
# define FORCE_INLINE static inline
# endif
# endif
#endif #endif
#if !defined DEBUG_MAIN_ARRAYS #if !defined DEBUG_MAIN_ARRAYS

View file

@ -5736,7 +5736,7 @@ int32_t VM_CheckSquished2(int32_t i, int32_t snum)
vm.g_i = i; vm.g_i = i;
vm.g_sp = &sprite[i]; vm.g_sp = &sprite[i];
vm.g_p = snum; vm.g_p = snum;
vm.g_pp = &g_player[snum].ps; vm.g_pp = g_player[snum].ps;
return VM_CheckSquished(); return VM_CheckSquished();
} }

View file

@ -1004,15 +1004,13 @@ void Gv_ResetSystemDefaults(void)
{ {
// call many times... // call many times...
#if !defined LUNATIC #if !defined LUNATIC
int32_t i;
int32_t j;
char aszBuf[64]; char aszBuf[64];
//AddLog("ResetWeaponDefaults"); //AddLog("ResetWeaponDefaults");
for (j=MAXPLAYERS-1; j>=0; j--) for (int j=MAXPLAYERS-1; j>=0; j--)
{ {
for (i=MAX_WEAPONS-1; i>=0; i--) for (int i=MAX_WEAPONS-1; i>=0; i--)
{ {
Bsprintf(aszBuf,"WEAPON%d_CLIP",i); Bsprintf(aszBuf,"WEAPON%d_CLIP",i);
aplWeaponClip[i][j]=Gv_GetVarByLabel(aszBuf,0, -1, j); aplWeaponClip[i][j]=Gv_GetVarByLabel(aszBuf,0, -1, j);
@ -1075,10 +1073,12 @@ void Gv_ResetSystemDefaults(void)
g_iActorVarID=Gv_GetVarIndex("actorvar"); g_iActorVarID=Gv_GetVarIndex("actorvar");
#endif #endif
for (i = 0; i <= MAXTILES - 1; i++) for (int i = 0; i <= MAXTILES - 1; i++)
Bmemcpy(&ProjectileData[i], &g_tile[i].defproj, sizeof(projectile_t)); Bmemcpy(&ProjectileData[i], &g_tile[i].defproj, sizeof(projectile_t));
#ifndef LUNATIC #ifndef LUNATIC
int i;
// hackhackhackhackhack // hackhackhackhackhack
if (i = hash_find(&h_arrays, "tilesizx"), i >= 0) if (i = hash_find(&h_arrays, "tilesizx"), i >= 0)
{ {
@ -1487,13 +1487,19 @@ static void Gv_AddSystemVars(void)
void Gv_Init(void) void Gv_Init(void)
{ {
#if !defined LUNATIC
// already initialized // already initialized
if (aGameVars[0].dwFlags) if (aGameVars[0].dwFlags)
return; return;
#if !defined LUNATIC
Gv_Clear(); Gv_Clear();
#else
static int32_t inited=0;
if (inited)
return;
inited = 1;
#endif #endif
// Set up weapon defaults, g_playerWeapon[][]. // Set up weapon defaults, g_playerWeapon[][].
Gv_AddSystemVars(); Gv_AddSystemVars();
#if !defined LUNATIC #if !defined LUNATIC

View file

@ -17,7 +17,7 @@ index 57a18fb..88e8a60 100644
+++ b/makefile +++ b/makefile
@@ -1,5 +1,8 @@ @@ -1,5 +1,8 @@
LIBNAME = lpeg LIBNAME = lpeg
-LUADIR = /usr/include/lua5.1/ -LUADIR = ../lua/
+# Linux example: +# Linux example:
+LUADIR = /usr/local/include/luajit-2.0 +LUADIR = /usr/local/include/luajit-2.0
+# Windows example (from MSYS bash): +# Windows example (from MSYS bash):
@ -41,10 +41,10 @@ index 57a18fb..88e8a60 100644
+# 3. Build static lib (for EDuke32/Lunatic) +# 3. Build static lib (for EDuke32/Lunatic)
+# $ PIC='' make liblpeg.a +# $ PIC='' make liblpeg.a
-CFLAGS = $(CWARNS) $(COPT) -ansi -I$(LUADIR) -fPIC -CFLAGS = $(CWARNS) $(COPT) -std=c99 -I$(LUADIR) -fPIC
+PIC ?= -fPIC +PIC ?= -fPIC
+ +
+CFLAGS = $(CWARNS) $(COPT) -ansi -I$(LUADIR) $(PIC) +CFLAGS = $(CWARNS) $(COPT) -std=c99 -I$(LUADIR) $(PIC)
CC = gcc CC = gcc
FILES = lpvm.o lpcap.o lptree.o lpcode.o lpprint.o FILES = lpvm.o lpcap.o lptree.o lpcode.o lpprint.o