2023-02-21 15:28:45 -05:00
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## Auto detect Operating System
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
2023-02-20 16:02:18 -05:00
|
|
|
|
2023-02-20 17:47:22 -05:00
|
|
|
ifneq "" "$(findstring -linux-,$(MAKE_HOST))"
|
2023-02-21 15:28:45 -05:00
|
|
|
|
2023-02-20 17:53:18 -05:00
|
|
|
OS=linux
|
2023-02-21 15:28:45 -05:00
|
|
|
EXE=luprex
|
|
|
|
|
DLL=luprex.so
|
|
|
|
|
LIBS=-L./ext/openssl-mingw -lssl -lcrypto -ldl
|
2023-02-20 16:59:10 -05:00
|
|
|
LUAFLAGS=-DLUA_USE_APICHECK -DLUA_USE_POSIX
|
|
|
|
|
OPT=-g -O0
|
2023-02-21 15:28:45 -05:00
|
|
|
|
2023-02-20 17:47:22 -05:00
|
|
|
else ifneq "" "$(findstring cmd.exe,$(COMSPEC))"
|
2023-02-21 15:28:45 -05:00
|
|
|
|
2023-02-20 17:53:18 -05:00
|
|
|
OS=mingw
|
2023-02-21 15:28:45 -05:00
|
|
|
EXE=luprex.exe
|
|
|
|
|
DLL=luprex.dll
|
2023-02-20 17:47:22 -05:00
|
|
|
LIBS=-L./ext/openssl-mingw -lssl -lcrypto -lws2_32 -lcrypt32 -lcryptui
|
|
|
|
|
LUAFLAGS=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
|
|
|
|
|
OPT=-g -O0
|
2023-02-21 15:28:45 -05:00
|
|
|
|
2023-02-20 16:59:10 -05:00
|
|
|
else
|
2023-02-21 15:28:45 -05:00
|
|
|
|
2023-02-20 17:47:22 -05:00
|
|
|
$(error Cannot figure out whether to build the linux or mingw version)
|
2023-02-21 15:28:45 -05:00
|
|
|
|
2023-02-20 16:59:10 -05:00
|
|
|
endif
|
2023-02-21 15:28:45 -05:00
|
|
|
$(info Building for $(OS)...)
|
2023-02-20 16:59:10 -05:00
|
|
|
|
2023-02-14 14:05:45 -05:00
|
|
|
|
2023-02-21 15:28:45 -05:00
|
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## List of all OBJ files
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
2023-02-20 17:53:18 -05:00
|
|
|
|
2023-02-14 14:05:45 -05:00
|
|
|
OBJ_ERIS=\
|
|
|
|
|
obj/eris/lapi.o \
|
|
|
|
|
obj/eris/lcode.o \
|
|
|
|
|
obj/eris/lctype.o \
|
|
|
|
|
obj/eris/ldebug.o \
|
|
|
|
|
obj/eris/ldo.o \
|
|
|
|
|
obj/eris/ldump.o \
|
|
|
|
|
obj/eris/lfunc.o \
|
|
|
|
|
obj/eris/lgc.o \
|
|
|
|
|
obj/eris/llex.o \
|
|
|
|
|
obj/eris/lmem.o \
|
|
|
|
|
obj/eris/lobject.o \
|
|
|
|
|
obj/eris/lopcodes.o \
|
|
|
|
|
obj/eris/lparser.o \
|
|
|
|
|
obj/eris/lstate.o \
|
|
|
|
|
obj/eris/lstring.o \
|
|
|
|
|
obj/eris/ltable.o \
|
|
|
|
|
obj/eris/ltm.o \
|
|
|
|
|
obj/eris/lundump.o \
|
|
|
|
|
obj/eris/lvm.o \
|
|
|
|
|
obj/eris/lzio.o \
|
|
|
|
|
obj/eris/lauxlib.o \
|
|
|
|
|
obj/eris/lbaselib.o \
|
|
|
|
|
obj/eris/lbitlib.o \
|
|
|
|
|
obj/eris/lcorolib.o \
|
|
|
|
|
obj/eris/ldblib.o \
|
|
|
|
|
obj/eris/liolib.o \
|
|
|
|
|
obj/eris/lmathlib.o \
|
|
|
|
|
obj/eris/loslib.o \
|
|
|
|
|
obj/eris/lstrlib.o \
|
|
|
|
|
obj/eris/ltablib.o \
|
|
|
|
|
obj/eris/loadlib.o \
|
|
|
|
|
obj/eris/linit.o \
|
|
|
|
|
obj/eris/eris.o \
|
|
|
|
|
|
|
|
|
|
OBJ_CORE=\
|
|
|
|
|
obj/core/invocation.o\
|
|
|
|
|
obj/core/spookyv2.o\
|
|
|
|
|
obj/core/eng-malloc.o\
|
|
|
|
|
obj/core/debugcollector.o\
|
|
|
|
|
obj/core/drivenengine.o\
|
|
|
|
|
obj/core/util.o\
|
|
|
|
|
obj/core/luastack.o\
|
|
|
|
|
obj/core/traceback.o\
|
|
|
|
|
obj/core/planemap.o\
|
|
|
|
|
obj/core/pprint.o\
|
|
|
|
|
obj/core/luaconsole.o\
|
|
|
|
|
obj/core/idalloc.o\
|
|
|
|
|
obj/core/globaldb.o\
|
|
|
|
|
obj/core/sched.o\
|
|
|
|
|
obj/core/http.o\
|
|
|
|
|
obj/core/json.o\
|
|
|
|
|
obj/core/table.o\
|
|
|
|
|
obj/core/gui.o\
|
|
|
|
|
obj/core/luasnap.o\
|
|
|
|
|
obj/core/animqueue.o\
|
|
|
|
|
obj/core/streambuffer.o\
|
|
|
|
|
obj/core/source.o\
|
|
|
|
|
obj/core/world-core.o\
|
|
|
|
|
obj/core/world-accessor.o\
|
|
|
|
|
obj/core/world-difftab.o\
|
|
|
|
|
obj/core/world-diffxmit.o\
|
|
|
|
|
obj/core/world-pairtab.o\
|
|
|
|
|
obj/core/world-testing.o\
|
|
|
|
|
obj/core/textgame.o\
|
|
|
|
|
obj/core/lpxserver.o\
|
|
|
|
|
obj/core/lpxclient.o\
|
|
|
|
|
obj/core/eng-tests.o\
|
|
|
|
|
obj/core/printbuffer.o\
|
|
|
|
|
|
|
|
|
|
OBJ_DRV=\
|
|
|
|
|
obj/drv/drvutil.o\
|
|
|
|
|
obj/drv/sslutil.o\
|
2023-02-21 15:28:45 -05:00
|
|
|
obj/drv/driver-$(OS).o\
|
2023-02-14 14:05:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-21 15:28:45 -05:00
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## Make rules
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
|
|
|
|
|
|
|
|
|
GPP=g++ -Wall -fvisibility=hidden $(OPT) -std=c++17 -MMD
|
|
|
|
|
|
|
|
|
|
all: $(EXE) $(DLL)
|
|
|
|
|
|
|
|
|
|
$(EXE): $(OBJ_DRV)
|
|
|
|
|
$(GPP) -o $@ $(OBJ_DRV) -L./ext/openssl-linux -lssl -lcrypto -ldl
|
|
|
|
|
|
|
|
|
|
$(DLL): $(OBJ_ERIS) $(OBJ_CORE)
|
|
|
|
|
$(GPP) -export-dynamic -Wl,--no-allow-shlib-undefined -Wl,-z,defs -shared -o $@ $^
|
2023-02-14 14:05:45 -05:00
|
|
|
|
|
|
|
|
obj/eris/%.o: ext/eris-master/src/%.c
|
2023-02-21 15:28:45 -05:00
|
|
|
$(GPP) -fPIC $(LUAFLAGS) -o $@ -c $<
|
2023-02-14 14:05:45 -05:00
|
|
|
|
|
|
|
|
obj/core/%.o: cpp/core/%.cpp
|
2023-02-21 15:28:45 -05:00
|
|
|
$(GPP) -fPIC -I./ext/eris-master/src -I./cpp/wrap -I./cpp/core -o $@ -c $<
|
2023-02-14 14:05:45 -05:00
|
|
|
|
|
|
|
|
obj/drv/%.o: cpp/drv/%.cpp
|
2023-02-21 15:28:45 -05:00
|
|
|
$(GPP) -I./ext -I./src/drv -o $@ -c $<
|
2023-02-14 14:05:45 -05:00
|
|
|
|
|
|
|
|
clean:
|
2023-02-21 15:28:45 -05:00
|
|
|
rm -f luprex luprex.exe luprex.so luprex.dll obj/core/*.* obj/drv/*.* obj/eris/*.*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## Automatically generated Make Dependencies
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
2023-02-14 14:05:45 -05:00
|
|
|
|
2023-02-20 16:02:18 -05:00
|
|
|
-include $(OBJ_ERIS:%.o=%.d)
|
2023-02-21 15:28:45 -05:00
|
|
|
-include $(OBJ_CORE:%.o=%.d)
|
|
|
|
|
-include $(OBJ_DRV:%.o=%.d)
|
2023-02-14 14:05:45 -05:00
|
|
|
|