micropython/shared/memzip
Jim Mussared 2eda513870 py/mkrules.mk: Add rule for compiling auto-generated source files.
This prevents each port Makefile from having to add an explicit rule for
`build-BOARD/pins_BOARD.c`.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-11-03 13:57:47 +11:00
..
README.md py/mkrules.mk: Add rule for compiling auto-generated source files. 2023-11-03 13:57:47 +11:00
import.c
lexermemzip.c py/builtinevex: Handle invalid filenames for execfile. 2023-10-12 15:17:59 +11:00
make-memzip.py all: Update Python formatting to ruff-format. 2023-11-03 13:30:41 +11:00
memzip.c
memzip.h

README.md

MEMZIP - a simple readonly file system

memzip takes a zip file which is comprised of uncompressed files and and presents it as a filesystem, allowing Python files to be imported.

The script make-memzip.py takes a directory name and will create a zip file containing uncompressed files found in the directory. It will then generate a C file which contains the data from the zip file.

A typical addition to a makefile would look like:

SRC_C += \
    shared/memzip/import.c \
    shared/memzip/lexermemzip.c \
    shared/memzip/memzip.c \

OBJ += $(BUILD)/memzip-files.o

MAKE_MEMZIP = ../shared/memzip/make-memzip.py

$(BUILD)/memzip-files.c: $(shell find ${MEMZIP_DIR} -type f)
    @$(ECHO) "Creating $@"
    $(Q)$(PYTHON) $(MAKE_MEMZIP) --zip-file $(BUILD)/memzip-files.zip --c-file $@ $(MEMZIP_DIR)