Refactor for DLL

This commit is contained in:
2023-02-14 13:14:18 -05:00
parent fb48329090
commit 569b8aef45
18 changed files with 2821 additions and 383 deletions

View File

@@ -1,117 +1,107 @@
ifeq ($(OS),mingw)
EXE=main.exe
LIBS=-L../mingwlib -lssl -lcrypto -lws2_32 -lcrypt32 -lcryptui
INCS=-I../mingwlib
LUAFLAGS=-DLUA_COMPAT_ALL
OPT=-g -O0
DRIVER=driver-mingw
else ifeq ($(OS),linux)
EXE=main
LIBS=-L../linuxlib -lssl -lcrypto
INCS=-I../linuxlib
LUAFLAGS=-DLUA_USE_POSIX
OPT=-g -O0
DRIVER=driver-linux
else
# In this case, any attempt to build luprex will trigger an error,
# But making 'clean' will still work.
ERROR=$(error You must specify OS=linux or OS=mingw)
EXE=main
LIBS=$(ERROR)
INCS=$(ERROR)
LUAFLAGS=$(ERROR)
OPT=$(ERROR)
DRIVER=driver-xxx
endif
all: main
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 \
obj/lua/lapi.o \
obj/lua/lcode.o \
obj/lua/lctype.o \
obj/lua/ldebug.o \
obj/lua/ldo.o \
obj/lua/ldump.o \
obj/lua/lfunc.o \
obj/lua/lgc.o \
obj/lua/llex.o \
obj/lua/lmem.o \
obj/lua/lobject.o \
obj/lua/lopcodes.o \
obj/lua/lparser.o \
obj/lua/lstate.o \
obj/lua/lstring.o \
obj/lua/ltable.o \
obj/lua/ltm.o \
obj/lua/lundump.o \
obj/lua/lvm.o \
obj/lua/lzio.o \
obj/lua/lauxlib.o \
obj/lua/lbaselib.o \
obj/lua/lbitlib.o \
obj/lua/lcorolib.o \
obj/lua/ldblib.o \
obj/lua/liolib.o \
obj/lua/lmathlib.o \
obj/lua/loslib.o \
obj/lua/lstrlib.o \
obj/lua/ltablib.o \
obj/lua/loadlib.o \
obj/lua/linit.o \
obj/lua/eris.o \
CORE_OBJ_FILES=\
obj/invocation.o\
obj/spookyv2.o\
obj/eng-malloc.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/http.o\
obj/json.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/eng-tests.o\
obj/printbuffer.o\
obj/driver-util.o\
obj/driver-ssl.o\
obj/$(DRIVER).o\
obj/cpp/invocation.o\
obj/cpp/spookyv2.o\
obj/cpp/eng-malloc.o\
obj/cpp/debugcollector.o\
obj/cpp/drivenengine.o\
obj/cpp/util.o\
obj/cpp/luastack.o\
obj/cpp/traceback.o\
obj/cpp/planemap.o\
obj/cpp/pprint.o\
obj/cpp/luaconsole.o\
obj/cpp/idalloc.o\
obj/cpp/globaldb.o\
obj/cpp/sched.o\
obj/cpp/http.o\
obj/cpp/json.o\
obj/cpp/table.o\
obj/cpp/gui.o\
obj/cpp/luasnap.o\
obj/cpp/animqueue.o\
obj/cpp/streambuffer.o\
obj/cpp/source.o\
obj/cpp/world-core.o\
obj/cpp/world-accessor.o\
obj/cpp/world-difftab.o\
obj/cpp/world-diffxmit.o\
obj/cpp/world-pairtab.o\
obj/cpp/world-testing.o\
obj/cpp/textgame.o\
obj/cpp/lpxserver.o\
obj/cpp/lpxclient.o\
obj/cpp/eng-tests.o\
obj/cpp/printbuffer.o\
lobj/%.o: ../eris-master/src/%.c
gcc -Wall $(OPT) -DLUA_USE_APICHECK $(LUAFLAGS) -c -MMD $< -o $@
DRV_OBJ_FILES=\
objdrv/drvutil.o\
objdrv/sslutil.o\
obj/%.o: cpp/%.cpp
g++ -std=c++17 -Wall $(OPT) -I../eris-master/src -Iwrap -Icpp $(INCS) -c -MMD $< -o $@
$(EXE): $(CORE_OBJ_FILES) $(LUA_OBJ_FILES)
g++ -std=c++17 -Wall $(OPT) -o $@ $(CORE_OBJ_FILES) $(LUA_OBJ_FILES) $(LIBS)
-include $(LUA_OBJ_FILES:%.o=%.d)
-include $(CORE_OBJ_FILES:%.o=%.d)
-include $(DRV_OBJ_FILES:%.o=%.d)
ifeq ($(OS),linux)
OPT=-g -O0
main: $(DRV_OBJ_FILES) $(CORE_OBJ_FILES) $(LUA_OBJ_FILES) objdrv/driver-linux.o
g++ -std=c++17 -export-dynamic -Wall $(OPT) -o $@ $(DRV_OBJ_FILES) $(CORE_OBJ_FILES) $(LUA_OBJ_FILES) objdrv/driver-linux.o -L../linuxlib -lssl -lcrypto -ldl
obj/lua/%.o: ../eris-master/src/%.c
gcc -Wall -fvisibility=hidden $(OPT) -DLUA_USE_APICHECK -DLUA_USE_POSIX -c -MMD $< -o $@
obj/cpp/%.o: cpp/%.cpp
g++ -Wall -fvisibility=hidden $(OPT) -std=c++17 -I../linuxlib -I../eris-master/src -Iwrap -Icpp -c -MMD $< -o $@
objdrv/%.o: drv/%.cpp
g++ -Wall -fvisibility=hidden $(OPT) -std=c++17 -I../linuxlib -Idrv -c -MMD $< -o $@
endif
clean:
rm -f main.exe main obj/* lobj/*
rm -f main.exe main obj/cpp/*.* objdrv/*.* obj/lua/*.*
-include $(CORE_OBJ_FILES:%.o=%.d)
-include $(LUA_OBJ_FILES:%.o=%.d)