micropython/windows
Paul Sokolovsky d3b1f0b627 py/runtime: mp_stack_ctrl_init() should be called immediately on startup.
Calling it from mp_init() is too late for some ports (like Unix), and leads
to incomplete stack frame being captured, with following GC issues. So, now
each port should call mp_stack_ctrl_init() on its own, ASAP after startup,
and taking special precautions so it really was called before stack variables
get allocated (because if such variable with a pointer is missed, it may lead
to over-collecting (typical symptom is segfaulting)).
2016-01-29 02:13:42 +02:00
..
msvc windows/msvc: Add modurandom.c to list of source files. 2016-01-26 19:38:59 +00:00
.appveyor.yml windows: Add Appveyor CI builds for msvc port. 2015-12-18 21:49:35 +00:00
.gitignore Windows MSVC port 2014-05-08 10:06:43 +02:00
Makefile unix: Move modmachine into unix directory 2015-12-13 01:21:36 +02:00
README windows/py: Support 64bit mingw-w64 builds 2015-11-24 17:34:14 +02:00
init.c windows/msvc: Nicer handling of asserts and 'invalid' parameters 2015-12-26 22:14:16 +00:00
init.h windows: Add modtime implementation 2014-05-09 13:58:15 +02:00
micropython.vcxproj Fix project file for Visual Studio 2015 2015-11-10 17:36:08 +02:00
mpconfigport.h py/runtime: mp_stack_ctrl_init() should be called immediately on startup. 2016-01-29 02:13:42 +02:00
mpconfigport.mk windows: Implement the mp_hal_xxx functions and enable mp-readline 2015-06-04 19:22:13 +03:00
realpath.c windows: Make unistd.h more posix compatible 2015-08-14 12:04:23 +02:00
realpath.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
sleep.c windows: Add usleep() implementation for msvc port 2015-10-25 15:42:19 +03:00
sleep.h windows: Add usleep() implementation for msvc port 2015-10-25 15:42:19 +03:00
windows_mphal.c windows: Better handling of Ctrl-C 2015-12-21 20:51:27 +02:00
windows_mphal.h windows: Define ssize_t and use renamed mphal header 2015-11-14 02:06:55 +02:00

README

This is experimental, community-supported Windows port of MicroPython.
It is based on Unix port, and expected to remain so.
The port requires additional testing, debugging, and patches. Please
consider to contribute.


To cross-compile under Debian/Ubuntu Linux system:

sudo apt-get install gcc-mingw-w64
make CROSS_COMPILE=i686-w64-mingw32-

If for some reason the mingw-w64 crosscompiler is not available, you can try
mingw32 instead, but it comes with a really old gcc which may produce some
spurious errors (you may need to disable -Werror):

sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
make CROSS_COMPILE=i586-mingw32msvc-


To compile under Cygwin:

Install following packages using cygwin's setup.exe:
mingw64-i686-gcc-core, mingw64-x86_64-gcc-core, make
Build using:

make CROSS_COMPILE=i686-w64-mingw32-

or for 64bit:

make CROSS_COMPILE=x86_64-w64-mingw32-


To compile using Visual Studio 2013 (or higher):

Open micropython.vcxproj and build


To compile using Visual Studio 2013 (or higher) commandline:

msbuild micropython.vcxproj


To run on Linux using Wine:

The default build (MICROPY_USE_READLINE=1) uses extended Windows console
functions and thus should be run using "wineconsole" tool. Depending
on the Wine build configuration, you may also want to select the curses
backend which has the look&feel of a standard Unix console:

    wineconsole --backend=curses ./micropython.exe

For more info, see https://www.winehq.org/docs/wineusr-guide/cui-programs

If built without line editing and history capabilities
(MICROPY_USE_READLINE=0), the resulting binary can be built using standard
"wine" tool.