@@ -16,6 +16,7 @@ XCODEBUILD ?= xcodebuild
1616NDK_TOOLCHAIN_BIN ?= $(wildcard $(ANDROID_NDK_ROOT ) /toolchains/llvm/prebuilt/* /bin)
1717ZIP_URL ?=
1818ZIP_URL_DOWNLOAD_OUTPUT ?= /tmp/godot-lua-pluginscript-unzip-to-build.zip
19+ ZIP_TEMP_FOLDER ?= /tmp/godot-lua-pluginscript-unzip-to-build
1920
2021
2122CFLAGS += -std=c11 -Ilib/godot-headers -Ilib/high-level-gdnative -Ilib/luajit/src
@@ -36,24 +37,39 @@ _STRIP = $(CROSS)$(STRIP)
3637SRC = language_gdnative.c
3738OBJS = $(SRC:.c=.o ) init_script.o
3839BUILT_OBJS = $(addprefix build/% /,$(OBJS ) )
39- MAKE_LUAJIT_OUTPUT = build/%/luajit/src/luajit.o build/%/luajit/src/lua51.dll build/%/luajit/src/libluajit.a
40+ LUAJIT_MAKE_OUTPUT = build/%/luajit/src/luajit.o build/%/luajit/src/lua51.dll build/%/luajit/src/libluajit.a
41+
42+ PLUGIN_SRC = plugin/export_plugin.lua \
43+ plugin/in_editor_callbacks/.gdignore \
44+ plugin/in_editor_callbacks/init.lua \
45+ plugin/lua_repl.lua \
46+ plugin/lua_repl.tscn \
47+ plugin/luasrcdiet/.gdignore \
48+ plugin/plugin.cfg \
49+ plugin/plugin.gd
4050
4151GDNLIB_ENTRY_PREFIX = addons/godot-lua-pluginscript
4252BUILD_FOLDERS = \
43- build build/native build/$(GDNLIB_ENTRY_PREFIX ) \
53+ build build/native build/$(GDNLIB_ENTRY_PREFIX ) build/jit \
4454 build/windows_x86 build/windows_x86_64 \
4555 build/linux_x86 build/linux_x86_64 \
4656 build/osx_x86_64 build/osx_arm64 build/osx_arm64_x86_64 \
4757 build/ios_armv7s build/ios_arm64 build/ios_simulator_arm64 build/ios_simulator_x86_64 build/ios_simulator_arm64_x86_64 \
4858 build/android_armv7a build/android_aarch64 build/android_x86 build/android_x86_64
4959
60+ LUAJIT_JITLIB_SRC = bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua \
61+ dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua \
62+ dis_arm64be.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua \
63+ dis_mips64.lua dis_mips64el.lua vmdef.lua
64+ LUAJIT_JITLIB_DEST = $(addprefix build/jit/,$(LUAJIT_JITLIB_SRC ) )
65+
5066LUASRCDIET_SRC = $(wildcard lib/luasrcdiet/luasrcdiet/* .lua) lib/luasrcdiet/COPYRIGHT lib/luasrcdiet/COPYRIGHT_Lua51
5167LUASRCDIET_DEST = $(addprefix plugin/luasrcdiet/,$(notdir $(LUASRCDIET_SRC ) ) )
5268LUASRCDIET_FLAGS = --maximum --quiet --noopt-binequiv
5369
5470DIST_BUILT_LIBS = $(filter-out build/osx_arm64/% build/osx_x86_64/% build/ios_simulator_arm64/% build/ios_simulator_x86_64/% ,$(wildcard build/* /* lua* .* ) )
5571DIST_SRC = LICENSE
56- DIST_ADDONS_SRC = LICENSE lps_coroutine.lua lua_pluginscript.gdnlib build/.gdignore $(wildcard build/jit/ * .lua plugin/ * . * plugin/in_editor_callbacks/ * plugin/ * /.gdignore ) $(DIST_BUILT_LIBS ) $(LUASRCDIET_DEST )
72+ DIST_ADDONS_SRC = LICENSE lps_coroutine.lua lua_pluginscript.gdnlib build/.gdignore $(PLUGIN_SRC ) $(DIST_BUILT_LIBS ) $(LUASRCDIET_DEST ) $( LUAJIT_JITLIB_DEST )
5773DIST_ZIP_SRC = $(DIST_SRC ) $(addprefix $(GDNLIB_ENTRY_PREFIX ) /,$(DIST_ADDONS_SRC ) )
5874DIST_DEST = $(addprefix build/,$(DIST_SRC ) ) $(addprefix build/$(GDNLIB_ENTRY_PREFIX ) /,$(DIST_ADDONS_SRC ) )
5975
@@ -119,31 +135,36 @@ ifneq (,$(CODE_SIGN_IDENTITY))
119135endif
120136
121137define GEN_TEST
122- test-$1: $1 $(LUASRCDIET_DEST ) $(DIST_DEST ) build/project.godot
138+ test-$1: $1 $(LUASRCDIET_DEST ) $(LUAJIT_JITLIB_DEST ) $( DIST_DEST ) build/project.godot
123139 @mkdir -p $(dir build/addons/godot-lua-pluginscript/$2)
124140 cp $2 build/addons/godot-lua-pluginscript/$2
125141 $(GODOT_BIN ) --path build --no-window --quit --script "$(CURDIR ) /src/test/init.lua"
126142endef
127143
128144# Avoid removing intermediate files created by chained implicit rules
129- .PRECIOUS : build/% /luajit build/% /init_script.c $(BUILT_OBJS ) build/% /lua51.dll $(MAKE_LUAJIT_OUTPUT )
145+ .PRECIOUS : build/% /luajit build/% /init_script.c $(BUILT_OBJS ) build/% /lua51.dll $(LUAJIT_MAKE_OUTPUT )
130146
131147$(BUILD_FOLDERS ) :
132148 mkdir -p $@
133149
134150build/% /language_gdnative.o : src/language_gdnative.c lib/high-level-gdnative/hgdn.h
135151 $(_CC ) -o $@ $< -c $(CFLAGS )
136152
137- $(MAKE_LUAJIT_OUTPUT ) : | build/% /luajit build/jit
153+ $(LUAJIT_MAKE_OUTPUT ) : | build/% /luajit
138154 $(MAKE ) -C $(firstword $|) $(and $(TARGET_SYS ) ,TARGET_SYS=$(TARGET_SYS ) ) $(MAKE_LUAJIT_ARGS )
139- @mkdir -p build/jit
140- cp $(firstword $|) /src/ jit/vmdef.lua build/jit
155+ build/ % /luajit/src/jit/vmdef.lua : | build/% /luajit
156+ $( MAKE ) -C $(firstword $|) /src jit/vmdef.lua $( MAKE_LUAJIT_ARGS )
141157build/% /lua51.dll : build/% /luajit/src/lua51.dll
142158 cp $< $@
143159build/% /luajit : | build/%
144160 cp -r lib/luajit $@
145- build/jit : | build
146- cp -r lib/luajit/src/jit/ $@
161+
162+ build/jit/vmdef.lua : MACOSX_DEPLOYMENT_TARGET ?= 11.0
163+ build/jit/vmdef.lua : MAKE_LUAJIT_ARGS = MACOSX_DEPLOYMENT_TARGET=$(MACOSX_DEPLOYMENT_TARGET )
164+ build/jit/vmdef.lua : build/native/luajit/src/jit/vmdef.lua | build/jit
165+ cp $< $@
166+ build/jit/% .lua : lib/luajit/src/jit/% .lua | build/jit
167+ cp $< $@
147168
148169build/init_script.lua : $(LUA_INIT_SCRIPT_SRC ) | build
149170 cat $^ > $@
@@ -192,7 +213,7 @@ build/$(GDNLIB_ENTRY_PREFIX)/%:
192213 cp $* $@
193214$(addprefix build/,$(DIST_SRC ) ) : | build
194215 cp $(notdir $@ ) $@
195- build/lua_pluginscript.zip : $(LUASRCDIET_DEST ) $(DIST_DEST )
216+ build/lua_pluginscript.zip : $(LUASRCDIET_DEST ) $(LUAJIT_JITLIB_DEST ) $( DIST_DEST )
196217 cd build && zip lua_pluginscript $(DIST_ZIP_SRC )
197218build/project.godot : src/tools/project.godot | build
198219 cp $< $@
@@ -205,7 +226,7 @@ build/compile_commands.json: Makefile
205226# Phony targets
206227.PHONY : clean dist docs set-version unzip-to-build
207228clean :
208- $(RM ) -r build/* / plugin/luasrcdiet/*
229+ $(RM ) -r $( wildcard build/** ) plugin/luasrcdiet/*
209230
210231dist : build/lua_pluginscript.zip
211232
@@ -218,12 +239,14 @@ set-version:
218239 plugin/plugin.cfg
219240
220241unzip-to-build :
242+ $(RM ) -r $(ZIP_TEMP_FOLDER ) /*
221243ifneq (,$(filter http ://% https://% ,$(ZIP_URL ) ))
222244 curl -L $(ZIP_URL ) -o $(ZIP_URL_DOWNLOAD_OUTPUT )
223- cd build && unzip -u $(ZIP_URL_DOWNLOAD_OUTPUT )
245+ unzip $( ZIP_URL_DOWNLOAD_OUTPUT ) -d $(ZIP_TEMP_FOLDER )
224246else
225- cd build && unzip -u $(ZIP_URL )
247+ unzip $(ZIP_URL) -d $(ZIP_TEMP_FOLDER )
226248endif
249+ cp -R $(ZIP_TEMP_FOLDER)/addons/godot-lua-pluginscript/build/. build
227250
228251
229252# Miscelaneous targets
0 commit comments