ports: Add new make target "submodules" which inits required modules.

This commit is contained in:
Damien George 2019-10-14 12:09:06 +11:00
parent 3ee71ff314
commit d7a9388fe0
11 changed files with 36 additions and 19 deletions

View File

@ -86,8 +86,8 @@ Alternatively, fallback implementation based on setjmp/longjmp can be used.
To build (see section below for required dependencies):
$ git submodule update --init
$ cd ports/unix
$ make submodules
$ make
Then to give it a try:
@ -127,13 +127,14 @@ Debian/Ubuntu/Mint derivative Linux distros, install `build-essential`
Other dependencies can be built together with MicroPython. This may
be required to enable extra features or capabilities, and in recent
versions of MicroPython, these may be enabled by default. To build
these additional dependencies, first fetch git submodules for them:
these additional dependencies, in the port directory you're
interested in (e.g. `ports/unix/`) first execute:
$ git submodule update --init
$ make submodules
Use the same command to get the latest versions of dependencies, as
they are updated from time to time. After that, in the port directory
(e.g. `ports/unix/`), execute:
This will fetch all the relevant git submodules (sub repositories) that
the port needs. Use the same command to get the latest versions of
submodules as they are updated from time to time. After that execute:
$ make deplibs
@ -146,8 +147,8 @@ For example, to build SSL module (required for `upip` tool described above,
and so enabled by dfeault), `MICROPY_PY_USSL` should be set to 1.
For some ports, building required dependences is transparent, and happens
automatically. They still need to be fetched with the git submodule command
above.
automatically. But they still need to be fetched with the `make submodules`
command.
The STM32 version
-----------------
@ -159,8 +160,8 @@ https://launchpad.net/gcc-arm-embedded
To build:
$ git submodule update --init
$ cd ports/stm32
$ make submodules
$ make
You then need to get your board into DFU mode. On the pyboard, connect the

View File

@ -38,6 +38,8 @@ FROZEN_MPY_DIR = modules
# include py core make definitions
include $(TOP)/py/py.mk
GIT_SUBMODULES = lib/berkeley-db-1.xx
PORT ?= /dev/ttyUSB0
BAUD ?= 460800
FLASH_MODE ?= dio

View File

@ -122,17 +122,10 @@ this repository):
$ make -C mpy-cross
```
The ESP32 port has a dependency on Berkeley DB, which is an external
dependency (git submodule). You'll need to have git initialize that
module using the commands:
```bash
$ git submodule init lib/berkeley-db-1.xx
$ git submodule update
```
Then to build MicroPython for the ESP32 run:
```bash
$ cd ports/esp32
$ make submodules
$ make
```
This will produce binary firmware images in the `build/` subdirectory

View File

@ -32,6 +32,8 @@ FROZEN_MPY_DIR ?= modules
# include py core make definitions
include $(TOP)/py/py.mk
GIT_SUBMODULES = lib/axtls lib/berkeley-db-1.xx
FWBIN = $(BUILD)/firmware-combined.bin
PORT ?= /dev/ttyACM0
BAUD ?= 115200

View File

@ -41,6 +41,8 @@ QSTR_DEFS = qstrdefsport.h $(BUILD)/pins_qstr.h
# include py core make definitions
include ../../py/py.mk
GIT_SUBMODULES = lib/nrfx lib/tinyusb
MICROPY_FATFS ?= 0
FATFS_DIR = lib/oofatfs
MPY_CROSS = ../../mpy-cross/mpy-cross

View File

@ -50,11 +50,11 @@ Prerequisite steps for building the nrf port:
git clone <URL>.git micropython
cd micropython
git submodule update --init
make -C mpy-cross
By default, the PCA10040 (nrf52832) is used as compile target. To build and flash issue the following command inside the ports/nrf/ folder:
make submodules
make
make flash

View File

@ -19,6 +19,8 @@ QSTR_GLOBAL_DEPENDENCIES = $(BOARD_DIR)/mpconfigboard.h
# Include py core make definitions
include $(TOP)/py/py.mk
GIT_SUBMODULES = lib/asf4 lib/tinyusb
INC += -I.
INC += -I$(TOP)
INC += -I$(BUILD)

View File

@ -24,6 +24,8 @@ FROZEN_MPY_DIR ?= modules
# include py core make definitions
include $(TOP)/py/py.mk
GIT_SUBMODULES = lib/lwip lib/mbedtls lib/mynewt-nimble lib/stm32lib
MCU_SERIES_UPPER = $(shell echo $(MCU_SERIES) | tr '[:lower:]' '[:upper:]')
CMSIS_MCU_LOWER = $(shell echo $(CMSIS_MCU) | tr '[:upper:]' '[:lower:]')

View File

@ -40,7 +40,11 @@ see [here](https://launchpad.net/gcc-arm-embedded) for the main GCC ARM
Embedded page. The compiler can be changed using the `CROSS_COMPILE` variable
when invoking `make`.
To build for a given board, run:
First the submodules must be obtained using:
$ make submodules
Then to build for a given board, run:
$ make BOARD=PYBV11

View File

@ -16,6 +16,8 @@ UNAME_S := $(shell uname -s)
# include py core make definitions
include $(TOP)/py/py.mk
GIT_SUBMODULES = lib/axtls lib/berkeley-db-1.xx lib/libffi
INC += -I.
INC += -I$(TOP)
INC += -I$(BUILD)

View File

@ -143,6 +143,13 @@ clean-prog:
.PHONY: clean-prog
endif
submodules:
$(ECHO) "Updating submodules: $(GIT_SUBMODULES)"
ifneq ($(GIT_SUBMODULES),)
$(Q)git submodule update --init $(addprefix $(TOP)/,$(GIT_SUBMODULES))
endif
.PHONY: submodules
LIBMICROPYTHON = libmicropython.a
# We can execute extra commands after library creation using