aboutsummaryrefslogtreecommitdiff
path: root/ports/unix/Makefile
AgeCommit message (Collapse)Author
2021-03-12tests: Rename run-tests to run-tests.py for consistency.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-11-24extmod/modbluetooth: Add API for L2CAP channels.Jim Mussared
Also known as L2CAP "connection oriented channels". This provides a socket-like data transfer mechanism for BLE. Currently only implemented for NimBLE on STM32 / Unix. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-13extmod/modbluetooth: Re-instate optional no-ringbuf modbluetooth.Jim Mussared
This requires that the event handlers are called from non-interrupt context (i.e. the MicroPython scheduler). This will allow the BLE stack (e.g. NimBLE) to run from the scheduler rather than an IRQ like PENDSV, and therefore be able to invoke Python callbacks directly/synchronously. This allows writing Python BLE handlers for events that require immediate response such as _IRQ_READ_REQUEST (which was previous a hard IRQ) and future events relating to pairing/bonding. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-10-29unix/Makefile: Move coverage.c and coveragecpp.cpp to coverage variant.Damien George
So that g++ is not needed to build a non-coverage unix variant. Signed-off-by: Damien George <damien@micropython.org>
2020-10-29esp32,unix: Support building C++ code.stijn
Support building .cpp files and linking them into the micropython executable in a way similar to how it is done for .c files. The main incentive here is to enable user C modules to use C++ files (which are put in SRC_MOD_CXX by py.mk) since the core itself does not utilize C++. However, to verify build functionality a unix overage test is added. The esp32 port already has CXXFLAGS so just add the user modules' flags to it. For the unix port use a copy of the CFLAGS but strip the ones which are not usable for C++.
2020-10-22unix: Enable more warnings.Emil Renner Berthing
2020-09-08unix: Implement BLE H4 HCI UART for btstack/nimble.Jim Mussared
This commit adds support for using Bluetooth on the unix port via a H4 serial interface (distinct from a USB dongle), with both BTstack and NimBLE Bluetooth stacks. Note that MICROPY_PY_BLUETOOTH is now disabled for the coverage variant. Prior to this commit Bluetooth was anyway not being built on Travis because libusb was not detected. But now that bluetooth works in H4 mode it will be built, and will lead to a large decrease in coverage because Bluetooth tests cannot be run on Travis.
2020-09-08unix/Makefile: Always enable -f*-sections regardless of DEBUG setting.Jim Mussared
2020-09-08extmod/modbluetooth: Refactor stack/hci/driver/port bindings.Jim Mussared
Previously the interaction between the different layers of the Bluetooth stack was different on each port and each stack. This commit defines common interfaces between them and implements them for cyw43, btstack, nimble, stm32, unix.
2020-07-01unix: Make manifest selection match other ports.Jim Mussared
Changes are: - The default manifest.py is moved to the variants directory (it's in "boards" in other ports). - The coverage variant now uses a custom manifest in its variant directory to add frzmpy/frzstr. - The frzmpy/frzstr tests are moved to variants/coverage/.
2020-04-29all: Factor gchelper code to one place and use it for unix & ARM ports.Jim Mussared
No functionality change is intended with this commit, it just consolidates the separate implementations of GC helper code to the lib/utils/ directory as a general set of helper functions useful for any port. This reduces duplication of code, and makes it easier for future ports or embedders to get the GC implementation correct. Ports should now link against gchelper_native.c and either gchelper_m0.s or gchelper_m3.s (currently only Cortex-M is supported but other architectures can follow), or use the fallback gchelper_generic.c which will work on x86/x64/ARM. The gc_helper_get_sp function from gchelper_m3.s is not really GC related and was only used by cc3200, so it has been moved to that port and renamed to cortex_m3_get_sp.
2020-04-29unix: Add btstack to the unix submodules list.Jim Mussared
But only when bluetooth is enabled, i.e. if building the dev or coverage variants, and we have libusb available. Update travis to match, i.e. specify the variant when doing `make submodules`.
2020-04-29unix: Enable modbluetooth on the "dev" and "coverage" variants.Jim Mussared
And MICROPY_PY_URANDOM_EXTRA_FUNCS is enabled on "dev" so tha the Bluetooth examples all run.
2020-04-29unix: Add support for modbluetooth and BLE using btstack.Jim Mussared
This commit adds full support to the unix port for Bluetooth using the common extmod/modbluetooth Python bindings. This uses the libusb HCI transport, which supports many common USB BT adaptors.
2020-04-18all: Enable extra conversion warnings where applicable.stijn
Add -Wdouble-promotion and -Wfloat-conversion for most ports to ban out implicit floating point conversions, and add extra Travis builds using MICROPY_FLOAT_IMPL_FLOAT to uncover warnings which weren't found previously. For the unix port -Wsign-comparison is added as well but only there since only clang supports this but gcc doesn't.
2020-04-13unix/Makefile: Fix regression using install on non-GNU systems.David Lechner
This was fixed previously in 31fc81d3b8bb227109777eed02d0021e564fb523 but regressed in 4af79e76943312bf71be395a71fa80ab39e7c2c2. Fixes #5885.
2020-04-13unix: Fix behaviour of COPT/NDEBUG for unix variants.Jim Mussared
Based on eg 1e6fd9f2b4072873f5d6846b19b2ef0ccc5e4e52, it's understood that the intention for unix builds is that regular builds disable assert, but the coverage build should set -O0 and enable asserts. It looks like this didn't work (even before variants were introduced, eg at v1.11) -- coverage always built with -Os and -DNDEBUG. This commit makes it possible for variants to have finer-grained control over COPT flags, and enables assert() and -O0 on coverage builds. Other variants already match the defaults so they have been updated.
2020-03-18unix: Remove custom file implementation to use extmod's VFS POSIX one.Damien George
The implementation in extmod/vfs_posix_file.c is now equivalent to that in ports/unix/file.c, so remove the latter and use the former instead.
2020-03-11unix/Makefile: Detect and pass thru mpy-cross flags when running tests.Damien George
2020-02-16unix/Makefile: Allow to install all variants of the executable.David Lechner
The install target is current broken when PROG is used to override the default executable name. This fixes it by removing the redundant TARGET variable and uses PROG directly instead. The install and uninstall targets are also moved to the common unix Makefile so that all variants can be installed in the same way.
2020-02-16unix/Makefile: Remove old variant targets that are no longer needed.Damien George
To eliminate confusion about what targets to use when building.
2020-01-24unix/Makefile: Reserve CFLAGS_EXTRA/LDFLAGS_EXTRA for external use.Damien George
When CFLAGS_EXTRA/LDFLAGS_EXTRA (or anything) is set on the command line of a make invocation then it will completely override any setting or appending of these variables in the makefile(s). This means builds like the coverage variant will have their mpconfigvariant.mk settings overridden. Fix this by using CFLAGS/LDFLAGS exclusively in the makefile(s), reserving the CFLAGS_EXTRA/LDFLAGS_EXTRA variables for external command-line use only.
2020-01-12unix: Add build variants, analogous to boards on bare-metal.Jim Mussared
Invoking "make" will still build the standard "micropython" executable, but other variants are now build using, eg, "make VARIANT=minimal". This follows how bare-metal ports specify a particular board, and allows running any make target (eg clean, test) with any variant. Convenience targets (eg "make coverage") are provided to retain the old behaviour, at least for now. See issue #3043.
2019-11-11extmod: Consolidate FAT FS config to MICROPY_VFS_FAT across all ports.Damien George
This commit removes the Makefile-level MICROPY_FATFS config and moves the MICROPY_VFS_FAT config to the Makefile level to replace it. It also moves the include of the oofatfs source files in the build from each port to a central place in extmod/extmod.mk. For a port to enabled VFS FAT support it should now set MICROPY_VFS_FAT=1 at the level of the Makefile. This will include the relevant oofatfs files in the build and set MICROPY_VFS_FAT=1 at the C (preprocessor) level.
2019-10-30extmod/vfs_lfs: Allow compiling in VfsLfs1 and VfsLfs2 separately.Damien George
These classes are enabled via the config options MICROPY_VFS_LFS1 and MICROPY_VFS_LFS2, which are disabled by default.
2019-10-29unix: Enable uos.VfsLfs1, uos.VfsLfs2 on coverage build.Damien George
2019-10-21unix: Allow building without a manifest.Jim Mussared
2019-10-15unix: Convert to use FROZEN_MANIFEST to specify frozen code.Damien George
Removes symlinks in modules directory, all frozen code is now specified by manifest.py.
2019-10-15ports: Add new make target "submodules" which inits required modules.Damien George
2019-03-08unix/Makefile: Update coverage tests to match those in Travis.Damien George
2019-03-05ports: Update to work with new oofatfs version.Damien George
2018-10-19unix/Makefile: Allow to override/omit pthread lib name.Paul Sokolovsky
For example, on Android, pthread functions are part of libc, so LIBPTHREAD should be empty.
2018-09-10unix/Makefile: Build libffi inside $BUILD.Paul Sokolovsky
Avoids polluting the source tree, allows to build for different (sub)archs without intermediate cleaning.
2018-09-08unix/Makefile: Remove building of libaxtls.a which is no longer needed.Damien George
2018-08-14unix/Makefile: Enable ussl module with nanbox build.Damien George
2018-08-14unix/Makefile: coverage: Explicitly build "axtls" too.Paul Sokolovsky
"coverage" build uses different BUILD directory comparing to the normal build. Previously, any build picked up libaxtls.a from normal build's directory, but that was fixed recently. So, for each build, we must build axtls explicitly. This fixes Travis build in particular.
2018-02-14unix/Makefile,embedding/Makefile: Remove obsolete use of STMHAL_SRC_C.Damien George
2018-02-08.travis.yml,ports/unix/Makefile: Add coverage test for script via stdin.Damien George
2017-12-16unix/Makefile: coverage: Allow user to pass CFLAGS_EXTRA.Paul Sokolovsky
This build sets CFLAGS_EXTRA itself, but preserve user's value as passed on make command line/etc.
2017-10-23unix: Rename modsocket.c to modusocket.c.Paul Sokolovsky
Unix naming is historical, before current conventions were established. All other ports however have it as "modusocket.c", so rename for consistency and to avoid confusion.
2017-09-06all: Update Makefiles and others to build with new ports/ dir layout.Damien George
Also renames "stmhal" to "stm32" in documentation and everywhere else.
2017-09-06ports: Make new ports/ sub-directory and move all ports there.Damien George
This is to keep the top-level directory clean, to make it clear what is core and what is a port, and to allow the repository to grow with new ports in a sustainable way.