ref: 346a6f8dcb6e0d1a9540eeae481cca33021439ec
parent: ea8aaeb8e3a85fa2303fe52493d840de9222f3a2
author: yenatch <yenatch@gmail.com>
date: Sun Dec 3 16:58:27 EST 2017
fix make 3.81 the shell newline capture doesnt work in 3.81, so that's gone
--- a/Makefile
+++ b/Makefile
@@ -52,34 +52,26 @@
$(MAKE) -C tools/
-# Prevents $(shell) from filtering out newlines.
-define shell2 =
-$(foreach line,\
-$(shell $1 | sed "s/ /{space}/g"),\
-$(info $(shell echo $(line) | sed "s/{space}/ /g")))
+$(crystal11_obj): RGBASMFLAGS = -D CRYSTAL11
+
+# The dep rules have to be explicit or else missing files won't be reported.
+# As a side effect, they're evaluated immediately instead of when the rule is invoked.
+# It doesn't look like $(shell) can be deferred so there might not be a better way.
+define DEP
+$1: $2 $$(shell tools/scan_includes $2)
+ $$(RGBASM) $$(RGBASMFLAGS) -o $$@ $$<
endef
# Build tools when building the rom.
# This has to happen before the rules are processed, since that's when scan_includes is run.
ifeq (,$(filter clean tools,$(MAKECMDGOALS)))
-$(call shell2, $(MAKE) -C tools/)
-endif
+$(info $(shell $(MAKE) -C tools))
-# The dep rules have to be explicit or else missing files won't be reported.
-# As a side effect, they're evaluated immediately instead of when the rule is invoked.
-# It doesn't look like $(shell) can be deferred so there might not be a better way.
-define DEP =
-$1: $$(shell tools/scan_includes $2)
-endef
$(foreach obj, $(crystal11_obj), $(eval $(call DEP,$(obj),$(obj:11.o=.asm))))
$(foreach obj, $(crystal_obj), $(eval $(call DEP,$(obj),$(obj:.o=.asm))))
-%11.o: %.asm
- $(RGBASM) -D CRYSTAL11 -o $@ $<
-
-%.o: %.asm
- $(RGBASM) -o $@ $<
+endif
pokecrystal11.gbc: $(crystal11_obj) pokecrystal.link