Git Product home page Git Product logo

bird's Introduction

Slack Status IRC Channel

Calico BIRD

This is a fork of the BIRD internet routing daemon which provides the following additional function used by Calico:

  • Support for routing using IP-in-IP

Build

TL;DR

To build bird:

  • on your platform for your platform, run ./build.sh.
  • on amd64 for all platforms, run ARCH=all ./build.sh.
  • on amd64 for a specific other platform, run ARCH=<targetarch> ./build.sh.

Details

bird can be built for one platform - your local one, by default - or for all supported platforms.

When you run the build script - build.sh - it tries to determine what platforms you want to build it for by looking at the environment variable ARCH.

  • If ARCH is unset, it will determine it from the local platform using uname -m.
  • If ARCH is set to a supported platform, it will try to build from your local platform for that platform.
  • If ARCH is set to all, it will try to build for all supported architectures from your local platform.

As of this writing, the supported architectures are as follows. Multiple entries on each line are aliases:

  • amd64 / x86_64
  • arm64 / aarch64
  • ppc64le / ppc64el / powerpc64le
  • mips64el

How the Build Works

The build works as follows.

If you are building natively, it builds an alpine-linux-based build image from Dockerfile. It then runs a container bind-mounting the source directory as /code, builds the binaries statically linked, and saves them to ./dist/<arch>/.

If you are cross-building, it builds a debian-linux-based build image from Dockerfile-all. It then runs a container bind-mounting the source directory /code, builds the binaries statically linked for each architecture, and saves themt to ./dist/<arch>/.

In the list of architectures above, the first name in the alias as the one used for dist/<arch>, no matter what architecture you entered. Thus if you use ARCH=x86_64 ./build.sh, the binaries will be under dist/amd64/. If you use ARCH=all, it will create for each.

bird's People

Contributors

gollux avatar ondrej111 avatar pavelmachek avatar shaddeus avatar marenamat avatar tomdee avatar lwr20 avatar caseydavenport avatar deitch avatar robbrockbank avatar fasaxc avatar tmshlvck avatar fancc avatar oerdnj avatar vorner avatar robert-scheck avatar matthewdupre avatar mgleung avatar rajpratik71 avatar adidenko avatar mitradir avatar ahakanbaba avatar dirbaio avatar djlwilder avatar joshti avatar aalaesar avatar nirmannarang avatar stintel avatar inetkiller avatar

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.