#!/usr/bin/env bash set -e # ------------------------------------------------------------------- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPT_DIR}/setup-paths.sh" # ------------------------------------------------------------------- # Sanity checks if [ ! -d "${POKY_DIR}" ]; then echo "ERROR: poky not found at ${POKY_DIR}" 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