Commit Graph

106 Commits

Author SHA1 Message Date
Paul Sokolovsky 2195046365 windows/windows_mphal: Add basic support for raising KeyboardInterrupt.
Compiles with mingw32, tested to work erratically under Wine due to
not fully implemented emulation in it.
2015-12-18 01:12:59 +02:00
Paul Sokolovsky 5efd3f0dca windows: Make keyboard_interrupt_obj available, it's standard feature. 2015-12-18 01:07:27 +02:00
stijn 951fc7e993 msvc: Use new modmachine infrastructure per changes in f925165 2015-12-15 00:13:21 +02:00
Dave Hylands f925165942 unix: Move modmachine into unix directory
This leaves behind the common functionality in extmod/machine_mem.c
which can be used by all ports.
2015-12-13 01:21:36 +02:00
Paul Sokolovsky a6eff059b9 unix: Rename "_os" module to "uos" for consistency with baremetal ports. 2015-12-12 00:04:35 +02:00
stijn 967ceba5b7 msvc: Use different output directories depending on build type
This allows multiple versions (e.g. Debug/Release, x86/x64) of micropython.exe
to co-exist instead and also solves potential problems where msbuild does not
completely rebuild the output and/or pdb files when switching between builds,
which in turn can cause linker errors in dependent projects.

By default exe/map/... files go in windows/build/$(Configuration)$(Platform)

After each build micropython.exe is still copied from the above directory to
the windows directory though, as that is consistent with the other ports and
the test runner by default uses that location as well.

Also rename env.props -> path.props which is a clearer name,
and add ample documentation in the affected build files.

(also see discussion in #1538)
2015-12-11 23:42:30 +02:00
stijn 3baf6b5319 windows/py: Support 64bit mingw-w64 builds
- add mp_int_t/mp_uint_t typedefs in mpconfigport.h
- fix integer suffixes/formatting in mpconfig.h and mpz.h
- use MICROPY_NLR_SETJMP=1 in Makefile since the current nlrx64.S
  implementation causes segfaults in gc_free()
- update README
2015-11-24 17:34:14 +02:00
stijn a58fa27c24 windows: Cleanup makefile
The BSD stuff is a copy from the unix makefile but at least there it
makes some sense, a windows makefile on BSD doesn't.
The -lmman flag is probably for mmap functions but there is no other build
support for it on windows so just that flag won't cut it anyway.
2015-11-24 17:34:14 +02:00
stijn 5be60d6929 windows: Define ssize_t and use renamed mphal header
This fixes the build after changes in [66fd3e4] and [3a6b3d2]
2015-11-14 02:06:55 +02:00
stijn b1dbbd32eb windows: Allow specifying the python executable to use for msvc builds
This defaults to 'python' but can be now overridden if needed
2015-11-10 17:37:09 +02:00
omtinez 1b9d161f94 Fix project file for Visual Studio 2015 2015-11-10 17:36:08 +02:00
stijn c76fe77f42 windows: Update build instructions in the README
- use correct 'mingw-w64' package name
- small grammar fixes
- modify Cygwin build instructions to use that same compiler as well: the
  original mingw is stuck at gcc v4.7 and does not seem to be updated anymore
- make it clear thet uPy also builds using Visual Studio versions > 2013
2015-11-02 23:23:09 +00:00
Paul Sokolovsky aeadf7607d windows/README: Deprecate mingw32, suggest using mingw64.
Ubuntu's mingw32 has gcc 4.2.1, which is rather old and has incorrect
non-initialized variable analysis which produces warnings, which
per MicroPython default settings get turned into errors.
2015-11-01 01:05:33 +03:00
Damien George 731f359292 all: Add py/mphal.h and use it in all ports.
py/mphal.h contains declarations for generic mp_hal_XXX functions, such
as stdio and delay/ticks, which ports should provide definitions for.  A
port will also provide mphalport.h with further HAL declarations.
2015-10-31 19:14:30 +03:00
stijn bd9f850e85 windows: Use write() instead of fwrite() to avoid out-of-order output.
This fixes the basics/exception_chain.py test, also see #1500 for more
info and [4300c7d] where the same change was done for the other ports.
2015-10-31 14:10:13 +03:00
omtinez 3510499a9e windows: Call _set_output_format() only on Visual Studio versions 2013 or lower.
Since VS2015, float formatting is C standard compliant by default:
https://msdn.microsoft.com/en-us/library/bb531344(v=vs.140).aspx
2015-10-30 11:37:58 +03:00
stijn f3e46d0c52 windows: Rename "time" module to "utime" for consistency with others. 2015-10-26 11:42:10 +00:00
stijn dc93f25bb8 windows: Erase pre-calc'd number of chars instead of clearing whole line. 2015-10-26 11:35:16 +00:00
stijn ca9eb81d0b windows: Add usleep() implementation for msvc port
Also make sleep.c self-contained by moving initialization code,
instead of having part of the code in init.c, and add a header file
to accomodate this.
msec_sleep() now uses the usleep() implementation as well.
2015-10-25 15:42:19 +03:00
stijn 1c55310bcc windows: Do not use wildcards when looking for sources in directories containing optional features
Fixes issues like #1532
2015-10-25 15:33:49 +03:00
Damien George f961456b29 lib/mp-readline: Add n_chars argument to mp_hal_erase_line_from_cursor.
If VT100 support is not available then a given implementation of
mp_hal_erase_line_from_cursor might need to know the number of characters
to erase.

This patch does not change generated code when VT100 is supported, since
compiler can optimise away the argument.
2015-10-20 13:27:14 +01:00
Paul Sokolovsky e0f5df579b all: Make netutils.h available to all ports by default.
Generally, ports should inherit INC from py.mk, append to it, not
overwrite it. TODO: Likely should do the same for other vars too.
2015-10-19 18:32:42 +03:00
stijn 941040e9e8 windows: Make mpconfigport.h up-to-date with the unix port 2015-09-23 07:10:00 -07:00
stijn dcbe936c50 windows/msvc: Exclude modjni from build. 2015-09-22 11:07:03 +01:00
stijn 3179d23cee windows: Make unistd.h more posix compatible
- add SEEK_XXX definitions, this fixes missing definition in py/stream.c
- move R_OK from realpath.c and add W_OK/F_OK defintions
- move STDXXX_FILENO definitions from mpconfigport for consistency
2015-08-14 12:04:23 +02:00