2026-02-27 15:29:44 -05:00
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## This Makefile must be run from the top-level integration directory:
|
|
|
|
|
## make -f luprex/Makefile all
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
|
|
|
|
|
|
|
|
|
ifeq (,$(wildcard luprex/Makefile))
|
|
|
|
|
$(error This Makefile must be run from the top-level integration directory: make -f luprex/Makefile all)
|
|
|
|
|
endif
|
|
|
|
|
|
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))"
|
2025-06-16 19:58:26 -04:00
|
|
|
OS:=Linux
|
2023-05-09 22:12:17 -04:00
|
|
|
else ifneq "" "$(VSINSTALLDIR)"
|
2025-06-16 19:58:26 -04:00
|
|
|
OS:=Windows
|
2023-05-09 23:27:22 -04:00
|
|
|
else
|
2025-06-16 19:58:26 -04:00
|
|
|
OS:=""
|
2023-05-08 21:58:26 -04:00
|
|
|
endif
|
2023-02-21 15:28:45 -05:00
|
|
|
|
2023-05-08 21:58:26 -04:00
|
|
|
ifeq "$(OS)" ""
|
|
|
|
|
$(error Cannot figure out which OS to build for."
|
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
|
|
|
#######################################################################
|
|
|
|
|
##
|
2023-05-08 21:58:26 -04:00
|
|
|
## Make rules for linux
|
2023-02-21 15:28:45 -05:00
|
|
|
##
|
|
|
|
|
#######################################################################
|
|
|
|
|
|
2024-11-07 19:33:22 -05:00
|
|
|
ifeq "$(OS)" "Linux"
|
2025-06-16 19:58:26 -04:00
|
|
|
OPT:=-g -O0
|
|
|
|
|
LUPREX_EXE:=luprex
|
|
|
|
|
LUPREXLIB_DLL:=luprexlib.so
|
|
|
|
|
LUPREXSTATIC_EXE:=luprexstatic
|
2026-02-24 23:15:02 -05:00
|
|
|
COMPILE:=g++ -Wall $(OPT) -std=c++20 -fvisibility=hidden -c -MMD -MP -fPIC -o
|
2025-06-16 19:58:26 -04:00
|
|
|
LINKDLL:=g++ -Wall $(OPT) -std=c++20 -export-dynamic -Wl,--no-allow-shlib-undefined -Wl,-z,defs -shared -o
|
|
|
|
|
LINKEXE:=g++ -Wall $(OPT) -std=c++20 -export-dynamic -o
|
|
|
|
|
MAKEDEPS:=true
|
2026-02-27 15:29:44 -05:00
|
|
|
LIBS:=-Lluprex/ext/openssl-3.0.1/lib/linux -lssl -lcrypto -ldl
|
2025-06-16 19:58:26 -04:00
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
FLAGS_ERIS:=-DLUA_USE_APICHECK -DLUA_USE_POSIX
|
|
|
|
|
FLAGS_CORE:=-Iluprex/ext/eris-master/src -Iluprex/cpp/wrap -Iluprex/cpp/core -Iluprex/ext
|
|
|
|
|
FLAGS_DRV:=-Iluprex/ext/openssl-3.1.0/inc -Iluprex/cpp/drv -Iluprex/ext
|
2023-05-08 21:58:26 -04:00
|
|
|
endif
|
|
|
|
|
|
2023-05-09 22:12:17 -04:00
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## Make rules for visual
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
|
|
|
|
|
2024-11-07 19:33:22 -05:00
|
|
|
ifeq "$(OS)" "Windows"
|
2023-05-09 23:24:25 -04:00
|
|
|
ifeq "" "$(VSINSTALLDIR)"
|
|
|
|
|
$(error You must use vcvars64.bat to set up the visual studio environment variables)
|
|
|
|
|
endif
|
2025-06-16 19:58:26 -04:00
|
|
|
OPT:=/Od /Zi
|
|
|
|
|
LUPREX_EXE:=luprex.exe
|
|
|
|
|
LUPREXLIB_DLL:=luprexlib.dll
|
|
|
|
|
LUPREXSTATIC_EXE:=luprexstatic.exe
|
|
|
|
|
COMPILE:=CL $(OPT) /std:c++20 /EHsc /nologo /MD /TP /c /Fo:
|
|
|
|
|
LINKDLL:=CL $(OPT) /std:c++20 /EHsc /nologo /LDd /Fe:
|
|
|
|
|
LINKEXE:=CL $(OPT) /std:c++20 /EHsc /nologo /Fe:
|
|
|
|
|
MAKEDEPS:=g++ -Wall -std=c++20 -MMD -E -o
|
2026-02-27 15:29:44 -05:00
|
|
|
LIBS:=luprex/ext/openssl-3.1.0/lib/visual/libcrypto.lib luprex/ext/openssl-3.1.0/lib/visual/libssl.lib ws2_32.lib crypt32.lib cryptui.lib user32.lib advapi32.lib
|
2025-06-16 19:58:26 -04:00
|
|
|
|
|
|
|
|
FLAGS_ERIS:=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
|
2026-02-27 15:29:44 -05:00
|
|
|
FLAGS_CORE:=-Iluprex/ext/eris-master/src -Iluprex/cpp/wrap -Iluprex/cpp/core -Iluprex/ext
|
|
|
|
|
FLAGS_DRV:=-Iluprex/ext/openssl-3.1.0/inc -Iluprex/cpp/drv -Iluprex/ext
|
2023-05-09 22:14:29 -04:00
|
|
|
endif
|
|
|
|
|
|
2025-06-16 19:58:26 -04:00
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## List of all source files
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
|
|
|
|
|
|
|
|
|
BASE_ERIS := \
|
|
|
|
|
lapi lcode lctype ldebug ldo ldump lfunc lgc llex lmem lobject lopcodes \
|
|
|
|
|
lparser lstate lstring ltable ltm lundump lvm lzio \
|
|
|
|
|
lauxlib lbaselib lbitlib lcorolib ldblib liolib lmathlib loslib \
|
|
|
|
|
lstrlib ltablib loadlib linit eris
|
|
|
|
|
|
|
|
|
|
BASE_CORE := \
|
|
|
|
|
invocation spookyv2 eng-malloc debugcollector drivenengine util luastack \
|
2026-02-21 23:37:55 -05:00
|
|
|
traceback planemap pprint luavector idalloc sched http \
|
2026-02-24 23:44:10 -05:00
|
|
|
json table luasnap animqueue streambuffer source keywords world-core world-accessor \
|
2025-06-16 19:58:26 -04:00
|
|
|
world-difftab world-diffxmit world-pairtab world-testing lpxserver lpxclient \
|
2026-02-24 23:15:02 -05:00
|
|
|
unit-testing printbuffer serializelua
|
2025-06-16 19:58:26 -04:00
|
|
|
|
2026-01-09 14:28:58 -05:00
|
|
|
BASE_DRV := driver drvutil sslutil readline
|
2025-06-16 19:58:26 -04:00
|
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## Generate lists of OBJ files.
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
|
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
OBJ_ERIS := $(patsubst %,luprex/build/$(OS)/eris/%.obj,$(BASE_ERIS))
|
|
|
|
|
OBJ_CORE := $(patsubst %,luprex/build/$(OS)/core/%.obj,$(BASE_CORE))
|
|
|
|
|
OBJ_DRV := $(patsubst %,luprex/build/$(OS)/drv/%.obj,$(BASE_DRV))
|
2025-06-16 19:58:26 -04:00
|
|
|
|
2023-05-09 23:24:25 -04:00
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## Make Rules
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
2023-05-09 22:12:17 -04:00
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
all: luprex/build/$(OS)/$(LUPREX_EXE) luprex/build/$(OS)/$(LUPREXSTATIC_EXE) luprex/build/$(OS)/$(LUPREXLIB_DLL)
|
2023-05-09 22:12:17 -04:00
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
luprex/build/$(OS)/DIRECTORY:
|
|
|
|
|
mkdir -p luprex/build/$(OS)/core luprex/build/$(OS)/eris luprex/build/$(OS)/drv
|
|
|
|
|
touch luprex/build/$(OS)/DIRECTORY
|
2023-06-08 16:31:38 -04:00
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
luprex/build/$(OS)/$(LUPREX_EXE): luprex/build/$(OS)/$(LUPREXLIB_DLL) $(OBJ_DRV)
|
2023-05-10 14:09:08 -04:00
|
|
|
$(LINKEXE) $@ $(OBJ_DRV) $(LIBS)
|
2023-05-09 22:12:17 -04:00
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
luprex/build/$(OS)/$(LUPREXSTATIC_EXE): $(OBJ_DRV) $(OBJ_ERIS) $(OBJ_CORE)
|
2023-05-09 23:24:25 -04:00
|
|
|
$(LINKEXE) $@ $^ $(LIBS)
|
2023-05-09 18:43:40 -04:00
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
luprex/build/$(OS)/$(LUPREXLIB_DLL): $(OBJ_ERIS) $(OBJ_CORE)
|
2023-05-09 23:24:25 -04:00
|
|
|
$(LINKDLL) $@ $^
|
2023-05-09 22:12:17 -04:00
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
luprex/build/$(OS)/eris/%.obj: luprex/ext/eris-master/src/%.c luprex/build/$(OS)/DIRECTORY
|
2025-06-16 19:58:26 -04:00
|
|
|
$(MAKEDEPS) $@d $(FLAGS_ERIS) $<
|
|
|
|
|
$(COMPILE) $@ $(FLAGS_ERIS) $<
|
2023-05-09 22:12:17 -04:00
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
luprex/build/$(OS)/core/%.obj: luprex/cpp/core/%.cpp luprex/build/$(OS)/DIRECTORY
|
2025-06-16 19:58:26 -04:00
|
|
|
$(MAKEDEPS) $@d $(FLAGS_CORE) $<
|
|
|
|
|
$(COMPILE) $@ $(FLAGS_CORE) $<
|
2023-05-09 22:12:17 -04:00
|
|
|
|
2026-02-27 15:29:44 -05:00
|
|
|
luprex/build/$(OS)/drv/%.obj: luprex/cpp/drv/%.cpp luprex/build/$(OS)/DIRECTORY
|
2025-06-16 19:58:26 -04:00
|
|
|
$(MAKEDEPS) $@d $(FLAGS_DRV) $<
|
|
|
|
|
$(COMPILE) $@ $(FLAGS_DRV) $<
|
|
|
|
|
|
2023-02-21 15:28:45 -05:00
|
|
|
|
2023-05-08 21:58:26 -04:00
|
|
|
clean:
|
2026-02-27 15:29:44 -05:00
|
|
|
rm -f luprex/*.pdb
|
|
|
|
|
rm -rf luprex/build
|
2023-05-10 14:09:08 -04:00
|
|
|
|
|
|
|
|
clean-os:
|
2026-02-27 15:29:44 -05:00
|
|
|
rm -f luprex/*.pdb luprex/build/$(OS)/* luprex/build/$(OS)/*/*
|
2023-02-21 15:28:45 -05:00
|
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
|
##
|
|
|
|
|
## Automatically generated Make Dependencies
|
|
|
|
|
##
|
|
|
|
|
#######################################################################
|
2023-02-14 14:05:45 -05:00
|
|
|
|
2023-05-09 22:12:17 -04:00
|
|
|
-include $(OBJ_ERIS:%.obj=%.d)
|
|
|
|
|
-include $(OBJ_CORE:%.obj=%.d)
|
|
|
|
|
-include $(OBJ_DRV:%.obj=%.d)
|