#!/usr/bin/env zsh # ------------------------------------------------------------------- if [ -n "$BASH_SOURCE" ]; then SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" elif [ -n "$ZSH_NAME" ]; then SCRIPT_DIR="$(cd "$(dirname "${(%):-%N}")" && pwd)" else echo "This script must be run with bash or zsh!" >&2 exit 1 fi source "${SCRIPT_DIR}/setup-paths.sh" # ------------------------------------------------------------------- # Sanity checks if [ ! -d "${POKY_DIR}" ]; then echo "ERROR: poky not found at ${POKY_DIR}" >&2 return 1 2>/dev/null || exit 1 fi # Create cache directories mkdir -p "${DL_DIR}" mkdir -p "${SSTATE_DIR}" # Initialize Yocto build environment source "${POKY_DIR}/oe-init-build-env" "${YOCTO_ROOT}/${BUILD_DIR}" # Inject cache paths into local.conf (idempotent) CONF_FILE="${BUILDDIR}/conf/local.conf" START_MARKER="# >>> yocto cache (managed) >>>" END_MARKER="# <<< yocto cache (managed) <<<" # Remove old managed block if present sed -i "/${START_MARKER}/,/${END_MARKER}/d" "${CONF_FILE}" # Append managed block cat <> "${CONF_FILE}" ${START_MARKER} DL_DIR = "${DL_DIR}" SSTATE_DIR = "${SSTATE_DIR}" ${END_MARKER} EOF echo echo "Yocto environment ready:" echo " BUILD_DIR = ${BUILDDIR}" echo " DL_DIR = ${DL_DIR}" echo " SSTATE_DIR = ${SSTATE_DIR}" echo