summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2022-07-08 15:00:33 +1000
committerDamien George <damien@micropython.org>2022-08-03 00:08:41 +1000
commit579f330508e4ba46f4a71193582c36bdf7aa56bd (patch)
tree33d0f49e3f5c018b3e2c7bdcfa244ef55659a7d1
parent58bed5ec14a2575fd53ca1822be80860f7e3023a (diff)
py/mkenv.mk: Use micropython-lib from submodule by default.
Also adds micropython-lib to 'make submodules' when using a frozen manifest (for make and cmake). Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
-rw-r--r--ports/windows/.appveyor.yml4
-rw-r--r--ports/windows/msvc/genhdr.targets2
-rw-r--r--py/mkenv.mk3
-rw-r--r--py/mkrules.cmake7
-rw-r--r--py/mkrules.mk7
5 files changed, 20 insertions, 3 deletions
diff --git a/ports/windows/.appveyor.yml b/ports/windows/.appveyor.yml
index d7192236d..110511fe2 100644
--- a/ports/windows/.appveyor.yml
+++ b/ports/windows/.appveyor.yml
@@ -74,6 +74,10 @@ after_test:
throw "$env:MSYSTEM mpy_cross build exited with code $LASTEXITCODE"
}
cd (Join-Path $env:APPVEYOR_BUILD_FOLDER 'ports/windows')
+ C:\msys64\usr\bin\bash.exe -l -c "make -B VARIANT=$($env:PyVariant) submodules"
+ if ($LASTEXITCODE -ne 0) {
+ throw "$env:MSYSTEM build exited with code $LASTEXITCODE"
+ }
C:\msys64\usr\bin\bash.exe -l -c "make -B -j4 V=1 MICROPY_MPYCROSS=../../mpy-cross/mpy-cross.exe VARIANT=$($env:PyVariant)"
if ($LASTEXITCODE -ne 0) {
throw "$env:MSYSTEM build exited with code $LASTEXITCODE"
diff --git a/ports/windows/msvc/genhdr.targets b/ports/windows/msvc/genhdr.targets
index aa796088e..308a6a1f5 100644
--- a/ports/windows/msvc/genhdr.targets
+++ b/ports/windows/msvc/genhdr.targets
@@ -170,7 +170,7 @@ using(var outFile = System.IO.File.CreateText(OutputFile)) {
<PreprocessorDefinitions>MICROPY_MODULE_FROZEN_MPY=1;MICROPY_QSTR_EXTRA_POOL=mp_qstr_frozen_const_pool;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemGroup>
- <Exec Command="$(PyPython) $(PyBaseDir)tools\makemanifest.py -v MPY_DIR=$(PyBaseDir) -v MPY_LIB_DIR=$(PyBaseDir)../micropython-lib -v PORT_DIR=$(PyWinDir) -o $(PyBuildDir)frozen_content.c -b $(PyBuildDir) $(FrozenManifest)"/>
+ <Exec Command="$(PyPython) $(PyBaseDir)tools\makemanifest.py -v MPY_DIR=$(PyBaseDir) -v MPY_LIB_DIR=$(PyBaseDir)/lib/micropython-lib -v PORT_DIR=$(PyWinDir) -o $(PyBuildDir)frozen_content.c -b $(PyBuildDir) $(FrozenManifest)"/>
<WriteLinesToFile File="$(TLogLocation)frozen.read.1.tlog" Lines="$(FrozenManifest)" Overwrite="True"/>
</Target>
diff --git a/py/mkenv.mk b/py/mkenv.mk
index 2b247974b..cc04a8c0b 100644
--- a/py/mkenv.mk
+++ b/py/mkenv.mk
@@ -57,7 +57,8 @@ MAKE_MANIFEST = $(PYTHON) $(TOP)/tools/makemanifest.py
MAKE_FROZEN = $(PYTHON) $(TOP)/tools/make-frozen.py
MPY_TOOL = $(PYTHON) $(TOP)/tools/mpy-tool.py
-MPY_LIB_DIR = $(TOP)/../micropython-lib
+MPY_LIB_SUBMODULE_DIR = $(TOP)/lib/micropython-lib
+MPY_LIB_DIR = $(MPY_LIB_SUBMODULE_DIR)
ifeq ($(MICROPY_MPYCROSS),)
MICROPY_MPYCROSS = $(TOP)/mpy-cross/mpy-cross
diff --git a/py/mkrules.cmake b/py/mkrules.cmake
index d7be0f934..2f168ede6 100644
--- a/py/mkrules.cmake
+++ b/py/mkrules.cmake
@@ -180,7 +180,12 @@ if(MICROPY_FROZEN_MANIFEST)
# Note: target_compile_definitions already added earlier.
if(NOT MICROPY_LIB_DIR)
- set(MICROPY_LIB_DIR ${MICROPY_DIR}/../micropython-lib)
+ string(CONCAT GIT_SUBMODULES "${GIT_SUBMODULES} " lib/micropython-lib)
+ set(MICROPY_LIB_DIR ${MICROPY_DIR}/lib/micropython-lib)
+ endif()
+
+ if(NOT (${ECHO_SUBMODULES}) AND NOT EXISTS ${MICROPY_LIB_DIR}/README.md)
+ message(FATAL_ERROR " micropython-lib not initialized.\n Run 'make BOARD=${MICROPY_BOARD} submodules'")
endif()
# If MICROPY_MPYCROSS is not explicitly defined in the environment (which
diff --git a/py/mkrules.mk b/py/mkrules.mk
index a7c437386..41ec4b064 100644
--- a/py/mkrules.mk
+++ b/py/mkrules.mk
@@ -174,8 +174,15 @@ $(error Support for FROZEN_MPY_DIR was removed. Please use manifest.py instead,
endif
ifneq ($(FROZEN_MANIFEST),)
+# If we're using the default submodule path for micropython-lib, then make
+# sure it's included in "make submodules".
+ifeq ($(MPY_LIB_DIR),$(MPY_LIB_SUBMODULE_DIR))
+GIT_SUBMODULES += lib/micropython-lib
+endif
+
# to build frozen_content.c from a manifest
$(BUILD)/frozen_content.c: FORCE $(BUILD)/genhdr/qstrdefs.generated.h $(BUILD)/genhdr/root_pointers.h | $(MICROPY_MPYCROSS_DEPENDENCY)
+ $(Q)test -e "$(MPY_LIB_DIR)/README.md" || (echo "Error: micropython-lib not initialized. Run 'make submodules'"; false)
$(Q)$(MAKE_MANIFEST) -o $@ -v "MPY_DIR=$(TOP)" -v "MPY_LIB_DIR=$(MPY_LIB_DIR)" -v "PORT_DIR=$(shell pwd)" -v "BOARD_DIR=$(BOARD_DIR)" -b "$(BUILD)" $(if $(MPY_CROSS_FLAGS),-f"$(MPY_CROSS_FLAGS)",) --mpy-tool-flags="$(MPY_TOOL_FLAGS)" $(FROZEN_MANIFEST)
endif