diff --git a/data/eng/Makefile.fasm b/data/eng/Makefile.fasm index acf397fb86..7e81ac5935 100644 --- a/data/eng/Makefile.fasm +++ b/data/eng/Makefile.fasm @@ -37,9 +37,20 @@ $(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3))) -include .deps/$(4).Po endef +define fasm_nokpack_meta_rule +$(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3))) + fasm -m 65536 "$$<" "$$@" -s .deps/$(4).fas + prepsrc .deps/$(4).fas /dev/null + prepsrc .deps/$(4).fas /dev/stdout | \ + perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$$$1 if/^;include\\ \x27(.*?)\x27/;' \ + -e 'END{$$$$a=join " \\\n ",@a;print q`$(1): `,"$$$$a\n$$$$a:\n"}' > .deps/$(4).Po +-include .deps/$(4).Po +endef + progname=$(call respace,$(basename $(notdir $(call binarypart,$(f))))) binarydir=$(subst ./,,$(dir $(call binarypart,$(f)))) $(foreach f,$(FASM_PROGRAMS) $(FASM_PROGRAMS_CD) $(SKIN_SOURCES),$(eval $(call fasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) +$(foreach f,$(FASM_NOKPACK_PROGRAMS),$(eval $(call fasm_nokpack_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) # Rule for the kernel differs: it uses kerpack instead of kpack. kernel.mnt: $(KERNEL)/kernel.asm Makefile.fasm .deps/.dir diff --git a/data/eng/games/soko b/data/eng/games/soko new file mode 100644 index 0000000000..e5b95f3a26 Binary files /dev/null and b/data/eng/games/soko differ