Skip to content

Instantly share code, notes, and snippets.

Embed
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
You can’t perform that action at this time.