all: main

LUA_OBJ_FILES=\
	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/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\


DRV_OBJ_FILES=\
	objdrv/drvutil.o\
	objdrv/sslutil.o\


-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/cpp/*.* objdrv/*.* obj/lua/*.*



