Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
## This is where you want the entire toolchain to live
## You should run this script from within the destination directory, or
## redefine the BASE variable to fit your lifestyle.
BASE=$(pwd)
echo
echo [getESP32.sh]: Checking for system prerequisites
[[ $(which pacman) ]] && sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial wget 2>/dev/null
[[ $(which apt-get) ]] && sudo apt-get install git make libncurses-dev flex bison gperf python python-serial wget 2>/dev/null
## Get or update IDF
echo
if [[ -d esp-idf ]] ; then
echo "[getESP32.sh]: found esp-idf, updating"
cd esp-idf
git pull && git submodule update --recursive
cd $BASE
else ## not found, get it
git clone --recursive https://github.com/espressif/esp-idf.git
fi
## Get binary toolchain -- this might get out of date when they change blobs:
## Current version Sept 29, 2016
echo
if [[ -d xtensa-esp32-elf ]] ; then
echo "[getESP32.sh]: Found binary toolchain. Moving on to template app."
else
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-59.tar.gz
tar xvzf xtensa-esp32-elf-linux64-1.22.0-59.tar.gz && \
rm xtensa-esp32-elf-linux64-1.22.0-59.tar.gz
fi
## Get demo application
echo
if [[ -d esp-idf-template ]] ; then
echo "[getESP32.sh]: Found esp-idf-template, updating"
cd esp-idf-template
git pull
cd $BASE
else ## not found, get it
git clone https://github.com/espressif/esp-idf-template.git
fi
## Setup environment variables:
## Works for _this_ directory structure. You will need to change these if you deviate
## Also, you might copy these lines into a separate script
## to reset these variables as necessary.
echo
echo [getESP32.sh]: Exporting environment variables:
export IDF_PATH=${BASE}/esp-idf
echo [getESP32.sh]: export IDF_PATH=${BASE}/esp-idf
export PATH=$PATH:${BASE}/xtensa-esp32-elf/bin
echo [getESP32.sh]: export PATH=$PATH:${BASE}/xtensa-esp32-elf/bin
echo
echo [getESP32.sh]: cd $BASE/esp-idf-template and
echo [getESP32.sh]: type make menuconfig or make flash to get going
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment