Giter VIP home page Giter VIP logo

esp-quick-toolchain's Introduction

esp-quick-toolchain - Build ESP8266 toolchain for multiple architectures

Allows building Win32, Win64, OSX, Linux x86_64, ARM64 (aarch64) and Raspberry Pi ESP8266 toolchains in a Docker container.

Work In Progesss

Builds work for GCC 4.8, 7.2, and 9.2. Others not fully tested but were building last time they were tried.

Downloading GCC/etc. sources

Run

make download

to clone the GCC and libs needed to the repo/ directory. This takes a while, so be patient, but it only is done once (and allows us to switch between GCC versions without redownloading anything in the future).

Building only native mode binaries

If you're only compiling natively, you can just clone this repo and run

make GCC={4.8|4.9|5.2|7.2|9.2} REL=x.x.x SUBREL=x -jx  # I like -j32 on a 16-core server, adjust according to your CPU power

Note that to build a non-linux toolchain, you first need to build a linux chain in the directory. This is because the cross compiler requires a local host executable gcc for the target architecture to build properly.

Building full suite architectures

To build all architectures use the commands

git clone https://github.com/earlephilhower/esp-quick-toolchain
cd esp-quick-toolchain
docker run --user $(id -u):$(id -g) --rm -v $(pwd):/workdir earlephilhower/gcc-cross bash -c "cd /workdir; make -j32 GCC={4.8|4.9|5.2|7.2|9.2} REL=2.5.0 SUBREL=3 all"

To make a draft release of the binaries:

make GCC={4.8|4.9|5.2|7.2|9.2} REL=2.5.0 SUBREL=3 upload

You then promote the draft to a pre-release so it becomes visible and can then make a PR against the Arduino core to merge it.

Then to install the libraries and headers into the Arduino core (not including the toolchain exes) just

make GCC={4.8|4.9|5.2|7.2} REL=2.5.0 SUBREL=3 install  (INSTALLBRANCH=xxx may be added to apply against a predefined branch other than master)
<in Arduino dir>
<might want to build bearssl.a at this point using the new toolchain>
git commit -a

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.