PYS := GSDS := CONFS := SRCDIR := . BUILDDIR := $(SRCDIR)/build/micropython MARCH := xtensa MPYCROSS_OPTS := GSDPARSER_OPTS := --dump-strip --dump-notext --dump-noextuserprmdata MPYCROSS := mpy-cross GSDPARSER := $(SRCDIR)/gsdparser MKDIR := mkdir CP := cp RM := rm _MPYS = $(sort $(patsubst %.py,$(2)/%.mpy,$(1))) _GSDMPYS = $(sort $(patsubst %.gsd,$(2)/%_gsd.mpy,$(1))) _GSDPYS = $(sort $(patsubst %.gsd,$(2)/%_gsd.py,$(1))) _CONFS = $(sort $(patsubst %.conf,$(2)/%.conf,$(1))) _MPYCROSS = $(MPYCROSS) "$(1)" -s "$(2)" -march="$(MARCH)" $(MPYCROSS_OPTS) -o "$(3)" all: $(call _MPYS,$(PYS),$(BUILDDIR)) \ $(call _GSDMPYS,$(GSDS),$(BUILDDIR)) \ $(call _CONFS,$(CONFS),$(BUILDDIR)) \ $(BUILDDIR)/boot.py \ $(BUILDDIR)/main.py $(BUILDDIR)/%.mpy: %.py @$(MKDIR) -p "$(dir $@)" $(call _MPYCROSS,$<,$(shell basename "$<"),$@) $(BUILDDIR)/%_gsd.mpy: %.gsd @$(MKDIR) -p "$(dir $@)" $(GSDPARSER) -D $(GSDPARSER_OPTS) -o "$(call _GSDPYS,$<,$(BUILDDIR))" "$<" $(call _MPYCROSS,$(call _GSDPYS,$<,$(BUILDDIR)),$(shell basename "$(call _GSDPYS,$<,$(BUILDDIR))"),$@) $(RM) "$(call _GSDPYS,$<,$(BUILDDIR))" $(BUILDDIR)/%.conf: %.conf @$(MKDIR) -p "$(dir $@)" $(CP) "$<" "$@" $(BUILDDIR)/boot.py $(BUILDDIR)/main.py: $(BUILDDIR)/%.py: $(SRCDIR)/micropython/%.py @$(MKDIR) -p "$(dir $@)" $(CP) "$<" "$@" clean: $(RM) -rf $(BUILDDIR) .PHONY: all clean