Refactor code for invoke_lua_source and world.init. Also, add compile_commands.json to luprex
This commit is contained in:
196
luprex/Makefile
196
luprex/Makefile
@@ -5,11 +5,11 @@
|
||||
#######################################################################
|
||||
|
||||
ifneq "" "$(findstring -linux-,$(MAKE_HOST))"
|
||||
OS=Linux
|
||||
OS:=Linux
|
||||
else ifneq "" "$(VSINSTALLDIR)"
|
||||
OS=Windows
|
||||
OS:=Windows
|
||||
else
|
||||
OS=""
|
||||
OS:=""
|
||||
endif
|
||||
|
||||
ifeq "$(OS)" ""
|
||||
@@ -18,91 +18,6 @@ endif
|
||||
$(info Building for $(OS)...)
|
||||
|
||||
|
||||
#######################################################################
|
||||
##
|
||||
## List of all OBJ files
|
||||
##
|
||||
#######################################################################
|
||||
|
||||
OBJ_ERIS=\
|
||||
build/$(OS)/eris/lapi.obj \
|
||||
build/$(OS)/eris/lcode.obj \
|
||||
build/$(OS)/eris/lctype.obj \
|
||||
build/$(OS)/eris/ldebug.obj \
|
||||
build/$(OS)/eris/ldo.obj \
|
||||
build/$(OS)/eris/ldump.obj \
|
||||
build/$(OS)/eris/lfunc.obj \
|
||||
build/$(OS)/eris/lgc.obj \
|
||||
build/$(OS)/eris/llex.obj \
|
||||
build/$(OS)/eris/lmem.obj \
|
||||
build/$(OS)/eris/lobject.obj \
|
||||
build/$(OS)/eris/lopcodes.obj \
|
||||
build/$(OS)/eris/lparser.obj \
|
||||
build/$(OS)/eris/lstate.obj \
|
||||
build/$(OS)/eris/lstring.obj \
|
||||
build/$(OS)/eris/ltable.obj \
|
||||
build/$(OS)/eris/ltm.obj \
|
||||
build/$(OS)/eris/lundump.obj \
|
||||
build/$(OS)/eris/lvm.obj \
|
||||
build/$(OS)/eris/lzio.obj \
|
||||
build/$(OS)/eris/lauxlib.obj \
|
||||
build/$(OS)/eris/lbaselib.obj \
|
||||
build/$(OS)/eris/lbitlib.obj \
|
||||
build/$(OS)/eris/lcorolib.obj \
|
||||
build/$(OS)/eris/ldblib.obj \
|
||||
build/$(OS)/eris/liolib.obj \
|
||||
build/$(OS)/eris/lmathlib.obj \
|
||||
build/$(OS)/eris/loslib.obj \
|
||||
build/$(OS)/eris/lstrlib.obj \
|
||||
build/$(OS)/eris/ltablib.obj \
|
||||
build/$(OS)/eris/loadlib.obj \
|
||||
build/$(OS)/eris/linit.obj \
|
||||
build/$(OS)/eris/eris.obj \
|
||||
|
||||
OBJ_CORE=\
|
||||
build/$(OS)/core/invocation.obj\
|
||||
build/$(OS)/core/spookyv2.obj\
|
||||
build/$(OS)/core/eng-malloc.obj\
|
||||
build/$(OS)/core/debugcollector.obj\
|
||||
build/$(OS)/core/drivenengine.obj\
|
||||
build/$(OS)/core/util.obj\
|
||||
build/$(OS)/core/luastack.obj\
|
||||
build/$(OS)/core/traceback.obj\
|
||||
build/$(OS)/core/planemap.obj\
|
||||
build/$(OS)/core/pprint.obj\
|
||||
build/$(OS)/core/luaconsole.obj\
|
||||
build/$(OS)/core/luavector.obj\
|
||||
build/$(OS)/core/idalloc.obj\
|
||||
build/$(OS)/core/globaldb.obj\
|
||||
build/$(OS)/core/sched.obj\
|
||||
build/$(OS)/core/http.obj\
|
||||
build/$(OS)/core/json.obj\
|
||||
build/$(OS)/core/table.obj\
|
||||
build/$(OS)/core/luasnap.obj\
|
||||
build/$(OS)/core/animqueue.obj\
|
||||
build/$(OS)/core/streambuffer.obj\
|
||||
build/$(OS)/core/source.obj\
|
||||
build/$(OS)/core/world-core.obj\
|
||||
build/$(OS)/core/world-accessor.obj\
|
||||
build/$(OS)/core/world-difftab.obj\
|
||||
build/$(OS)/core/world-diffxmit.obj\
|
||||
build/$(OS)/core/world-pairtab.obj\
|
||||
build/$(OS)/core/world-testing.obj\
|
||||
build/$(OS)/core/lpxserver.obj\
|
||||
build/$(OS)/core/lpxclient.obj\
|
||||
build/$(OS)/core/eng-tests.obj\
|
||||
build/$(OS)/core/printbuffer.obj\
|
||||
build/$(OS)/core/serializelua.obj\
|
||||
|
||||
|
||||
OBJ_DRV=\
|
||||
build/$(OS)/drv/driver.obj\
|
||||
build/$(OS)/drv/drvutil.obj\
|
||||
build/$(OS)/drv/osdrvutil.obj\
|
||||
build/$(OS)/drv/sslutil.obj\
|
||||
build/$(OS)/drv/readline.obj\
|
||||
|
||||
|
||||
#######################################################################
|
||||
##
|
||||
## Make rules for linux
|
||||
@@ -110,17 +25,20 @@ OBJ_DRV=\
|
||||
#######################################################################
|
||||
|
||||
ifeq "$(OS)" "Linux"
|
||||
OPT=-g -O0
|
||||
LUPREX_EXE=luprex
|
||||
LUPREXLIB_DLL=luprexlib.so
|
||||
LUPREXSTATIC_EXE=luprexstatic
|
||||
COMPILE=g++ -Wall $(OPT) -std=c++20 -fvisibility=hidden -c -MMD -fPIC -o
|
||||
LINKDLL=g++ -Wall $(OPT) -std=c++20 -export-dynamic -Wl,--no-allow-shlib-undefined -Wl,-z,defs -shared -o
|
||||
LINKEXE=g++ -Wall $(OPT) -std=c++20 -export-dynamic -o
|
||||
MAKEDEPS=true
|
||||
OPENSSL_INCLUDE=-I./ext/openssl-3.0.1/inc
|
||||
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_USE_POSIX
|
||||
LIBS=-L./ext/openssl-3.0.1/lib/linux -lssl -lcrypto -ldl
|
||||
OPT:=-g -O0
|
||||
LUPREX_EXE:=luprex
|
||||
LUPREXLIB_DLL:=luprexlib.so
|
||||
LUPREXSTATIC_EXE:=luprexstatic
|
||||
COMPILE:=g++ -Wall $(OPT) -std=c++20 -fvisibility=hidden -c -MMD -fPIC -o
|
||||
LINKDLL:=g++ -Wall $(OPT) -std=c++20 -export-dynamic -Wl,--no-allow-shlib-undefined -Wl,-z,defs -shared -o
|
||||
LINKEXE:=g++ -Wall $(OPT) -std=c++20 -export-dynamic -o
|
||||
MAKEDEPS:=true
|
||||
LIBS:=-L./ext/openssl-3.0.1/lib/linux -lssl -lcrypto -ldl
|
||||
CCJSON="build/$(OS)/compile_commands.json"
|
||||
|
||||
FLAGS_ERIS:=-DLUA_USE_APICHECK -DLUA_USE_POSIX
|
||||
FLAGS_CORE:=-I./ext/eris-master/src -I./cpp/wrap -I./cpp/core -I./ext
|
||||
FLAGS_DRV:=-I./ext/openssl-3.1.0/inc -I./src/drv -I./ext
|
||||
endif
|
||||
|
||||
#######################################################################
|
||||
@@ -133,26 +51,60 @@ ifeq "$(OS)" "Windows"
|
||||
ifeq "" "$(VSINSTALLDIR)"
|
||||
$(error You must use vcvars64.bat to set up the visual studio environment variables)
|
||||
endif
|
||||
OPT=/Od /Zi
|
||||
LUPREX_EXE=luprex.exe
|
||||
LUPREXLIB_DLL=luprexlib.dll
|
||||
LUPREXSTATIC_EXE=luprexstatic.exe
|
||||
COMPILE=CL $(OPT) /std:c++20 /EHsc /nologo /MD /TP /c /Fo:
|
||||
LINKDLL=CL $(OPT) /std:c++20 /EHsc /nologo /LDd /Fe:
|
||||
LINKEXE=CL $(OPT) /std:c++20 /EHsc /nologo /Fe:
|
||||
MAKEDEPS=g++ -Wall -std=c++20 -MMD -E -o
|
||||
OPENSSL_INCLUDE=-I./ext/openssl-3.1.0/inc
|
||||
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
|
||||
LIBS=ext/openssl-3.1.0/lib/visual/libcrypto.lib ext/openssl-3.1.0/lib/visual/libssl.lib ws2_32.lib crypt32.lib cryptui.lib user32.lib advapi32.lib
|
||||
OPT:=/Od /Zi
|
||||
LUPREX_EXE:=luprex.exe
|
||||
LUPREXLIB_DLL:=luprexlib.dll
|
||||
LUPREXSTATIC_EXE:=luprexstatic.exe
|
||||
COMPILE:=CL $(OPT) /std:c++20 /EHsc /nologo /MD /TP /c /Fo:
|
||||
LINKDLL:=CL $(OPT) /std:c++20 /EHsc /nologo /LDd /Fe:
|
||||
LINKEXE:=CL $(OPT) /std:c++20 /EHsc /nologo /Fe:
|
||||
MAKEDEPS:=g++ -Wall -std=c++20 -MMD -E -o
|
||||
LIBS:=ext/openssl-3.1.0/lib/visual/libcrypto.lib ext/openssl-3.1.0/lib/visual/libssl.lib ws2_32.lib crypt32.lib cryptui.lib user32.lib advapi32.lib
|
||||
CCJSON="build/$(OS)/compile_commands.json"
|
||||
|
||||
FLAGS_ERIS:=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
|
||||
FLAGS_CORE:=-I./ext/eris-master/src -I./cpp/wrap -I./cpp/core -I./ext
|
||||
FLAGS_DRV:=-I./ext/openssl-3.1.0/inc -I./src/drv -I./ext
|
||||
endif
|
||||
|
||||
#######################################################################
|
||||
##
|
||||
## List of all source files
|
||||
##
|
||||
#######################################################################
|
||||
|
||||
BASE_ERIS := \
|
||||
lapi lcode lctype ldebug ldo ldump lfunc lgc llex lmem lobject lopcodes \
|
||||
lparser lstate lstring ltable ltm lundump lvm lzio \
|
||||
lauxlib lbaselib lbitlib lcorolib ldblib liolib lmathlib loslib \
|
||||
lstrlib ltablib loadlib linit eris
|
||||
|
||||
BASE_CORE := \
|
||||
invocation spookyv2 eng-malloc debugcollector drivenengine util luastack \
|
||||
traceback planemap pprint luaconsole luavector idalloc globaldb sched http \
|
||||
json table luasnap animqueue streambuffer source world-core world-accessor \
|
||||
world-difftab world-diffxmit world-pairtab world-testing lpxserver lpxclient \
|
||||
eng-tests printbuffer serializelua
|
||||
|
||||
BASE_DRV := driver drvutil osdrvutil sslutil readline
|
||||
|
||||
#######################################################################
|
||||
##
|
||||
## Generate lists of OBJ files.
|
||||
##
|
||||
#######################################################################
|
||||
|
||||
OBJ_ERIS := $(patsubst %,build/$(OS)/eris/%.obj,$(BASE_ERIS))
|
||||
OBJ_CORE := $(patsubst %,build/$(OS)/core/%.obj,$(BASE_CORE))
|
||||
OBJ_DRV := $(patsubst %,build/$(OS)/drv/%.obj,$(BASE_DRV))
|
||||
|
||||
#######################################################################
|
||||
##
|
||||
## Make Rules
|
||||
##
|
||||
#######################################################################
|
||||
|
||||
all: build/$(OS)/$(LUPREX_EXE) build/$(OS)/$(LUPREXSTATIC_EXE) build/$(OS)/$(LUPREXLIB_DLL)
|
||||
all: build/$(OS)/$(LUPREX_EXE) build/$(OS)/$(LUPREXSTATIC_EXE) build/$(OS)/$(LUPREXLIB_DLL) $(CCJSON)
|
||||
|
||||
build/$(OS)/DIRECTORY:
|
||||
mkdir -p build/$(OS)/core build/$(OS)/eris build/$(OS)/drv
|
||||
@@ -168,23 +120,29 @@ build/$(OS)/$(LUPREXLIB_DLL): $(OBJ_ERIS) $(OBJ_CORE)
|
||||
$(LINKDLL) $@ $^
|
||||
|
||||
build/$(OS)/eris/%.obj: ext/eris-master/src/%.c build/$(OS)/DIRECTORY
|
||||
$(MAKEDEPS) $@d $(LUA_FLAGS) $<
|
||||
$(COMPILE) $@ $(LUA_FLAGS) $<
|
||||
$(MAKEDEPS) $@d $(FLAGS_ERIS) $<
|
||||
$(COMPILE) $@ $(FLAGS_ERIS) $<
|
||||
|
||||
build/$(OS)/core/%.obj: cpp/core/%.cpp build/$(OS)/DIRECTORY
|
||||
$(MAKEDEPS) $@d -I./ext/eris-master/src -I./cpp/wrap -I./cpp/core -I./ext $<
|
||||
$(COMPILE) $@ -I./ext/eris-master/src -I./cpp/wrap -I./cpp/core -I./ext $<
|
||||
$(MAKEDEPS) $@d $(FLAGS_CORE) $<
|
||||
$(COMPILE) $@ $(FLAGS_CORE) $<
|
||||
|
||||
build/$(OS)/drv/%.obj: cpp/drv/%.cpp build/$(OS)/DIRECTORY
|
||||
$(MAKEDEPS) $@d $(OPENSSL_INCLUDE) -I./src/drv -I./ext $<
|
||||
$(COMPILE) $@ $(OPENSSL_INCLUDE) -I./src/drv -I./ext $<
|
||||
$(MAKEDEPS) $@d $(FLAGS_DRV) $<
|
||||
$(COMPILE) $@ $(FLAGS_DRV) $<
|
||||
|
||||
$(CCJSON): Makefile add-compile-commands.py
|
||||
rm -rf $(CCJSON)
|
||||
python3 ./add-compile-commands.py "$(CCJSON)" "$(COMPILE)" "$(FLAGS_ERIS)" "build/$(OS)/eris/FILE.obj" "ext/eris-master/src/FILE.c" $(BASE_ERIS)
|
||||
python3 ./add-compile-commands.py "$(CCJSON)" "$(COMPILE)" "$(FLAGS_CORE)" "build/$(OS)/cpp/FILE.obj" "cpp/core/FILE.cpp" $(BASE_CORE)
|
||||
python3 ./add-compile-commands.py "$(CCJSON)" "$(COMPILE)" "$(FLAGS_DRV)" "build/$(OS)/drv/FILE.obj" "cpp/drv/FILE.cpp" $(BASE_DRV)
|
||||
|
||||
clean:
|
||||
rm -f luprex* luprex*.* *.pdb
|
||||
rm -f *.pdb
|
||||
rm -rf build
|
||||
|
||||
clean-os:
|
||||
rm -f luprex* luprex*.* *.pdb build/$(OS)/* build/$(OS)/*/*
|
||||
rm -f *.pdb build/$(OS)/* build/$(OS)/*/*
|
||||
|
||||
#######################################################################
|
||||
##
|
||||
|
||||
Reference in New Issue
Block a user