circuitpython/mpy-cross
stijn 37b143ce9e mpy-cross: Fix mingw and msys2 compilation
When compiling with msys2's gcc there's no need to apply the binary fmode
so adjust the Makefile to reflect that.
When compiling with mingw we need to include malloc.h since there is no
alloca.h, and the 64bit detection in mpconfigport.h needs some adjustment.
2016-07-30 21:15:45 +03:00
..
.gitignore mpy-cross: Add new component, a cross compiler for MicroPython bytecode. 2016-02-25 10:12:21 +00:00
Makefile mpy-cross: Fix mingw and msys2 compilation 2016-07-30 21:15:45 +03:00
README.md mpy-cross: Add new component, a cross compiler for MicroPython bytecode. 2016-02-25 10:12:21 +00:00
gccollect.c py: Add MP_STATE_THREAD to hold state specific to a given thread. 2016-06-28 11:09:31 +01:00
main.c mpy-cross: Use binary file translation mode for creating mpy files on windows 2016-07-22 21:21:54 +03:00
mpconfigport.h mpy-cross: Fix mingw and msys2 compilation 2016-07-30 21:15:45 +03:00
mphalport.h mpy-cross: Add new component, a cross compiler for MicroPython bytecode. 2016-02-25 10:12:21 +00:00
qstrdefsport.h mpy-cross: Add new component, a cross compiler for MicroPython bytecode. 2016-02-25 10:12:21 +00:00

README.md

MicroPython cross compiler

This directory contains the MicroPython cross compiler, which runs under any Unix-like system and compiles .py scripts into .mpy files.

Build it as usual:

$ make

The compiler is called mpy-cross. Invoke it as:

$ ./mpy-cross foo.py

This will create a file foo.mpy which can then be copied to a place accessible by the target MicroPython runtime (eg onto a pyboard's filesystem), and then imported like any other Python module using import foo.

Different target runtimes may require a different format of the compiled bytecode, and such options can be passed to the cross compiler. For example, the unix port of MicroPython requires the following:

$ ./mpy-cross -mcache-lookup-bc foo.py

Run ./mpy-cross -h to get a full list of options.