| function echo_stdout() |
| { |
| echo -e "[setup.sh] $@" |
| } |
| |
| function print_menu() |
| { |
| echo_stdout |
| echo_stdout "Build selection menu... choose from the following:" |
| echo_stdout |
| echo_stdout "1. Build for host platform" |
| echo_stdout "2. Arm device build using OpenCORE (Android) cross-compiler" |
| echo_stdout "3. Build using default linux-arm cross-compiler" |
| echo_stdout "4. Arm device build using OpenCORE (Android) cross-compiler inside AccuRev workspace" |
| echo_stdout |
| |
| } |
| |
| function clean_env() |
| { |
| echo_stdout "==================================" |
| echo_stdout "Cleaning ARCHITECTURE" |
| unset ARCHITECTURE |
| echo_stdout "Cleaning ANDROID_BASE" |
| unset ANDROID_BASE |
| echo_stdout "Setting PATH back to the original" |
| export PATH=$BASE_PATH |
| echo_stdout "==================================" |
| } |
| |
| function menu() |
| { |
| if [ "$1" ] ; then |
| CHOICE=$1 |
| else |
| print_menu |
| read -p "[setup.sh] Which selection would you like? " CHOICE |
| fi |
| |
| case $CHOICE in |
| 1) |
| echo_stdout "Choice is to build for the host platform." |
| clean_env |
| ;; |
| 2) |
| echo_stdout "Choice is to build for target with OpenCORE (Android) cross-compiler" |
| ## clean the environment |
| clean_env |
| ## set path up for linux OpenCore build |
| android_gcc_arm_path=/opt/environments/android/toolchain-eabi-4.2.1/bin |
| export ARCHITECTURE=android |
| echo_stdout "ARCHITECTURE set to ==> $ARCHITECTURE" |
| export PATH=$android_gcc_arm_path:$BASE_PATH |
| export ANDROID_BASE=/opt/environments/android |
| echo_stdout "ANDROID_BASE set to ==> $ANDROID_BASE" |
| ;; |
| 3) |
| echo_stdout "Choice is to build for target with the default linux-arm cross-compiler" |
| # clean the environment |
| clean_env |
| # set path up for linux-arm compiler |
| linux_arm_path=/opt/environments/linux_arm/data/omapts/linux/arm-tc/gcc-3.4.0-1/bin |
| export ARCHITECTURE=linux_arm |
| export PATH=$linux_arm_path:$BASE_PATH |
| ;; |
| 4) |
| echo_stdout "Choice is to build for target with workspace's OpenCORE (Android) cross-compiler" |
| ## clean the environment |
| clean_env |
| ## set path up for linux OpenCore build |
| android_gcc_arm_path=$BASE_DIR/toolchains/android/toolchain-eabi-4.2.1/bin |
| export ARCHITECTURE=android |
| echo_stdout "ARCHITECTURE set to ==> $ARCHITECTURE" |
| export PATH=$android_gcc_arm_path:$BASE_PATH |
| export ANDROID_BASE=$BASE_DIR/toolchains/android |
| echo_stdout "ANDROID_BASE set to ==> $ANDROID_BASE" |
| ;; |
| *) |
| echo_stdout "Invalid selection. Please enter your selection again." |
| print_menu |
| return |
| ;; |
| esac |
| } |
| |
| function mkcmdcmpl() |
| { |
| printf "\nGetting make cmdline completion values...\n" |
| export PV_MAKE_COMPLETION_TARGETS=`make -j completion_targets` |
| printf "Done getting make cmdline completion values.\n\n" |
| } |
| |
| |
| |
| echo_stdout "started." |
| echo_stdout "setting up build environment with default configuration" |
| |
| export PROJECT_DIR=$PWD |
| |
| if [[ $# -ge 1 ]]; then |
| export BASE_DIR=${1%/} |
| fi |
| |
| if [[ -z $BASE_DIR ]]; then |
| echo_stdout "ERROR: BASE_DIR is not set!" |
| fi |
| echo_stdout "BASE_DIR ==> $BASE_DIR" |
| |
| export SRC_ROOT=$BASE_DIR |
| echo_stdout "SRC_ROOT ==> $SRC_ROOT" |
| |
| export BUILD_ROOT=$PROJECT_DIR/build |
| echo_stdout "BUILD_ROOT ==> $BUILD_ROOT" |
| |
| export CFG_DIR=$PWD |
| echo_stdout "CFG_DIR ==> $CFG_DIR" |
| |
| export MK=$BASE_DIR/tools_v2/build/make |
| echo_stdout "MK ==> $MK" |
| |
| extern_tools_path=$BASE_DIR/extern_tools_v2/bin/linux |
| export PATH=$extern_tools_path:$PATH |
| export BASE_PATH=$PATH |
| |
| _pv_make_completion() |
| { |
| local cur prev opts |
| COMPREPLY=() |
| cur="${COMP_WORDS[COMP_CWORD]}" |
| prev="${COMP_WORDS[COMP_CWORD-1]}" |
| opts="${PV_MAKE_COMPLETION_TARGETS}" |
| |
| case "${prev}" in |
| -f) |
| COMPREPLY=( $(compgen -f ${cur}) ) |
| return 0 |
| ;; |
| *) |
| COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) |
| return 0 |
| ;; |
| esac |
| } |
| |
| complete -F _pv_make_completion make |
| ### |
| |
| echo_stdout |
| echo_stdout "environment is ready if no errors reported." |
| echo_stdout "complete." |