Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 42 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -408,18 +408,33 @@ toolchains:


################################################################################
# Build related commands, these will end up in the Makefile generated
# by "cim makefile". Although there is no limit on the amount of commands here,
# it's recommended to keep it minimal and simple, and put more complex logic in
# a dedicated "build.git" or similar. This is mostly meant to initiate and
# Build related commands, these will end up in the Makefile generated by "cim
# makefile". Although there is no limit on the amount of commands here, it's
# recommended to keep it minimal and simple, and put more complex logic in a
# dedicated "build.git" or similar. This is mostly meant to initiate and
# redirect build commands to the different build systems used in the workspace.
#
# In the example below, we envision that a there exist a "build" folder, either
# as a directory or as a "build.git" repository, which contains the actual
# build logic and Makefiles for the current project.
# Note that there is no requirement on using "make" and tradtional Makefiles
# there. You can use any build system you want, as long as you redirect to it
# from the high level makefile targets defined here.
# Each section (envsetup, build, test, clean, flash) supports two formats:
#
# Object format with optional depends_on:
# build:
# commands:
# - $(MAKE) -C build all $(MAKEFLAGS)
# depends_on:
# - sdk-envsetup # run sdk-envsetup before sdk-build in the Makefile
#
# Legacy list format (still works, but no recommended, use the above)
# build:
# - $(MAKE) -C build all $(MAKEFLAGS)
#
# depends_on accepts sdk-* target names (sdk-envsetup, sdk-build, sdk-test,
# sdk-clean, sdk-flash) or git repository target names. This is a Makefile
# build-time dependency only — it does not affect git clone ordering.
# Clone ordering is controlled by git_depends_on in the gits section.
#
# Note that there is no requirement on using continue to "make" and tradtional
# Makefiles from here. You can use any build system you want, as long as you
# redirect to it from the high level makefile targets defined here.
################################################################################
# Environment setup commands, these will typically run before the build and
# test commands.
Expand All @@ -429,9 +444,15 @@ envsetup:
- ln -sf qemu_v8.mk build/Makefile
- echo "Building for arch: ${{ SDK_ARCH }}"

# Build commands
# Build commands — object format showing dependency on sdk-envsetup
build:
- $(MAKE) -C build all $(MAKEFLAGS)
commands:
- $(MAKE) -C build all $(MAKEFLAGS)
depends_on:
- sdk-envsetup
- platform # This indicates that the build target for "platform" will
# run before the "sdk-build" will run in the generated
# Makefile

# Test commands
test:
Expand Down Expand Up @@ -491,9 +512,12 @@ install:
# name: encourge to use a single name to keep the git in the workspace root, but
# it can be nested if needed.
# build: will generate a Makefile target for this git repository.
# build_depends_on: ensures the dependent repository is built before this one
# build_depends_on: ensures the listed targets are built before this repository
# in the generated Makefile (also accepts legacy name "depends_on").
# It's possible to depend on multiple targets.
# Accepts git repository names (e.g. "build") or sdk-* target names
# (e.g. "sdk-envsetup"). Multiple targets are allowed. This is a
# Makefile build-time dependency only — clone ordering is controlled
# separately by git_depends_on.
# git_depends_on: controls clone ordering. Repositories listed here will be
# cloned before this one. Useful for nested repos where a child
# path lives inside a parent repo's directory tree.
Expand All @@ -517,6 +541,7 @@ gits:
commit: master
build_depends_on:
- optee_os
- sdk-envsetup # can also depend on sdk-* target names

# Example: nested repositories - the parent must be cloned first so that
# children can be placed inside its directory tree.
Expand Down Expand Up @@ -619,15 +644,15 @@ profiles:
# Minimal profile - no additional packages
minimal:
packages: []

# Documentation profile - packages for building and serving docs
docs:
packages:
- sphinx
- sphinx-rtd-theme
- myst-parser
- sphinx-autobuild

# Development profile - docs + development tools
dev:
packages:
Expand All @@ -638,7 +663,7 @@ profiles:
- pytest
- black
- flake8

# Full profile - everything
full:
packages:
Expand Down