#!/bin/bash oe_set_aliases() { local SCRIPT="${BASH_SOURCE[0]}" if [ -z "${SCRIPT}" ]; then echo "Could not determine script location! Not using bash?" return fi while [ -h "${SCRIPT}" ]; do SCRIPT="$(readlink "${SCRIPT}")" done # # cf. openembedded-core/meta/conf/bitbake.conf # local TOPDIR="$(cd -P "$(dirname "${SCRIPT}")" && pwd)" local MACHINE="$1" local TUNE_PKGARCH="$2" local TUNE_ARCH="$3" local TUNE_CCARGS="$4" local TUNE_LDARGS="" local TUNE_ASARGS="" local LIBCEXTENSION="$5" local ABIEXTENSION="$6" # Used by multilib code to change the library paths local baselib="lib" # Path prefixes local base_prefix="" local prefix="/usr" local exec_prefix="/usr" # Base paths local base_bindir="${base_prefix}/bin" local base_sbindir="${base_prefix}/sbin" local base_libdir="${base_prefix}/${baselib}" # Architecture independent paths local datadir="${prefix}/share" local sysconfdir="${base_prefix}/etc" local servicedir="${base_prefix}/srv" local sharedstatedir="${base_prefix}/com" local localstatedir="${base_prefix}/var" local infodir="${datadir}/info" local mandir="${datadir}/man" local docdir="${datadir}/doc" # Architecture dependent paths local bindir="${exec_prefix}/bin" local sbindir="${exec_prefix}/sbin" local libexecdir="${exec_prefix}/libexec" local libdir="${exec_prefix}/${baselib}" local includedir="${exec_prefix}/include" local oldincludedir="${exec_prefix}/include" # Linkage between native layouts local base_bindir_native="/bin" local base_sbindir_native="/sbin" local sysconfdir_native="/etc" local prefix_native="/usr" local bindir_native="${prefix_native}/bin" local sbindir_native="${prefix_native}/sbin" local includedir_native="${prefix_native}/include" local libdir_native="${prefix_native}/lib" local base_libdir_native="/lib" local datadir_native="${prefix_native}/share" # Architecture-dependent build variables. local BUILD_ARCH="$(uname -m)" local BUILD_OS="$(uname -s | tr '[:upper:]' '[:lower:]')" local BUILD_VENDOR="" local BUILD_SYS="${BUILD_ARCH}${BUILD_VENDOR}-${BUILD_OS}" local BUILD_PREFIX="" local BUILD_CC_ARCH="" local BUILD_LD_ARCH="" local BUILD_AS_ARCH="" local BUILD_EXEEXT="" local TARGET_ARCH="${TUNE_ARCH}" local TARGET_OS="linux${LIBCEXTENSION}${ABIEXTENSION}" local TARGET_VENDOR="-oe" local TARGET_SYS="${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}" local TARGET_PREFIX="${TARGET_SYS}-" local TARGET_CC_ARCH="${TUNE_CCARGS}" local TARGET_LD_ARCH="${TUNE_LDARGS}" local TARGET_AS_ARCH="${TUNE_ASARGS}" local HOST_ARCH="${TARGET_ARCH}" local HOST_OS="${TARGET_OS}" local HOST_VENDOR="${TARGET_VENDOR}" local HOST_SYS="${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}" local HOST_PREFIX="${TARGET_PREFIX}" local HOST_CC_ARCH="${TARGET_CC_ARCH}" local HOST_LD_ARCH="${TARGET_LD_ARCH}" local HOST_AS_ARCH="${TARGET_AS_ARCH}" local HOST_EXEEXT="" local PACKAGE_ARCH="${TUNE_PKGARCH}" local MULTIMACH_TARGET_SYS="${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}" local MULTIMACH_HOST_SYS="${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}" # General work and output directories for the build system. local TMPDIR="${TOPDIR}/tmp" local STAGING_DIR="${TMPDIR}/sysroots" local STAGING_DIR_HOST="${STAGING_DIR}/${MACHINE}" local STAGING_BINDIR="${STAGING_DIR_HOST}${bindir}" local STAGING_LIBDIR="${STAGING_DIR_HOST}${libdir}" local STAGING_INCDIR="${STAGING_DIR_HOST}${includedir}" local STAGING_DATADIR="${STAGING_DIR_HOST}${datadir}" local STAGING_DIR_NATIVE="${STAGING_DIR}/${BUILD_SYS}" local STAGING_BINDIR_NATIVE="${STAGING_DIR_NATIVE}${bindir_native}" local STAGING_BINDIR_CROSS="${STAGING_BINDIR}/crossscripts" local STAGING_BINDIR_TOOLCHAIN="${STAGING_DIR_NATIVE}${bindir_native}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}" local STAGING_DIR_TARGET="${STAGING_DIR}/${MACHINE}" # Toolchain info. local OE_PATH="${STAGING_BINDIR_TOOLCHAIN}:${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}/${base_bindir_native}" # Build utility info. local TOOLCHAIN_OPTIONS=" --sysroot=${STAGING_DIR_TARGET}" local CC="${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" local CXX="${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" local F77="${CCACHE}${HOST_PREFIX}g77 ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" local CPP="${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" local LD="${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" local CCLD="${CC}" local AR="${HOST_PREFIX}ar" local AS="${HOST_PREFIX}as ${HOST_AS_ARCH}" local RANLIB="${HOST_PREFIX}ranlib" local STRIP="${HOST_PREFIX}strip" local OBJCOPY="${HOST_PREFIX}objcopy" local OBJDUMP="${HOST_PREFIX}objdump" local NM="${HOST_PREFIX}nm" local PKG_CONFIG_DIR="${STAGING_DIR_HOST}/${libdir}/pkgconfig" local PKG_CONFIG_PATH="${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig" local PKG_CONFIG_LIBDIR="${PKG_CONFIG_DIR}" local PKG_CONFIG_SYSROOT_DIR="${STAGING_DIR_HOST}" local PKG_CONFIG_DISABLE_UNINSTALLED="yes" local OE_ENV=" \ BUILD_SYS=\"${BUILD_SYS}\" \ HOST_SYS=\"${HOST_SYS}\" \ STAGING_LIBDIR=\"${STAGING_LIBDIR}\" \ STAGING_INCDIR=\"${STAGING_INCDIR}\" \ PATH=\"${OE_PATH}:${PATH}\" \ CC=\"${CC}\" \ CXX=\"${CXX}\" \ F77=\"${F77}\" \ CPP=\"${CPP}\" \ LD=\"${LD}\" \ CCLD=\"${CCLD}\" \ AR=\"${AR}\" \ AS=\"${AS}\" \ RANLIB=\"${RANLIB}\" \ STRIP=\"${STRIP}\" \ OBJCOPY=\"${OBJCOPY}\" \ OBJDUMP=\"${OBJDUMP}\" \ NM=\"${NM}\" \ PKG_CONFIG_DIR=\"${PKG_CONFIG_DIR}\" \ PKG_CONFIG_PATH=\"${PKG_CONFIG_PATH}\" \ PKG_CONFIG_LIBDIR=\"${PKG_CONFIG_LIBDIR}\" \ PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" \ PKG_CONFIG_DISABLE_UNINSTALLED=\"${PKG_CONFIG_DISABLE_UNINSTALLED}\" \ " echo "Creating shell command aliases:" echo "* oe_autoreconf" alias oe_autoreconf="${OE_ENV} autoreconf -Wcross --verbose --install --force --exclude=autopoint" echo "* oe_runconf" alias oe_runconf=" \ ./configure \ --build=${BUILD_SYS} \ --host=${HOST_SYS} \ --target=${TARGET_SYS} \ --prefix=${prefix} \ --exec_prefix=${exec_prefix} \ --bindir=${bindir} \ --sbindir=${sbindir} \ --libexecdir=${libexecdir} \ --datadir=${datadir} \ --sysconfdir=${sysconfdir} \ --sharedstatedir=${sharedstatedir} \ --localstatedir=${localstatedir} \ --libdir=${libdir} \ --includedir=${includedir} \ --oldincludedir=${oldincludedir} \ --infodir=${infodir} \ --mandir=${mandir} \ --with-libtool-sysroot=${STAGING_DIR_HOST} \ ${OE_ENV} \ " echo "* oe_runmake" alias oe_runmake="make ${OE_ENV}" echo "* oe_env" alias oe_env="${OE_ENV}" echo "* oe_setenv" alias oe_setenv="export ${OE_ENV}" } case "$1" in dm800) oe_set_aliases $1 "mips32el-nf" "mipsel" "-mel -mabi=32 -msoft-float -march=mips32" ;; dm500hd|dm7020hd|dm8000|dm800se|dm500hdv2|dm800sev2) oe_set_aliases $1 "mips32el" "mipsel" "-mel -mabi=32 -mhard-float -march=mips32" ;; *) echo "Usage: source ${BASH_SOURCE[0]:-cross-compile.env} " ;; esac