Makefile now uses separate build directories for different OS versions
This commit is contained in:
1
luprex/.gitignore
vendored
1
luprex/.gitignore
vendored
@@ -19,6 +19,7 @@ luprex
|
|||||||
*.pdb
|
*.pdb
|
||||||
|
|
||||||
obj/**
|
obj/**
|
||||||
|
build/**
|
||||||
.vscode/**
|
.vscode/**
|
||||||
ext/eris-master/src/lua
|
ext/eris-master/src/lua
|
||||||
ext/eris-master/src/luac
|
ext/eris-master/src/luac
|
||||||
|
|||||||
173
luprex/Makefile
173
luprex/Makefile
@@ -27,81 +27,81 @@ $(info Building for $(OS)...)
|
|||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
OBJ_ERIS=\
|
OBJ_ERIS=\
|
||||||
obj/eris/lapi.obj \
|
obj/$(OS)/eris/lapi.obj \
|
||||||
obj/eris/lcode.obj \
|
obj/$(OS)/eris/lcode.obj \
|
||||||
obj/eris/lctype.obj \
|
obj/$(OS)/eris/lctype.obj \
|
||||||
obj/eris/ldebug.obj \
|
obj/$(OS)/eris/ldebug.obj \
|
||||||
obj/eris/ldo.obj \
|
obj/$(OS)/eris/ldo.obj \
|
||||||
obj/eris/ldump.obj \
|
obj/$(OS)/eris/ldump.obj \
|
||||||
obj/eris/lfunc.obj \
|
obj/$(OS)/eris/lfunc.obj \
|
||||||
obj/eris/lgc.obj \
|
obj/$(OS)/eris/lgc.obj \
|
||||||
obj/eris/llex.obj \
|
obj/$(OS)/eris/llex.obj \
|
||||||
obj/eris/lmem.obj \
|
obj/$(OS)/eris/lmem.obj \
|
||||||
obj/eris/lobject.obj \
|
obj/$(OS)/eris/lobject.obj \
|
||||||
obj/eris/lopcodes.obj \
|
obj/$(OS)/eris/lopcodes.obj \
|
||||||
obj/eris/lparser.obj \
|
obj/$(OS)/eris/lparser.obj \
|
||||||
obj/eris/lstate.obj \
|
obj/$(OS)/eris/lstate.obj \
|
||||||
obj/eris/lstring.obj \
|
obj/$(OS)/eris/lstring.obj \
|
||||||
obj/eris/ltable.obj \
|
obj/$(OS)/eris/ltable.obj \
|
||||||
obj/eris/ltm.obj \
|
obj/$(OS)/eris/ltm.obj \
|
||||||
obj/eris/lundump.obj \
|
obj/$(OS)/eris/lundump.obj \
|
||||||
obj/eris/lvm.obj \
|
obj/$(OS)/eris/lvm.obj \
|
||||||
obj/eris/lzio.obj \
|
obj/$(OS)/eris/lzio.obj \
|
||||||
obj/eris/lauxlib.obj \
|
obj/$(OS)/eris/lauxlib.obj \
|
||||||
obj/eris/lbaselib.obj \
|
obj/$(OS)/eris/lbaselib.obj \
|
||||||
obj/eris/lbitlib.obj \
|
obj/$(OS)/eris/lbitlib.obj \
|
||||||
obj/eris/lcorolib.obj \
|
obj/$(OS)/eris/lcorolib.obj \
|
||||||
obj/eris/ldblib.obj \
|
obj/$(OS)/eris/ldblib.obj \
|
||||||
obj/eris/liolib.obj \
|
obj/$(OS)/eris/liolib.obj \
|
||||||
obj/eris/lmathlib.obj \
|
obj/$(OS)/eris/lmathlib.obj \
|
||||||
obj/eris/loslib.obj \
|
obj/$(OS)/eris/loslib.obj \
|
||||||
obj/eris/lstrlib.obj \
|
obj/$(OS)/eris/lstrlib.obj \
|
||||||
obj/eris/ltablib.obj \
|
obj/$(OS)/eris/ltablib.obj \
|
||||||
obj/eris/loadlib.obj \
|
obj/$(OS)/eris/loadlib.obj \
|
||||||
obj/eris/linit.obj \
|
obj/$(OS)/eris/linit.obj \
|
||||||
obj/eris/eris.obj \
|
obj/$(OS)/eris/eris.obj \
|
||||||
|
|
||||||
OBJ_CORE=\
|
OBJ_CORE=\
|
||||||
obj/core/invocation.obj\
|
obj/$(OS)/core/invocation.obj\
|
||||||
obj/core/spookyv2.obj\
|
obj/$(OS)/core/spookyv2.obj\
|
||||||
obj/core/eng-malloc.obj\
|
obj/$(OS)/core/eng-malloc.obj\
|
||||||
obj/core/debugcollector.obj\
|
obj/$(OS)/core/debugcollector.obj\
|
||||||
obj/core/drivenengine.obj\
|
obj/$(OS)/core/drivenengine.obj\
|
||||||
obj/core/util.obj\
|
obj/$(OS)/core/util.obj\
|
||||||
obj/core/luastack.obj\
|
obj/$(OS)/core/luastack.obj\
|
||||||
obj/core/traceback.obj\
|
obj/$(OS)/core/traceback.obj\
|
||||||
obj/core/planemap.obj\
|
obj/$(OS)/core/planemap.obj\
|
||||||
obj/core/pprint.obj\
|
obj/$(OS)/core/pprint.obj\
|
||||||
obj/core/luaconsole.obj\
|
obj/$(OS)/core/luaconsole.obj\
|
||||||
obj/core/idalloc.obj\
|
obj/$(OS)/core/idalloc.obj\
|
||||||
obj/core/globaldb.obj\
|
obj/$(OS)/core/globaldb.obj\
|
||||||
obj/core/sched.obj\
|
obj/$(OS)/core/sched.obj\
|
||||||
obj/core/http.obj\
|
obj/$(OS)/core/http.obj\
|
||||||
obj/core/json.obj\
|
obj/$(OS)/core/json.obj\
|
||||||
obj/core/table.obj\
|
obj/$(OS)/core/table.obj\
|
||||||
obj/core/gui.obj\
|
obj/$(OS)/core/gui.obj\
|
||||||
obj/core/luasnap.obj\
|
obj/$(OS)/core/luasnap.obj\
|
||||||
obj/core/animqueue.obj\
|
obj/$(OS)/core/animqueue.obj\
|
||||||
obj/core/streambuffer.obj\
|
obj/$(OS)/core/streambuffer.obj\
|
||||||
obj/core/source.obj\
|
obj/$(OS)/core/source.obj\
|
||||||
obj/core/world-core.obj\
|
obj/$(OS)/core/world-core.obj\
|
||||||
obj/core/world-accessor.obj\
|
obj/$(OS)/core/world-accessor.obj\
|
||||||
obj/core/world-difftab.obj\
|
obj/$(OS)/core/world-difftab.obj\
|
||||||
obj/core/world-diffxmit.obj\
|
obj/$(OS)/core/world-diffxmit.obj\
|
||||||
obj/core/world-pairtab.obj\
|
obj/$(OS)/core/world-pairtab.obj\
|
||||||
obj/core/world-testing.obj\
|
obj/$(OS)/core/world-testing.obj\
|
||||||
obj/core/textgame.obj\
|
obj/$(OS)/core/textgame.obj\
|
||||||
obj/core/lpxserver.obj\
|
obj/$(OS)/core/lpxserver.obj\
|
||||||
obj/core/lpxclient.obj\
|
obj/$(OS)/core/lpxclient.obj\
|
||||||
obj/core/eng-tests.obj\
|
obj/$(OS)/core/eng-tests.obj\
|
||||||
obj/core/printbuffer.obj\
|
obj/$(OS)/core/printbuffer.obj\
|
||||||
obj/core/serializelua.obj\
|
obj/$(OS)/core/serializelua.obj\
|
||||||
|
|
||||||
|
|
||||||
OBJ_DRV=\
|
OBJ_DRV=\
|
||||||
obj/drv/driver.obj\
|
obj/$(OS)/drv/driver.obj\
|
||||||
obj/drv/drvutil.obj\
|
obj/$(OS)/drv/drvutil.obj\
|
||||||
obj/drv/sslutil.obj\
|
obj/$(OS)/drv/sslutil.obj\
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
@@ -115,10 +115,11 @@ ifeq "$(OS)" "linux"
|
|||||||
LUPREX_EXE=luprex
|
LUPREX_EXE=luprex
|
||||||
LUPREXLIB_DLL=luprexlib.so
|
LUPREXLIB_DLL=luprexlib.so
|
||||||
LUPREXSTATIC_EXE=luprexstatic
|
LUPREXSTATIC_EXE=luprexstatic
|
||||||
MAKEDEPS=true
|
|
||||||
COMPILE=g++ -Wall $(OPT) -std=c++17 -fvisibility=hidden -c -MMD -fPIC -o
|
COMPILE=g++ -Wall $(OPT) -std=c++17 -fvisibility=hidden -c -MMD -fPIC -o
|
||||||
LINKDLL=g++ -Wall $(OPT) -std=c++17 -export-dynamic -Wl,--no-allow-shlib-undefined -Wl,-z,defs -shared -o
|
LINKDLL=g++ -Wall $(OPT) -std=c++17 -export-dynamic -Wl,--no-allow-shlib-undefined -Wl,-z,defs -shared -o
|
||||||
LINKEXE=g++ -Wall $(OPT) -std=c++17 -o
|
LINKEXE=g++ -Wall $(OPT) -std=c++17 -o
|
||||||
|
MAKEDEPS=true
|
||||||
|
MAKEPDB=true
|
||||||
OPENSSL_INCLUDE=-I./ext/openssl-3.0.1/inc
|
OPENSSL_INCLUDE=-I./ext/openssl-3.0.1/inc
|
||||||
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_USE_POSIX
|
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_USE_POSIX
|
||||||
LIBS=-L./ext/openssl-3.0.1/lib/linux -lssl -lcrypto -ldl
|
LIBS=-L./ext/openssl-3.0.1/lib/linux -lssl -lcrypto -ldl
|
||||||
@@ -136,10 +137,11 @@ ifeq "$(OS)" "mingw"
|
|||||||
LUPREX_EXE=luprex.exe
|
LUPREX_EXE=luprex.exe
|
||||||
LUPREXLIB_DLL=luprexlib.dll
|
LUPREXLIB_DLL=luprexlib.dll
|
||||||
LUPREXSTATIC_EXE=luprexstatic.exe
|
LUPREXSTATIC_EXE=luprexstatic.exe
|
||||||
MAKEDEPS=true
|
|
||||||
COMPILE=g++ -Wall $(OPT) -std=c++17 -fvisibility=hidden -c -MMD -fPIC -o
|
COMPILE=g++ -Wall $(OPT) -std=c++17 -fvisibility=hidden -c -MMD -fPIC -o
|
||||||
LINKDLL=g++ -Wall $(OPT) -std=c++17 -Wl,--no-allow-shlib-undefined -shared -o
|
LINKDLL=g++ -Wall $(OPT) -std=c++17 -Wl,--no-allow-shlib-undefined -shared -o
|
||||||
LINKEXE=g++ -Wall $(OPT) -std=c++17 -o
|
LINKEXE=g++ -Wall $(OPT) -std=c++17 -o
|
||||||
|
MAKEDEPS=true
|
||||||
|
MAKEPDB=./ext/cv2pdb.exe
|
||||||
OPENSSL_INCLUDE=-I./ext/openssl-3.0.1/inc
|
OPENSSL_INCLUDE=-I./ext/openssl-3.0.1/inc
|
||||||
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
|
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
|
||||||
LIBS=-L./ext/openssl-3.0.1/lib/mingw -lssl -lcrypto -lws2_32 -lcrypt32 -lcryptui
|
LIBS=-L./ext/openssl-3.0.1/lib/mingw -lssl -lcrypto -lws2_32 -lcrypt32 -lcryptui
|
||||||
@@ -160,10 +162,11 @@ ifeq "$(OS)" "visual"
|
|||||||
LUPREX_EXE=luprex.exe
|
LUPREX_EXE=luprex.exe
|
||||||
LUPREXLIB_DLL=luprexlib.dll
|
LUPREXLIB_DLL=luprexlib.dll
|
||||||
LUPREXSTATIC_EXE=luprexstatic.exe
|
LUPREXSTATIC_EXE=luprexstatic.exe
|
||||||
MAKEDEPS=g++ -Wall -std=c++17 -MMD -E -o
|
|
||||||
COMPILE=CL $(OPT) /std:c++17 /EHsc /nologo /MD /TP /c /Fo:
|
COMPILE=CL $(OPT) /std:c++17 /EHsc /nologo /MD /TP /c /Fo:
|
||||||
LINKDLL=CL $(OPT) /std:c++17 /EHsc /nologo /LDd /Fe:
|
LINKDLL=CL $(OPT) /std:c++17 /EHsc /nologo /LDd /Fe:
|
||||||
LINKEXE=CL $(OPT) /std:c++17 /EHsc /nologo /Fe:
|
LINKEXE=CL $(OPT) /std:c++17 /EHsc /nologo /Fe:
|
||||||
|
MAKEDEPS=g++ -Wall -std=c++17 -MMD -E -o
|
||||||
|
MAKEPDB=true
|
||||||
OPENSSL_INCLUDE=-I./ext/openssl-3.1.0/inc
|
OPENSSL_INCLUDE=-I./ext/openssl-3.1.0/inc
|
||||||
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
|
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
|
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
|
||||||
@@ -175,31 +178,37 @@ endif
|
|||||||
##
|
##
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
all: $(LUPREX_EXE) $(LUPREXSTATIC_EXE) $(LUPREXLIB_DLL)
|
all: build/$(OS)/$(LUPREX_EXE) build/$(OS)/$(LUPREXSTATIC_EXE) build/$(OS)/$(LUPREXLIB_DLL)
|
||||||
|
|
||||||
$(LUPREX_EXE): $(LUPREXLIB_DLL) $(OBJ_DRV)
|
build/$(OS)/$(LUPREX_EXE): build/$(OS)/$(LUPREXLIB_DLL) $(OBJ_DRV)
|
||||||
$(LINKEXE) $@ $(OBJ_DRV) $(LIBS)
|
$(LINKEXE) $@ $(OBJ_DRV) $(LIBS)
|
||||||
|
$(MAKEPDB) $@
|
||||||
|
|
||||||
$(LUPREXSTATIC_EXE): $(OBJ_DRV) $(OBJ_ERIS) $(OBJ_CORE)
|
build/$(OS)/$(LUPREXSTATIC_EXE): $(OBJ_DRV) $(OBJ_ERIS) $(OBJ_CORE)
|
||||||
$(LINKEXE) $@ $^ $(LIBS)
|
$(LINKEXE) $@ $^ $(LIBS)
|
||||||
|
$(MAKEPDB) $@
|
||||||
|
|
||||||
$(LUPREXLIB_DLL): $(OBJ_ERIS) $(OBJ_CORE)
|
build/$(OS)/$(LUPREXLIB_DLL): $(OBJ_ERIS) $(OBJ_CORE)
|
||||||
$(LINKDLL) $@ $^
|
$(LINKDLL) $@ $^
|
||||||
|
$(MAKEPDB) $@
|
||||||
|
|
||||||
obj/eris/%.obj: ext/eris-master/src/%.c
|
obj/$(OS)/eris/%.obj: ext/eris-master/src/%.c
|
||||||
$(MAKEDEPS) $@d $(LUA_FLAGS) $<
|
$(MAKEDEPS) $@d $(LUA_FLAGS) $<
|
||||||
$(COMPILE) $@ $(LUA_FLAGS) $<
|
$(COMPILE) $@ $(LUA_FLAGS) $<
|
||||||
|
|
||||||
obj/core/%.obj: cpp/core/%.cpp
|
obj/$(OS)/core/%.obj: cpp/core/%.cpp
|
||||||
$(MAKEDEPS) $@d -I./ext/eris-master/src -I./cpp/wrap -I./cpp/core $<
|
$(MAKEDEPS) $@d -I./ext/eris-master/src -I./cpp/wrap -I./cpp/core $<
|
||||||
$(COMPILE) $@ -I./ext/eris-master/src -I./cpp\wrap -I./cpp/core $<
|
$(COMPILE) $@ -I./ext/eris-master/src -I./cpp\wrap -I./cpp/core $<
|
||||||
|
|
||||||
obj/drv/%.obj: cpp/drv/%.cpp
|
obj/$(OS)/drv/%.obj: cpp/drv/%.cpp
|
||||||
$(MAKEDEPS) $@d $(OPENSSL_INCLUDE) -I./src/drv $<
|
$(MAKEDEPS) $@d $(OPENSSL_INCLUDE) -I./src/drv $<
|
||||||
$(COMPILE) $@ $(OPENSSL_INCLUDE) -I./src/drv $<
|
$(COMPILE) $@ $(OPENSSL_INCLUDE) -I./src/drv $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f luprex luprexstatic *.exe *.so *.dll *.ilk *.exp *.pdb *.lib obj/core/*.* obj/drv/*.* obj/eris/*.*
|
rm -f luprex* luprex*.* *.pdb build/*/* obj/*/*/*
|
||||||
|
|
||||||
|
clean-os:
|
||||||
|
rm -f luprex* luprex*.* *.pdb build/$(OS)/* obj/$(OS)/*/*
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
##
|
##
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ static bool sbwrite_file(std::ostream *s, const char *fn) {
|
|||||||
|
|
||||||
std::string package_lua_source(const std::string &base, std::ostream *s) {
|
std::string package_lua_source(const std::string &base, std::ostream *s) {
|
||||||
std::string err;
|
std::string err;
|
||||||
std::string cfn = base + "/lua/control.lst";
|
std::string cfn = base + "/../../lua/control.lst";
|
||||||
std::string ctrl = read_file(cfn.c_str(), err);
|
std::string ctrl = read_file(cfn.c_str(), err);
|
||||||
if (!err.empty()) {
|
if (!err.empty()) {
|
||||||
return err;
|
return err;
|
||||||
@@ -166,7 +166,7 @@ std::string package_lua_source(const std::string &base, std::ostream *s) {
|
|||||||
sbwrite_string(s, names[i]);
|
sbwrite_string(s, names[i]);
|
||||||
}
|
}
|
||||||
for (int i = 0; i < int(names.size()); i++) {
|
for (int i = 0; i < int(names.size()); i++) {
|
||||||
std::string lfn = base + "/lua/" + names[i];
|
std::string lfn = base + "/../../lua/" + names[i];
|
||||||
if (!sbwrite_file(s, lfn.c_str())) {
|
if (!sbwrite_file(s, lfn.c_str())) {
|
||||||
return std::string("Cannot read source file: ") + lfn;
|
return std::string("Cannot read source file: ") + lfn;
|
||||||
}
|
}
|
||||||
|
|||||||
0
luprex/obj/mingw/core/.gitkeep
Normal file
0
luprex/obj/mingw/core/.gitkeep
Normal file
0
luprex/obj/mingw/drv/.gitkeep
Normal file
0
luprex/obj/mingw/drv/.gitkeep
Normal file
0
luprex/obj/mingw/eris/.gitkeep
Normal file
0
luprex/obj/mingw/eris/.gitkeep
Normal file
0
luprex/obj/visual/core/.gitkeep
Normal file
0
luprex/obj/visual/core/.gitkeep
Normal file
0
luprex/obj/visual/drv/.gitkeep
Normal file
0
luprex/obj/visual/drv/.gitkeep
Normal file
0
luprex/obj/visual/eris/.gitkeep
Normal file
0
luprex/obj/visual/eris/.gitkeep
Normal file
Reference in New Issue
Block a user