Refactor for DLL
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user