From b55040665c6f2cb807eda4b8ba62b19b609d206a Mon Sep 17 00:00:00 2001 From: jyelon Date: Wed, 8 Dec 2021 13:28:09 -0500 Subject: [PATCH] Work on linux version --- luprex/.gitignore | 1 + luprex/core/Makefile | 126 +++++++++++++++++++---------- luprex/core/cpp/drivenengine.cpp | 2 +- luprex/core/{lib => lobj}/.gitkeep | 0 luprex/eris-master/build.bat | 15 ---- luprex/eris-master/build.sh | 18 ----- 6 files changed, 87 insertions(+), 75 deletions(-) rename luprex/core/{lib => lobj}/.gitkeep (100%) delete mode 100644 luprex/eris-master/build.bat delete mode 100755 luprex/eris-master/build.sh diff --git a/luprex/.gitignore b/luprex/.gitignore index 2878e3de..29418dcb 100644 --- a/luprex/.gitignore +++ b/luprex/.gitignore @@ -9,6 +9,7 @@ core/main core/inc/** core/lib/** core/obj/** +core/lobj/** .vscode/** luajit/src/lj_bcdef.h luajit/src/lj_ffdef.h diff --git a/luprex/core/Makefile b/luprex/core/Makefile index 2630fe57..fc183e2e 100644 --- a/luprex/core/Makefile +++ b/luprex/core/Makefile @@ -3,54 +3,98 @@ OS=unspecified ifeq ($(OS),mingw) EXE=main.exe LIBS=-lws2_32 -else + LUAFLAGS=-DLUA_USE_POSIX +else ifeq ($(OS),linux) EXE=main LIBS= + LUAFLAGS=-DLUA_USE_POSIX +else + $(error You must specify OS=linux or OS=mingw) endif -CXX=g++ -std=c++17 -Wall -g -Iinc -Icpp +LUA_OBJ_FILES=\ + lobj/lapi.o \ + lobj/lcode.o \ + lobj/lctype.o \ + lobj/ldebug.o \ + lobj/ldo.o \ + lobj/ldump.o \ + lobj/lfunc.o \ + lobj/lgc.o \ + lobj/llex.o \ + lobj/lmem.o \ + lobj/lobject.o \ + lobj/lopcodes.o \ + lobj/lparser.o \ + lobj/lstate.o \ + lobj/lstring.o \ + lobj/ltable.o \ + lobj/ltm.o \ + lobj/lundump.o \ + lobj/lvm.o \ + lobj/lzio.o \ + lobj/lauxlib.o \ + lobj/lbaselib.o \ + lobj/lbitlib.o \ + lobj/lcorolib.o \ + lobj/ldblib.o \ + lobj/liolib.o \ + lobj/lmathlib.o \ + lobj/loslib.o \ + lobj/lstrlib.o \ + lobj/ltablib.o \ + lobj/loadlib.o \ + lobj/linit.o \ + lobj/eris.o \ -CPP_FILES=\ - cpp/invocation.cpp\ - cpp/spookyv2.cpp\ - cpp/debugcollector.cpp\ - cpp/drivenengine.cpp\ - cpp/util.cpp\ - cpp/luastack.cpp\ - cpp/traceback.cpp\ - cpp/planemap.cpp\ - cpp/pprint.cpp\ - cpp/luaconsole.cpp\ - cpp/idalloc.cpp\ - cpp/globaldb.cpp\ - cpp/sched.cpp\ - cpp/table.cpp\ - cpp/gui.cpp\ - cpp/luasnap.cpp\ - cpp/animqueue.cpp\ - cpp/streambuffer.cpp\ - cpp/source.cpp\ - cpp/world-core.cpp\ - cpp/world-accessor.cpp\ - cpp/world-difftab.cpp\ - cpp/world-diffxmit.cpp\ - cpp/world-pairtab.cpp\ - cpp/world-testing.cpp\ - cpp/textgame.cpp\ - cpp/lpxserver.cpp\ - cpp/lpxclient.cpp\ - cpp/drivertests.cpp\ - cpp/printbuffer.cpp\ - cpp/main.cpp \ - cpp/driver-$(OS).cpp\ -OBJ_FILES=$(patsubst cpp/%.cpp,obj/%.o,$(CPP_FILES)) +CORE_OBJ_FILES=\ + obj/invocation.o\ + obj/spookyv2.o\ + obj/debugcollector.o\ + obj/drivenengine.o\ + obj/util.o\ + obj/luastack.o\ + obj/traceback.o\ + obj/planemap.o\ + obj/pprint.o\ + obj/luaconsole.o\ + obj/idalloc.o\ + obj/globaldb.o\ + obj/sched.o\ + obj/table.o\ + obj/gui.o\ + obj/luasnap.o\ + obj/animqueue.o\ + obj/streambuffer.o\ + obj/source.o\ + obj/world-core.o\ + obj/world-accessor.o\ + obj/world-difftab.o\ + obj/world-diffxmit.o\ + obj/world-pairtab.o\ + obj/world-testing.o\ + obj/textgame.o\ + obj/lpxserver.o\ + obj/lpxclient.o\ + obj/drivertests.o\ + obj/printbuffer.o\ + obj/main.o \ + obj/driver-$(OS).o\ + + +lobj/%.o: ../eris-master/src/%.c + gcc -Wall -g -DLUA_USE_APICHECK $(LUAFLAGS) -c $< -o $@ obj/%.o: cpp/%.cpp - $(CXX) -c -MMD $< -o $@ - -$(EXE): $(OBJ_FILES) - $(CXX) -o $@ $(OBJ_FILES) $(LIBS) -Llib lib/liblua-dbg.a + g++ -std=c++17 -Wall -g -Iinc -Icpp -c -MMD $< -o $@ --include $(OBJ_FILES:%.o=%.d) +$(EXE): $(CORE_OBJ_FILES) $(LUA_OBJ_FILES) + g++ -std=c++17 -Wall -g -o $@ $(CORE_OBJ_FILES) $(LUA_OBJ_FILES) + +clean: + rm -f main.exe main obj/* lobj/* + +-include $(CORE_OBJ_FILES:%.o=%.d) +-include $(LUA_OBJ_FILES:%.o=%.d) diff --git a/luprex/core/cpp/drivenengine.cpp b/luprex/core/cpp/drivenengine.cpp index 195526f8..0440800c 100644 --- a/luprex/core/cpp/drivenengine.cpp +++ b/luprex/core/cpp/drivenengine.cpp @@ -79,7 +79,7 @@ void Channel::feed_readline(int nbytes, const char *bytes) { desired_command_ = ""; current_prompt_ = ""; current_command_ = ""; - } else if (c == '\b') { + } else if ((c == '\b') || (c == 127)) { int len = desired_command_.size(); if (len > 0) { desired_command_ = desired_command_.substr(0, len-1); diff --git a/luprex/core/lib/.gitkeep b/luprex/core/lobj/.gitkeep similarity index 100% rename from luprex/core/lib/.gitkeep rename to luprex/core/lobj/.gitkeep diff --git a/luprex/eris-master/build.bat b/luprex/eris-master/build.bat deleted file mode 100644 index 6f49b25f..00000000 --- a/luprex/eris-master/build.bat +++ /dev/null @@ -1,15 +0,0 @@ -cd src - -make "CFLAGS=-g -DLUA_USE_APICHECK -DLUA_COMPAT_ALL" clean win-gcc-static -cp liblua.a ../../core/lib/liblua-dbg.a - -make "CFLAGS=-O2 -DLUA_COMPAT_ALL" clean win-gcc-static -cp liblua.a ../../core/lib/liblua-opt.a - -cp lua.h ../../core/inc/ -cp luaconf.h ../../core/inc/ -cp lauxlib.h ../../core/inc/ -cp lualib.h ../../core/inc/ -cp eris.h ../../core/inc/ - -cd .. diff --git a/luprex/eris-master/build.sh b/luprex/eris-master/build.sh deleted file mode 100755 index a8361a46..00000000 --- a/luprex/eris-master/build.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -cd src - -make "CFLAGS=-g -DLUA_USE_APICHECK -DLUA_COMPAT_ALL" clean win-gcc-static -cp liblua.a ../../core/lib/liblua-dbg.a - -make "CFLAGS=-O2 -DLUA_COMPAT_ALL" clean win-gcc-static -cp liblua.a ../../core/lib/liblua-opt.a - -cp lua.h ../../core/inc/ -cp luaconf.h ../../core/inc/ -cp lauxlib.h ../../core/inc/ -cp lualib.h ../../core/inc/ -cp eris.h ../../core/inc/ - -cd .. -